form-create.js 78 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433
  1. /*! form-create v1.2 | github https://github.com/xaboy/form-create | author xaboy */
  2. (function webpackUniversalModuleDefinition(root, factory) {
  3. if(typeof exports === 'object' && typeof module === 'object')
  4. module.exports = factory();
  5. else if(typeof define === 'function' && define.amd)
  6. define([], factory);
  7. else {
  8. var a = factory();
  9. for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
  10. }
  11. })(typeof self !== 'undefined' ? self : this, function() {
  12. return /******/ (function(modules) { // webpackBootstrap
  13. /******/ // The module cache
  14. /******/ var installedModules = {};
  15. /******/
  16. /******/ // The require function
  17. /******/ function __webpack_require__(moduleId) {
  18. /******/
  19. /******/ // Check if module is in cache
  20. /******/ if(installedModules[moduleId]) {
  21. /******/ return installedModules[moduleId].exports;
  22. /******/ }
  23. /******/ // Create a new module (and put it into the cache)
  24. /******/ var module = installedModules[moduleId] = {
  25. /******/ i: moduleId,
  26. /******/ l: false,
  27. /******/ exports: {}
  28. /******/ };
  29. /******/
  30. /******/ // Execute the module function
  31. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  32. /******/
  33. /******/ // Flag the module as loaded
  34. /******/ module.l = true;
  35. /******/
  36. /******/ // Return the exports of the module
  37. /******/ return module.exports;
  38. /******/ }
  39. /******/
  40. /******/
  41. /******/ // expose the modules object (__webpack_modules__)
  42. /******/ __webpack_require__.m = modules;
  43. /******/
  44. /******/ // expose the module cache
  45. /******/ __webpack_require__.c = installedModules;
  46. /******/
  47. /******/ // define getter function for harmony exports
  48. /******/ __webpack_require__.d = function(exports, name, getter) {
  49. /******/ if(!__webpack_require__.o(exports, name)) {
  50. /******/ Object.defineProperty(exports, name, {
  51. /******/ configurable: false,
  52. /******/ enumerable: true,
  53. /******/ get: getter
  54. /******/ });
  55. /******/ }
  56. /******/ };
  57. /******/
  58. /******/ // getDefaultExport function for compatibility with non-harmony modules
  59. /******/ __webpack_require__.n = function(module) {
  60. /******/ var getter = module && module.__esModule ?
  61. /******/ function getDefault() { return module['default']; } :
  62. /******/ function getModuleExports() { return module; };
  63. /******/ __webpack_require__.d(getter, 'a', getter);
  64. /******/ return getter;
  65. /******/ };
  66. /******/
  67. /******/ // Object.prototype.hasOwnProperty.call
  68. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  69. /******/
  70. /******/ // __webpack_public_path__
  71. /******/ __webpack_require__.p = "";
  72. /******/
  73. /******/ // Load entry module and return exports
  74. /******/ return __webpack_require__(__webpack_require__.s = 7);
  75. /******/ })
  76. /************************************************************************/
  77. /******/ ([
  78. /* 0 */
  79. /***/ (function(module, exports, __webpack_require__) {
  80. "use strict";
  81. Object.defineProperty(exports, "__esModule", {
  82. value: true
  83. });
  84. exports.make = undefined;
  85. var _util = __webpack_require__(1);
  86. var makeFactory = function makeFactory(type, attrs) {
  87. return function $m(title, field) {
  88. var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
  89. var rule = baseRule();
  90. rule.type = type;
  91. rule.title = title;
  92. rule.field = field;
  93. rule.value = value;
  94. return new make(rule, attrs);
  95. };
  96. };
  97. var baseRule = function baseRule() {
  98. return {
  99. props: {},
  100. event: {},
  101. validate: [],
  102. options: [],
  103. slot: {}
  104. };
  105. };
  106. var make = function make(rule, attrs) {
  107. var _this = this;
  108. this.rule = rule;
  109. attrs.forEach(function (attr) {
  110. _this[attr] = attrHandlers[attr];
  111. });
  112. };
  113. var attrHandlers = {};
  114. var objAttrs = ['props', 'event', 'slot'];
  115. objAttrs.forEach(function (attr) {
  116. attrHandlers[attr] = function (opt) {
  117. this.rule[attr] = Object.assign(this.rule[attr], opt);
  118. return this;
  119. };
  120. });
  121. var arrAttrs = ['validate', 'options'];
  122. arrAttrs.forEach(function (attr) {
  123. attrHandlers[attr] = function (opt) {
  124. if (!(0, _util.isArray)(opt)) opt = [opt];
  125. this.rule[attr] = this.rule[attr].concat(opt);
  126. return this;
  127. };
  128. });
  129. make.prototype.getRule = function () {
  130. return this.rule;
  131. };
  132. exports.default = makeFactory;
  133. exports.make = make;
  134. /***/ }),
  135. /* 1 */
  136. /***/ (function(module, exports, __webpack_require__) {
  137. "use strict";
  138. Object.defineProperty(exports, "__esModule", {
  139. value: true
  140. });
  141. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  142. var concat = [].concat;
  143. var assign = Object.assign;
  144. var toString = Object.prototype.toString;
  145. var throwIfMissing = function throwIfMissing() {
  146. var errorMsg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Missing parameter';
  147. throw new Error(errorMsg);
  148. };
  149. var isDate = function isDate(arg) {
  150. return toString.call(arg) === '[object Date]';
  151. };
  152. var isPlainObject = function isPlainObject(arg) {
  153. return toString.call(arg) === '[object Object]';
  154. };
  155. var isFunction = function isFunction(arg) {
  156. return toString.call(arg) === '[object Function]';
  157. };
  158. var isString = function isString(arg) {
  159. return toString.call(arg) === '[object String]';
  160. };
  161. var isArray = Array.isArray;
  162. var isElement = function isElement(arg) {
  163. return (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'object' && arg !== null && arg.nodeType === 1 && !isPlainObject(arg);
  164. };
  165. var deepExtend = function deepExtend(origin) {
  166. var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  167. var isArr = false;
  168. for (var key in target) {
  169. if (Object.prototype.hasOwnProperty.call(target, key)) {
  170. var clone = target[key];
  171. if ((isArr = isArray(clone)) || isPlainObject(clone)) {
  172. var nst = origin[key] === undefined;
  173. if (isArr) {
  174. isArr = false;
  175. nst && (origin[key] = []);
  176. } else {
  177. nst && (origin[key] = {});
  178. }
  179. deepExtend(origin[key], clone);
  180. } else {
  181. origin[key] = clone;
  182. }
  183. }
  184. }
  185. return origin;
  186. };
  187. var uniqueId = function () {
  188. var id = 0;
  189. return function () {
  190. return id++;
  191. };
  192. }();
  193. exports.concat = concat;
  194. exports.assign = assign;
  195. exports.toString = toString;
  196. exports.throwIfMissing = throwIfMissing;
  197. exports.isPlainObject = isPlainObject;
  198. exports.isDate = isDate;
  199. exports.isFunction = isFunction;
  200. exports.isString = isString;
  201. exports.isArray = isArray;
  202. exports.deepExtend = deepExtend;
  203. exports.isElement = isElement;
  204. exports.uniqueId = uniqueId;
  205. /***/ }),
  206. /* 2 */
  207. /***/ (function(module, exports, __webpack_require__) {
  208. "use strict";
  209. Object.defineProperty(exports, "__esModule", {
  210. value: true
  211. });
  212. exports.handlerFactory = undefined;
  213. var _util = __webpack_require__(1);
  214. var handlerFactory = function handlerFactory() {
  215. var prototypeExtend = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  216. var $h = function $h(vm, rule) {
  217. handler.call(this, vm, rule);
  218. };
  219. $h.prototype = Object.create(handler.prototype);
  220. Object.assign($h.prototype, prototypeExtend);
  221. $h.prototype.constructor = $h;
  222. return $h;
  223. };
  224. var handler = function handler(vm, _ref) {
  225. var field = _ref.field,
  226. type = _ref.type,
  227. _ref$title = _ref.title,
  228. title = _ref$title === undefined ? '' : _ref$title,
  229. _ref$options = _ref.options,
  230. options = _ref$options === undefined ? [] : _ref$options,
  231. _ref$props = _ref.props,
  232. props = _ref$props === undefined ? {} : _ref$props,
  233. _ref$validate = _ref.validate,
  234. validate = _ref$validate === undefined ? [] : _ref$validate,
  235. _ref$event = _ref.event,
  236. event = _ref$event === undefined ? {} : _ref$event,
  237. _ref$value = _ref.value,
  238. value = _ref$value === undefined ? '' : _ref$value,
  239. _ref$slot = _ref.slot,
  240. slot = _ref$slot === undefined ? {} : _ref$slot;
  241. field = field.toString();
  242. this.rule = {
  243. field: field, type: type, title: title, options: options, props: props, slot: slot,
  244. value: (0, _util.deepExtend)(Object.create(null), { value: value }).value,
  245. validate: (0, _util.isArray)(validate) ? validate : [validate],
  246. event: Object.keys(event).reduce(function (initial, eventName) {
  247. initial['on-' + eventName] = event[eventName];
  248. return initial;
  249. }, {})
  250. };
  251. this.vm = vm;
  252. this.unique = (0, _util.uniqueId)();
  253. this.refName = field + '' + this.unique;
  254. this.el = {};
  255. this.verify();
  256. this.handle();
  257. };
  258. handler.prototype = {
  259. handle: function handle() {
  260. this.changeParseValue(this.rule.value);
  261. },
  262. verify: function verify() {},
  263. getField: function getField() {
  264. return this.rule.field;
  265. },
  266. getValidate: function getValidate() {
  267. return this.rule.validate;
  268. },
  269. getValue: function getValue() {
  270. return this.parseValue;
  271. },
  272. changeValue: function changeValue(value) {
  273. this.rule.value = value;
  274. this.handle();
  275. },
  276. getRule: function getRule() {
  277. return this.rule;
  278. },
  279. getParseValue: function getParseValue() {
  280. return this.parseValue;
  281. },
  282. changeParseValue: function changeParseValue(parseValue) {
  283. var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  284. if (b === true) this.vm.changeFormData(this.rule.field, parseValue);
  285. this.parseValue = parseValue;
  286. },
  287. mounted: function mounted() {
  288. this.el = this.vm.$refs[this.refName];
  289. }
  290. };
  291. exports.handlerFactory = handlerFactory;
  292. /***/ }),
  293. /* 3 */
  294. /***/ (function(module, exports, __webpack_require__) {
  295. "use strict";
  296. Object.defineProperty(exports, "__esModule", {
  297. value: true
  298. });
  299. exports.renderFactory = undefined;
  300. var _cvm = __webpack_require__(5);
  301. var _cvm2 = _interopRequireDefault(_cvm);
  302. var _props = __webpack_require__(6);
  303. var _props2 = _interopRequireDefault(_props);
  304. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  305. var renderFactory = function renderFactory(prototypeExtend) {
  306. var $r = function $r(vm, handler, options) {
  307. render.call(this, vm, handler, options);
  308. };
  309. $r.prototype = Object.create(render.prototype);
  310. Object.assign($r.prototype, prototypeExtend);
  311. $r.prototype.constructor = $r;
  312. return $r;
  313. };
  314. var render = function render(vm, handler) {
  315. var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  316. this.handler = handler;
  317. this.options = options;
  318. this.vm = vm;
  319. this.cvm = _cvm2.default.instance(vm.$createElement);
  320. this.event = handler.rule.event;
  321. this.init();
  322. };
  323. render.prototype = {
  324. props: _props2.default.instance(),
  325. init: function init() {},
  326. parse: function parse() {
  327. throw new Error('请实现parse方法');
  328. },
  329. inputProps: function inputProps() {
  330. var _this = this;
  331. var _handler = this.handler,
  332. refName = _handler.refName,
  333. unique = _handler.unique,
  334. _handler$rule = _handler.rule,
  335. props = _handler$rule.props,
  336. field = _handler$rule.field;
  337. return this.props.props(Object.assign(props, { model: 'formData.' + field, value: this.vm.formData[field], elementId: refName })).ref(refName).key('fip' + unique).on(this.event).on('input', function (value) {
  338. _this.vm.$emit('input', value);
  339. _this.vm.$set(_this.vm.formData, field, value);
  340. });
  341. }
  342. };
  343. exports.renderFactory = renderFactory;
  344. /***/ }),
  345. /* 4 */
  346. /***/ (function(module, exports, __webpack_require__) {
  347. "use strict";
  348. Object.defineProperty(exports, "__esModule", {
  349. value: true
  350. });
  351. exports.getMaker = exports.timeStampToDate = exports.getGlobalApi = exports.createHandler = exports.formCreateStyle = exports.getConfig = exports.getComponent = undefined;
  352. var _util = __webpack_require__(1);
  353. var _cascader = __webpack_require__(9);
  354. var _cascader2 = _interopRequireDefault(_cascader);
  355. var _checkbox = __webpack_require__(10);
  356. var _checkbox2 = _interopRequireDefault(_checkbox);
  357. var _colorPicker = __webpack_require__(11);
  358. var _colorPicker2 = _interopRequireDefault(_colorPicker);
  359. var _datePicker = __webpack_require__(12);
  360. var _datePicker2 = _interopRequireDefault(_datePicker);
  361. var _input = __webpack_require__(13);
  362. var _input2 = _interopRequireDefault(_input);
  363. var _inputNumber = __webpack_require__(14);
  364. var _inputNumber2 = _interopRequireDefault(_inputNumber);
  365. var _radio = __webpack_require__(15);
  366. var _radio2 = _interopRequireDefault(_radio);
  367. var _select = __webpack_require__(16);
  368. var _select2 = _interopRequireDefault(_select);
  369. var _switch = __webpack_require__(17);
  370. var _switch2 = _interopRequireDefault(_switch);
  371. var _timePicker = __webpack_require__(18);
  372. var _timePicker2 = _interopRequireDefault(_timePicker);
  373. var _hidden = __webpack_require__(19);
  374. var _hidden2 = _interopRequireDefault(_hidden);
  375. var _upload = __webpack_require__(20);
  376. var _upload2 = _interopRequireDefault(_upload);
  377. var _rate = __webpack_require__(21);
  378. var _rate2 = _interopRequireDefault(_rate);
  379. var _slider = __webpack_require__(22);
  380. var _slider2 = _interopRequireDefault(_slider);
  381. var _frame = __webpack_require__(23);
  382. var _frame2 = _interopRequireDefault(_frame);
  383. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  384. var componentList = {
  385. hidden: _hidden2.default,
  386. input: _input2.default,
  387. radio: _radio2.default,
  388. checkbox: _checkbox2.default,
  389. switch: _switch2.default,
  390. select: _select2.default,
  391. datepicker: _datePicker2.default,
  392. timepicker: _timePicker2.default,
  393. inputnumber: _inputNumber2.default,
  394. colorpicker: _colorPicker2.default,
  395. upload: _upload2.default,
  396. cascader: _cascader2.default,
  397. rate: _rate2.default,
  398. slider: _slider2.default,
  399. frame: _frame2.default
  400. };
  401. var getComponent = function getComponent(componentName) {
  402. if (componentList[componentName] === undefined) throw new Error(componentName + ' \u8868\u5355\u7C7B\u578B\u4E0D\u5B58\u5728');
  403. return componentList[componentName];
  404. };
  405. var getConfig = function getConfig(Vue) {
  406. var vm = new Vue();
  407. return {
  408. el: null,
  409. form: {
  410. inline: false,
  411. labelPosition: 'right',
  412. labelWidth: 125,
  413. showMessage: true,
  414. autocomplete: 'off'
  415. },
  416. upload: {
  417. beforeUpload: function beforeUpload() {},
  418. onProgress: function onProgress(event, file, fileList) {},
  419. onSuccess: function onSuccess(response, file, fileList) {},
  420. onError: function onError(error, file, fileList) {},
  421. onPreview: function onPreview(file) {},
  422. onRemove: function onRemove(file, fileList) {},
  423. onFormatError: function onFormatError(file, fileList) {},
  424. onExceededSize: function onExceededSize(file, fileList) {},
  425. handleIcon: 'ios-eye-outline',
  426. onHandle: function onHandle(src) {
  427. vm.$Modal.info({
  428. title: "预览",
  429. render: function render(h) {
  430. return h('img', { attrs: { src: src }, style: "width: 100%" });
  431. }
  432. });
  433. },
  434. allowRemove: true
  435. },
  436. onSubmit: function onSubmit(formData) {},
  437. submitBtn: {
  438. type: "primary",
  439. size: "large",
  440. shape: undefined,
  441. long: true,
  442. htmlType: "button",
  443. disabled: false,
  444. icon: "ios-upload",
  445. innerText: "提交",
  446. loading: false
  447. }
  448. };
  449. };
  450. var createHandler = function createHandler(vm, rule, createOptions) {
  451. var component = getComponent(rule.type),
  452. $h = new component.handler(vm, rule);
  453. $h.render = new component.render(vm, $h, createOptions);
  454. return $h;
  455. };
  456. var formCreateStyle = '.form-create{padding:25px;} .fc-files{display: inline-block;width: 58px;height: 58px;text-align: center;line-height: 60px;border: 1px solid transparent;border-radius: 4px;overflow: hidden;background: #fff;position: relative;box-shadow: 0 1px 1px rgba(0,0,0,.2);margin-right: 4px;box-sizing: border-box;}' + ' .fc-files>.ivu-icon{transform: translateY(20%);}' + '.fc-files img{width:100%;height:100%;display:block;}' + '.fc-upload .ivu-upload{display: inline-block;}' + '.fc-upload-btn i{font-size: 20px;}' + '.fc-upload .fc-upload-cover{ display: none; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,.6); }' + '.fc-upload .fc-upload-cover i{ color: #fff; font-size: 20px; cursor: pointer; margin: 0 2px; }' + '.fc-files:hover .fc-upload-cover{ display: block; }' + '.fc-upload .ivu-upload-list-file{ display: inline-block;float: left; }' + '.fc-upload .ivu-upload-list{ position: absolute;left: 0; }' + '.fc-upload-btn{ width: 58px;height: 58px;line-height: 58px;display:inline-block;background: #fff;border: 1px dashed #dddee1;border-radius: 4px;text-align: center;cursor: pointer;position: relative;overflow: hidden;transition: border-color .2s ease; } .fc-spin-icon-load{animation: ani-fc-spin 1s linear infinite;} @-webkit-keyframes ani-fc-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ani-fc-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}';
  457. var getGlobalApi = function getGlobalApi(fComponent) {
  458. return {
  459. formData: function formData() {
  460. var data = {};
  461. fComponent.fields().map(function (field) {
  462. field = field.toString();
  463. data[field] = fComponent.handlers[field].getValue();
  464. });
  465. return data;
  466. },
  467. getValue: function getValue(field) {
  468. field = field.toString();
  469. var handler = fComponent.handlers[field];
  470. if (handler === undefined) console.error(field + ' \u5B57\u6BB5\u4E0D\u5B58\u5728!');else {
  471. return handler.getValue();
  472. }
  473. },
  474. changeField: function changeField(field, value) {
  475. field = field.toString();
  476. var handler = fComponent.handlers[field];
  477. if (handler === undefined) console.error(field + ' \u5B57\u6BB5\u4E0D\u5B58\u5728!');else {
  478. if ((0, _util.isFunction)(value)) value(handler.getValue(), function change(changeValue) {
  479. handler.changeValue(changeValue);
  480. });else handler.changeValue(value);
  481. }
  482. },
  483. removeField: function removeField(field) {
  484. field = field.toString();
  485. fComponent.removeField(field);
  486. },
  487. validate: function validate(successFn, errorFn) {
  488. fComponent.getFormRef().validate(function (valid) {
  489. valid === true ? successFn && successFn() : errorFn && errorFn();
  490. });
  491. },
  492. validateField: function validateField(field, callback) {
  493. field = field.toString();
  494. fComponent.getFormRef().validateField(field, callback);
  495. },
  496. resetFields: function resetFields() {
  497. fComponent.getFormRef().resetFields();
  498. },
  499. destroy: function destroy() {
  500. fComponent.vm.$el.remove();
  501. fComponent.vm.$destroy();
  502. },
  503. fields: function fields() {
  504. return fComponent.fields();
  505. },
  506. append: function append(rule, after) {
  507. fComponent.append(rule, after, false);
  508. },
  509. prepend: function prepend(rule, after) {
  510. fComponent.append(rule, after, true);
  511. },
  512. submit: function submit(successFn) {
  513. var _this = this;
  514. this.validate(function () {
  515. var formData = _this.formData();
  516. if ((0, _util.isFunction)(successFn)) successFn(formData);else fComponent.options.onSubmit && fComponent.options.onSubmit(formData);
  517. });
  518. },
  519. submitStatus: function submitStatus() {
  520. var _props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  521. var props = (0, _util.deepExtend)(Object.create(null), _props);
  522. fComponent.vm.changeButtonProps(props);
  523. },
  524. // vm:fComponent,
  525. btn: {
  526. loading: function loading() {
  527. fComponent.vm.changeButtonProps({ loading: true });
  528. },
  529. finish: function finish() {
  530. fComponent.vm.changeButtonProps({ loading: false });
  531. }
  532. },
  533. closeModal: function closeModal() {
  534. fComponent.vm.$Modal.remove();
  535. }
  536. };
  537. };
  538. var timeStampToDate = function timeStampToDate(timeStamp) {
  539. if ((0, _util.isDate)(timeStamp)) return timeStamp;else {
  540. var date = new Date(timeStamp);
  541. return date.toString() === 'Invalid Date' ? timeStamp : date;
  542. }
  543. };
  544. var getMaker = function getMaker() {
  545. var maker = Object.keys(componentList).reduce(function (initial, name) {
  546. initial[name] = componentList[name].make;
  547. return initial;
  548. }, {});
  549. maker.number = componentList.inputnumber.make;
  550. maker.time = componentList.timepicker.make;
  551. maker.date = componentList.datepicker.make;
  552. maker.color = componentList.colorpicker.make;
  553. return maker;
  554. };
  555. exports.getComponent = getComponent;
  556. exports.getConfig = getConfig;
  557. exports.formCreateStyle = formCreateStyle;
  558. exports.createHandler = createHandler;
  559. exports.getGlobalApi = getGlobalApi;
  560. exports.timeStampToDate = timeStampToDate;
  561. exports.getMaker = getMaker;
  562. /***/ }),
  563. /* 5 */
  564. /***/ (function(module, exports, __webpack_require__) {
  565. "use strict";
  566. Object.defineProperty(exports, "__esModule", {
  567. value: true
  568. });
  569. var _util = __webpack_require__(1);
  570. var cvm = function cvm() {
  571. var createElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:createElement');
  572. this.$h = createElement;
  573. };
  574. var _instance = null;
  575. var vm = null;
  576. cvm.instance = function (createElement) {
  577. if (false === _instance instanceof cvm) _instance = new cvm(createElement);
  578. return _instance;
  579. };
  580. cvm.setVm = function ($vm) {
  581. vm = $vm;
  582. };
  583. cvm.clearVm = function () {
  584. vm = null;
  585. };
  586. cvm.prototype = {
  587. form: function form(data, VNodeFn) {
  588. return this.make('i-form', data, VNodeFn);
  589. },
  590. formItem: function formItem(data, VNodeFn) {
  591. return this.make('form-Item', data, VNodeFn);
  592. },
  593. input: function input(data, VNodeFn) {
  594. return this.make('i-input', data, VNodeFn);
  595. },
  596. inputNumber: function inputNumber(data, VNodeFn) {
  597. return this.make('Input-Number', data, VNodeFn);
  598. },
  599. radioGroup: function radioGroup(data, VNodeFn) {
  600. return this.make('Radio-Group', data, VNodeFn);
  601. },
  602. radio: function radio(data, VNodeFn) {
  603. return this.make('Radio', data, VNodeFn);
  604. },
  605. checkboxGroup: function checkboxGroup(data, VNodeFn) {
  606. return this.make('Checkbox-Group', data, VNodeFn);
  607. },
  608. checkbox: function checkbox(data, VNodeFn) {
  609. return this.make('Checkbox', data, VNodeFn);
  610. },
  611. select: function select(data, VNodeFn) {
  612. return this.make('i-select', data, VNodeFn);
  613. },
  614. option: function option(data, VNodeFn) {
  615. return this.make('i-option', data, VNodeFn);
  616. },
  617. switch: function _switch(data, VNodeFn) {
  618. return this.make('i-switch', data, VNodeFn);
  619. },
  620. datePicker: function datePicker(data, VNodeFn) {
  621. return this.make('Date-Picker', data, VNodeFn);
  622. },
  623. timePicker: function timePicker(data, VNodeFn) {
  624. return this.make('Time-Picker', data, VNodeFn);
  625. },
  626. colorPicker: function colorPicker(data, VNodeFn) {
  627. return this.make('Color-Picker', data, VNodeFn);
  628. },
  629. cascader: function cascader(data, VNodeFn) {
  630. return this.make('Cascader', data, VNodeFn);
  631. },
  632. upload: function upload(data, VNodeFn) {
  633. return this.make('Upload', data, VNodeFn);
  634. },
  635. rate: function rate(data, VNodeFn) {
  636. return this.make('Rate', data, VNodeFn);
  637. },
  638. slider: function slider(data, VNodeFn) {
  639. return this.make('Slider', data, VNodeFn);
  640. },
  641. span: function span(data, VNodeFn) {
  642. return this.make('span', data, VNodeFn);
  643. },
  644. icon: function icon(data, VNodeFn) {
  645. return this.make('Icon', data, VNodeFn);
  646. },
  647. button: function button(data, VNodeFn) {
  648. return this.make('i-button', data, VNodeFn);
  649. },
  650. progress: function progress(data, VNodeFn) {
  651. return this.make('i-progress', data, VNodeFn);
  652. },
  653. modal: function modal(data, VNodeFn) {
  654. return this.make('Modal', data, VNodeFn);
  655. },
  656. make: function make(nodeName, data, VNodeFn) {
  657. if ((0, _util.isString)(data)) data = { domProps: { innerHTML: data } };
  658. var Node = this.$h(nodeName, data, this.getVNode(VNodeFn));
  659. if (vm !== null) Node.context = vm;
  660. return Node;
  661. },
  662. getVNode: function getVNode(VNode) {
  663. return (0, _util.isFunction)(VNode) ? VNode() : VNode;
  664. }
  665. };
  666. exports.default = cvm;
  667. /***/ }),
  668. /* 6 */
  669. /***/ (function(module, exports, __webpack_require__) {
  670. "use strict";
  671. Object.defineProperty(exports, "__esModule", {
  672. value: true
  673. });
  674. var _util = __webpack_require__(1);
  675. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  676. var props = function props() {
  677. this._data = this._initData();
  678. this._prev = null;
  679. };
  680. var _instance = null;
  681. props.instance = function () {
  682. if (false === _instance instanceof props) _instance = new props();
  683. return _instance;
  684. };
  685. props.prototype = {
  686. _initData: function _initData() {
  687. return {
  688. class: {},
  689. style: {},
  690. attrs: {},
  691. props: {},
  692. domProps: {},
  693. on: {},
  694. nativeOn: {},
  695. directives: [],
  696. scopedSlots: {},
  697. slot: undefined,
  698. key: undefined,
  699. ref: undefined
  700. };
  701. },
  702. class: function _class() {
  703. var _this = this;
  704. var classList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:classList');
  705. var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  706. if ((0, _util.isArray)(classList)) {
  707. classList.map(function (cls) {
  708. _this._data.class[cls.toString()] = true;
  709. });
  710. } else if ((0, _util.isPlainObject)(classList)) {
  711. this._data.class = (0, _util.assign)({}, this._data.class, classList);
  712. } else {
  713. this._data.class[classList.toString()] = status === undefined ? true : status;
  714. }
  715. return this;
  716. },
  717. style: function style() {
  718. var _style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:style');
  719. var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  720. if ((0, _util.isPlainObject)(_style)) {
  721. this._data.style = (0, _util.assign)({}, this._data.style, _style);
  722. } else if (value !== undefined) {
  723. this._data.style[_style.toString()] = value;
  724. }
  725. return this;
  726. },
  727. attrs: function attrs() {
  728. var _attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:attrs');
  729. var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  730. if ((0, _util.isPlainObject)(_attrs)) {
  731. this._data.attrs = (0, _util.assign)({}, this._data.attrs, _attrs);
  732. } else {
  733. this._data.attrs[_attrs.toString()] = value;
  734. }
  735. return this;
  736. },
  737. props: function props() {
  738. var _props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:props');
  739. var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  740. if ((0, _util.isPlainObject)(_props)) {
  741. this._data.props = (0, _util.assign)({}, this._data.props, _props);
  742. } else {
  743. this._data.props[_props.toString()] = value;
  744. }
  745. return this;
  746. },
  747. domProps: function domProps() {
  748. var _domProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:domProps');
  749. var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  750. if ((0, _util.isPlainObject)(_domProps)) {
  751. this._data.domProps = (0, _util.assign)({}, this._data.domProps, _domProps);
  752. } else {
  753. this._data.domProps[_domProps.toString()] = value;
  754. }
  755. return this;
  756. },
  757. on: function on() {
  758. var onType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:onType');
  759. var call = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
  760. if ((0, _util.isPlainObject)(onType)) {
  761. this._data.on = (0, _util.assign)({}, this._data.on, onType);
  762. } else {
  763. this._data.on[onType.toString()] = call;
  764. }
  765. return this;
  766. },
  767. nativeOn: function nativeOn() {
  768. var onType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:onType');
  769. var call = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
  770. if ((0, _util.isPlainObject)(onType)) {
  771. this._data.nativeOn = (0, _util.assign)({}, this._data.nativeOn, onType);
  772. } else {
  773. this._data.nativeOn[onType.toString()] = call;
  774. }
  775. return this;
  776. },
  777. directives: function directives() {
  778. var _directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:directives');
  779. this._data.directives = _util.concat.call.apply(_util.concat, _toConsumableArray(this._data.directives).concat(_toConsumableArray(_directives)));
  780. return this;
  781. },
  782. scopedSlots: function scopedSlots() {
  783. var scopedSlot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.throwIfMissing)('缺少参数:scopedSlot');
  784. var call = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
  785. if ((0, _util.isPlainObject)(scopedSlot)) {
  786. this._data.scopedSlots = (0, _util.assign)({}, this._data.scopedSlots, scopedSlot);
  787. } else {
  788. this._data.scopedSlots[scopedSlot.toString()] = call;
  789. }
  790. return this;
  791. },
  792. slot: function slot(_slot) {
  793. this._data.slot = _slot;
  794. return this;
  795. },
  796. key: function key(_key) {
  797. this._data.key = _key;
  798. return this;
  799. },
  800. ref: function ref(_ref) {
  801. this._data.ref = _ref;
  802. return this;
  803. },
  804. init: function init() {
  805. this._data = this._initData();
  806. },
  807. get: function get() {
  808. this._prev = this._data;
  809. this.init();
  810. return this._prev;
  811. },
  812. getPrev: function getPrev() {
  813. return this._prev;
  814. }
  815. };
  816. exports.default = props;
  817. /***/ }),
  818. /* 7 */
  819. /***/ (function(module, exports, __webpack_require__) {
  820. "use strict";
  821. var _formCreate = __webpack_require__(8);
  822. var _formCreate2 = _interopRequireDefault(_formCreate);
  823. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  824. if (typeof window !== 'undefined') {
  825. window["formCreate"] = _formCreate2.default;
  826. if (window.Vue && (window.iview || window.iView)) {
  827. window.Vue.use(_formCreate2.default);
  828. }
  829. }
  830. module.exports.default = module.exports = _formCreate2.default;
  831. /***/ }),
  832. /* 8 */
  833. /***/ (function(module, exports, __webpack_require__) {
  834. "use strict";
  835. Object.defineProperty(exports, "__esModule", {
  836. value: true
  837. });
  838. var _util = __webpack_require__(1);
  839. var _common = __webpack_require__(4);
  840. var _form = __webpack_require__(24);
  841. var _form2 = _interopRequireDefault(_form);
  842. var _formCreateComponent = __webpack_require__(25);
  843. var _formCreateComponent2 = _interopRequireDefault(_formCreateComponent);
  844. var _make = __webpack_require__(0);
  845. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  846. var version = '1.2.3';
  847. var maker = (0, _common.getMaker)();
  848. var formCreateStyleElId = 'form-create-style';
  849. var formCreate = function formCreate(rules, options) {
  850. if (!this instanceof formCreate) throwIfMissing('formCreate is a constructor and should be called with the `new` keyword');
  851. this.rules = Array.isArray(rules) ? rules : [];
  852. this.handlers = {};
  853. this.fRender = {};
  854. this.formData = {};
  855. this.validate = {};
  856. this.fieldList = [];
  857. options.el = !options.el ? window.document.body : (0, _util.isElement)(options.el) ? options.el : document.querySelector(options.el);
  858. this.options = options;
  859. };
  860. formCreate.createStyle = function () {
  861. if (document.getElementById(formCreateStyleElId) !== null) return;
  862. var style = document.createElement('style');
  863. style.id = formCreateStyleElId;
  864. style.innerText = _common.formCreateStyle;
  865. document.getElementsByTagName('head')[0].appendChild(style);
  866. };
  867. formCreate.install = function (Vue) {
  868. var globalOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  869. formCreate.createStyle();
  870. var options = (0, _util.deepExtend)((0, _util.deepExtend)(Object.create(null), (0, _common.getConfig)(Vue)), globalOptions);
  871. Vue.prototype.$formCreate = function (rules) {
  872. var _opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  873. var opt = (0, _util.isElement)(_opt) ? { el: _opt } : _opt;
  874. var fComponent = new formCreate(rules, (0, _util.deepExtend)((0, _util.deepExtend)(Object.create(null), options), opt)),
  875. $vm = fComponent.create(Vue);
  876. return fComponent.fCreateApi;
  877. };
  878. Vue.prototype.$formCreate.version = version;
  879. Vue.prototype.$formCreate.maker = maker;
  880. };
  881. formCreate.prototype = {
  882. checkRule: function checkRule(rule) {
  883. rule.type = rule.type === undefined ? 'hidden' : rule.type.toLowerCase();
  884. if (!rule.field) rule.field = '';
  885. return rule;
  886. },
  887. setHandler: function setHandler(handler) {
  888. var field = handler.rule.field;
  889. this.handlers[field] = handler;
  890. this.formData[field] = handler.getParseValue();
  891. this.validate[field] = handler.getValidate();
  892. },
  893. init: function init(vm) {
  894. var _this = this;
  895. this.vm = vm;
  896. this.rules.forEach(function (rule, index) {
  897. if (rule instanceof _make.make) _this.rules[index] = rule.getRule();
  898. });
  899. this.rules.filter(function (rule) {
  900. return rule.field !== undefined;
  901. }).forEach(function (rule) {
  902. rule = _this.checkRule(rule);
  903. var handler = (0, _common.createHandler)(_this.vm, rule, _this.options);
  904. if (_this.fieldList.indexOf(handler.rule.field) === -1) {
  905. _this.setHandler(handler);
  906. _this.fieldList.push(handler.rule.field);
  907. } else {
  908. console.error(handler.rule.field + " \u5B57\u6BB5\u5DF2\u5B58\u5728");
  909. }
  910. });
  911. this.fCreateApi = (0, _common.getGlobalApi)(this);
  912. vm.$set(vm, 'formData', this.formData);
  913. vm.$set(vm, 'buttonProps', this.options.submitBtn);
  914. this.fRender = new _form2.default(this);
  915. },
  916. create: function create(Vue) {
  917. var $fCreate = Vue.extend(this.component()),
  918. $vm = new $fCreate().$mount();
  919. this.options.el.appendChild($vm.$el);
  920. return $vm;
  921. },
  922. component: function component() {
  923. return (0, _formCreateComponent2.default)(this);
  924. },
  925. append: function append(rule, after, pre) {
  926. if (rule instanceof _make.make) rule = rule.getRule();
  927. var _rule = (0, _util.deepExtend)(Object.create(null), this.checkRule(rule));
  928. var handler = (0, _common.createHandler)(this.vm, _rule, this.options);
  929. if (Object.keys(this.handlers).indexOf(handler.rule.field) !== -1) throw new Error(_rule.field + "\u5B57\u6BB5\u5DF2\u5B58\u5728");
  930. this.fRender.setRender(handler, after, pre);
  931. this.setHandler(handler);
  932. this.vm.setField(handler.rule.field, handler.getParseValue());
  933. this.addHandlerWatch(handler);
  934. this.vm.$nextTick(function () {
  935. handler.mounted();
  936. });
  937. },
  938. removeField: function removeField(field) {
  939. if (this.handlers[field] === undefined) throw new Error(field + "\u5B57\u6BB5\u4E0D\u5B58\u5728");
  940. this.vm.removeFormData(field);
  941. delete this.handlers[field];
  942. delete this.validate[field];
  943. this.fRender.removeRender(field);
  944. delete this.formData[field];
  945. },
  946. addHandlerWatch: function addHandlerWatch(handler) {
  947. var unWatch = this.vm.$watch("formData." + handler.rule.field, function (n, o) {
  948. if (handler !== undefined) handler.changeParseValue(n, false);else unWatch();
  949. });
  950. },
  951. getFormRef: function getFormRef() {
  952. return this.vm.$refs[this.fRender.refName];
  953. },
  954. fields: function fields() {
  955. return Object.keys(this.formData);
  956. }
  957. };
  958. exports.default = {
  959. install: formCreate.install,
  960. default: formCreate,
  961. maker: maker,
  962. version: version
  963. };
  964. /***/ }),
  965. /* 9 */
  966. /***/ (function(module, exports, __webpack_require__) {
  967. "use strict";
  968. Object.defineProperty(exports, "__esModule", {
  969. value: true
  970. });
  971. exports.make = exports.render = exports.handler = undefined;
  972. var _handler = __webpack_require__(2);
  973. var _render = __webpack_require__(3);
  974. var _util = __webpack_require__(1);
  975. var _make = __webpack_require__(0);
  976. var _make2 = _interopRequireDefault(_make);
  977. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  978. var handler = (0, _handler.handlerFactory)({
  979. verify: function verify() {
  980. if (!this.rule.props.data) this.rule.props.data = [];
  981. if (!(0, _util.isArray)(this.rule.value)) this.rule.value = [];
  982. },
  983. getValue: function getValue() {
  984. return this.el.value;
  985. }
  986. });
  987. var render = (0, _render.renderFactory)({
  988. parse: function parse() {
  989. this.propsData = this.inputProps().get();
  990. return [this.cvm.cascader(this.propsData)];
  991. }
  992. });
  993. var make = (0, _make2.default)('cascader', ['props', 'event', 'validate']);
  994. var component = { handler: handler, render: render, make: make };
  995. exports.default = component;
  996. exports.handler = handler;
  997. exports.render = render;
  998. exports.make = make;
  999. /***/ }),
  1000. /* 10 */
  1001. /***/ (function(module, exports, __webpack_require__) {
  1002. "use strict";
  1003. Object.defineProperty(exports, "__esModule", {
  1004. value: true
  1005. });
  1006. exports.make = exports.render = exports.handler = undefined;
  1007. var _handler2 = __webpack_require__(2);
  1008. var _render = __webpack_require__(3);
  1009. var _util = __webpack_require__(1);
  1010. var _make = __webpack_require__(0);
  1011. var _make2 = _interopRequireDefault(_make);
  1012. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1013. var handler = (0, _handler2.handlerFactory)({
  1014. handle: function handle() {
  1015. var _this = this;
  1016. var parseValue = [];
  1017. if (false === (0, _util.isArray)(this.rule.value)) this.rule.value = [this.rule.value];
  1018. this.rule.value.forEach(function (val) {
  1019. _this.rule.options.forEach(function (option) {
  1020. option.value === val && parseValue.push(option.label);
  1021. });
  1022. });
  1023. this.changeParseValue(parseValue);
  1024. },
  1025. getValue: function getValue() {
  1026. var _this2 = this;
  1027. var parseValue = [];
  1028. this.parseValue.forEach(function (value) {
  1029. _this2.rule.options.forEach(function (option) {
  1030. option.label === value && parseValue.push(option.value);
  1031. });
  1032. });
  1033. parseValue = this.rule.options.length === 1 ? parseValue[0] === undefined ? '' : parseValue[0] : parseValue;
  1034. return parseValue;
  1035. }
  1036. });
  1037. var render = (0, _render.renderFactory)({
  1038. parse: function parse() {
  1039. var _this3 = this;
  1040. this.propsData = this.inputProps().get();
  1041. var _handler = this.handler,
  1042. unique = _handler.unique,
  1043. options = _handler.rule.options;
  1044. return [this.cvm.checkboxGroup(this.propsData, function () {
  1045. return options.map(function (option, index) {
  1046. return _this3.cvm.checkbox({ props: option, key: "copt" + index + unique });
  1047. });
  1048. })];
  1049. }
  1050. });
  1051. var make = (0, _make2.default)('checkbox', ['options', 'props', 'event', 'validate']);
  1052. var component = { handler: handler, render: render, make: make };
  1053. exports.default = component;
  1054. exports.handler = handler;
  1055. exports.render = render;
  1056. exports.make = make;
  1057. /***/ }),
  1058. /* 11 */
  1059. /***/ (function(module, exports, __webpack_require__) {
  1060. "use strict";
  1061. Object.defineProperty(exports, "__esModule", {
  1062. value: true
  1063. });
  1064. exports.make = exports.render = exports.handler = undefined;
  1065. var _handler = __webpack_require__(2);
  1066. var _render = __webpack_require__(3);
  1067. var _make = __webpack_require__(0);
  1068. var _make2 = _interopRequireDefault(_make);
  1069. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1070. var handler = (0, _handler.handlerFactory)({});
  1071. var render = (0, _render.renderFactory)({
  1072. parse: function parse() {
  1073. this.propsData = this.inputProps().get();
  1074. return [this.cvm.colorPicker(this.propsData)];
  1075. }
  1076. });
  1077. var make = (0, _make2.default)('colorpicker', ['props', 'event', 'validate']);
  1078. var component = { handler: handler, render: render, make: make };
  1079. exports.default = component;
  1080. exports.handler = handler;
  1081. exports.render = render;
  1082. exports.make = make;
  1083. /***/ }),
  1084. /* 12 */
  1085. /***/ (function(module, exports, __webpack_require__) {
  1086. "use strict";
  1087. Object.defineProperty(exports, "__esModule", {
  1088. value: true
  1089. });
  1090. exports.make = exports.render = exports.handler = undefined;
  1091. var _handler = __webpack_require__(2);
  1092. var _render = __webpack_require__(3);
  1093. var _util = __webpack_require__(1);
  1094. var _common = __webpack_require__(4);
  1095. var _make = __webpack_require__(0);
  1096. var _make2 = _interopRequireDefault(_make);
  1097. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1098. var handler = (0, _handler.handlerFactory)({
  1099. verify: function verify() {
  1100. this.rule.props.type = !this.rule.props.type ? 'date' : this.rule.props.type;
  1101. },
  1102. handle: function handle() {
  1103. var parseValue = this.rule.value;
  1104. if (['daterange', 'datetimerange'].indexOf(this.rule.props.type) !== -1) {
  1105. (0, _util.isArray)(parseValue) || (parseValue = ['', '']);
  1106. parseValue = parseValue.map(function (time) {
  1107. return !time ? '' : (0, _common.timeStampToDate)(time);
  1108. });
  1109. } else {
  1110. (0, _util.isArray)(parseValue) && (parseValue = parseValue[0]);
  1111. parseValue = !parseValue ? '' : (0, _common.timeStampToDate)(parseValue);
  1112. }
  1113. this.changeParseValue(parseValue);
  1114. },
  1115. getValue: function getValue() {
  1116. return this.el.publicStringValue;
  1117. }
  1118. });
  1119. var render = (0, _render.renderFactory)({
  1120. parse: function parse() {
  1121. this.propsData = this.inputProps().get();
  1122. return [this.cvm.datePicker(this.propsData)];
  1123. }
  1124. });
  1125. var make = (0, _make2.default)('datepicker', ['props', 'event', 'validate']);
  1126. var component = { handler: handler, render: render, make: make };
  1127. exports.default = component;
  1128. exports.handler = handler;
  1129. exports.render = render;
  1130. exports.make = make;
  1131. /***/ }),
  1132. /* 13 */
  1133. /***/ (function(module, exports, __webpack_require__) {
  1134. "use strict";
  1135. Object.defineProperty(exports, "__esModule", {
  1136. value: true
  1137. });
  1138. exports.make = exports.render = exports.handler = undefined;
  1139. var _handler = __webpack_require__(2);
  1140. var _render = __webpack_require__(3);
  1141. var _make = __webpack_require__(0);
  1142. var _make2 = _interopRequireDefault(_make);
  1143. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1144. var handler = (0, _handler.handlerFactory)({});
  1145. var render = (0, _render.renderFactory)({
  1146. parse: function parse() {
  1147. this.propsData = this.inputProps().get();
  1148. return [this.cvm.input(this.propsData)];
  1149. }
  1150. });
  1151. var make = (0, _make2.default)('input', ['props', 'event', 'validate', 'slot']);
  1152. var component = { handler: handler, render: render, make: make };
  1153. exports.default = component;
  1154. exports.handler = handler;
  1155. exports.render = render;
  1156. exports.make = make;
  1157. /***/ }),
  1158. /* 14 */
  1159. /***/ (function(module, exports, __webpack_require__) {
  1160. "use strict";
  1161. Object.defineProperty(exports, "__esModule", {
  1162. value: true
  1163. });
  1164. exports.make = exports.render = exports.handler = undefined;
  1165. var _handler = __webpack_require__(2);
  1166. var _render = __webpack_require__(3);
  1167. var _make = __webpack_require__(0);
  1168. var _make2 = _interopRequireDefault(_make);
  1169. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1170. var handler = (0, _handler.handlerFactory)({
  1171. handle: function handle() {
  1172. var parseValue = parseFloat(this.rule.value);
  1173. if (Number.isNaN(parseValue)) parseValue = '';
  1174. this.changeParseValue(parseValue);
  1175. }
  1176. });
  1177. var render = (0, _render.renderFactory)({
  1178. parse: function parse() {
  1179. this.propsData = this.inputProps().get();
  1180. return [this.cvm.inputNumber(this.propsData)];
  1181. }
  1182. });
  1183. var make = (0, _make2.default)('inputnumber', ['props', 'event', 'validate']);
  1184. var component = { handler: handler, render: render, make: make };
  1185. exports.default = component;
  1186. exports.handler = handler;
  1187. exports.render = render;
  1188. exports.make = make;
  1189. /***/ }),
  1190. /* 15 */
  1191. /***/ (function(module, exports, __webpack_require__) {
  1192. "use strict";
  1193. Object.defineProperty(exports, "__esModule", {
  1194. value: true
  1195. });
  1196. exports.make = exports.render = exports.handler = undefined;
  1197. var _handler2 = __webpack_require__(2);
  1198. var _render = __webpack_require__(3);
  1199. var _make = __webpack_require__(0);
  1200. var _make2 = _interopRequireDefault(_make);
  1201. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1202. var handler = (0, _handler2.handlerFactory)({
  1203. handle: function handle() {
  1204. var _this = this;
  1205. var parseValue = '';
  1206. this.rule.options.forEach(function (option) {
  1207. option.value === _this.rule.value && (parseValue = option.label);
  1208. });
  1209. this.changeParseValue(parseValue);
  1210. },
  1211. getValue: function getValue() {
  1212. var _this2 = this;
  1213. var parseValue = '';
  1214. this.rule.options.forEach(function (option) {
  1215. option.label === _this2.parseValue && (parseValue = option.value);
  1216. });
  1217. return parseValue;
  1218. }
  1219. });
  1220. var render = (0, _render.renderFactory)({
  1221. parse: function parse() {
  1222. var _this3 = this;
  1223. this.propsData = this.inputProps().get();
  1224. var _handler = this.handler,
  1225. unique = _handler.unique,
  1226. options = _handler.rule.options;
  1227. return [this.cvm.radioGroup(this.propsData, function () {
  1228. return options.map(function (option, index) {
  1229. return _this3.cvm.radio({ props: option, key: "ropt" + index + unique });
  1230. });
  1231. })];
  1232. }
  1233. });
  1234. var make = (0, _make2.default)('radio', ['options', 'props', 'event', 'validate']);
  1235. var component = { handler: handler, render: render, make: make };
  1236. exports.default = component;
  1237. exports.handler = handler;
  1238. exports.render = render;
  1239. exports.make = make;
  1240. /***/ }),
  1241. /* 16 */
  1242. /***/ (function(module, exports, __webpack_require__) {
  1243. "use strict";
  1244. Object.defineProperty(exports, "__esModule", {
  1245. value: true
  1246. });
  1247. exports.make = exports.render = exports.handler = undefined;
  1248. var _handler2 = __webpack_require__(2);
  1249. var _render = __webpack_require__(3);
  1250. var _util = __webpack_require__(1);
  1251. var _make = __webpack_require__(0);
  1252. var _make2 = _interopRequireDefault(_make);
  1253. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1254. var handler = (0, _handler2.handlerFactory)({
  1255. handle: function handle() {
  1256. var isArr = (0, _util.isArray)(this.rule.value),
  1257. parseValue = void 0;
  1258. if (this.rule.props && this.rule.props.multiple === true) parseValue = isArr === true ? this.rule.value : [this.rule.value];else parseValue = isArr === true ? this.rule.value[0] : this.rule.value;
  1259. this.changeParseValue(parseValue);
  1260. }
  1261. });
  1262. var render = (0, _render.renderFactory)({
  1263. parse: function parse() {
  1264. var _this = this;
  1265. this.propsData = this.inputProps().get();
  1266. var _handler = this.handler,
  1267. unique = _handler.unique,
  1268. options = _handler.rule.options;
  1269. return [this.cvm.select(this.propsData, function () {
  1270. return options.map(function (option, index) {
  1271. return _this.cvm.option({ props: option, key: "sopt" + index + unique });
  1272. });
  1273. })];
  1274. }
  1275. });
  1276. var make = (0, _make2.default)('select', ['options', 'props', 'event', 'validate']);
  1277. var component = { handler: handler, render: render, make: make };
  1278. exports.default = component;
  1279. exports.handler = handler;
  1280. exports.render = render;
  1281. exports.make = make;
  1282. /***/ }),
  1283. /* 17 */
  1284. /***/ (function(module, exports, __webpack_require__) {
  1285. "use strict";
  1286. Object.defineProperty(exports, "__esModule", {
  1287. value: true
  1288. });
  1289. exports.make = exports.render = exports.handler = undefined;
  1290. var _handler = __webpack_require__(2);
  1291. var _render = __webpack_require__(3);
  1292. var _make = __webpack_require__(0);
  1293. var _make2 = _interopRequireDefault(_make);
  1294. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1295. var handler = (0, _handler.handlerFactory)({
  1296. verify: function verify() {
  1297. if (this.rule.slot === undefined) this.rule.slot = {};
  1298. }
  1299. });
  1300. var render = (0, _render.renderFactory)({
  1301. parse: function parse() {
  1302. var slot = this.handler.rule.slot;
  1303. this.propsData = this.inputProps().scopedSlots({
  1304. open: function open() {
  1305. return slot.open;
  1306. },
  1307. close: function close() {
  1308. return slot.close;
  1309. }
  1310. }).get();
  1311. return [this.cvm.switch(this.propsData)];
  1312. }
  1313. });
  1314. var make = (0, _make2.default)('switch', ['slot', 'props', 'event', 'validate']);
  1315. var component = { handler: handler, render: render, make: make };
  1316. exports.default = component;
  1317. exports.handler = handler;
  1318. exports.render = render;
  1319. exports.make = make;
  1320. /***/ }),
  1321. /* 18 */
  1322. /***/ (function(module, exports, __webpack_require__) {
  1323. "use strict";
  1324. Object.defineProperty(exports, "__esModule", {
  1325. value: true
  1326. });
  1327. exports.make = exports.render = exports.handler = undefined;
  1328. var _handler = __webpack_require__(2);
  1329. var _render = __webpack_require__(3);
  1330. var _util = __webpack_require__(1);
  1331. var _common = __webpack_require__(4);
  1332. var _make = __webpack_require__(0);
  1333. var _make2 = _interopRequireDefault(_make);
  1334. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1335. var handler = (0, _handler.handlerFactory)({
  1336. verify: function verify() {
  1337. this.rule.props.type = !this.rule.props.type ? 'time' : this.rule.props.type;
  1338. },
  1339. handle: function handle() {
  1340. var parseValue = this.rule.value;
  1341. if ('timerange' === this.rule.props.type) {
  1342. (0, _util.isArray)(parseValue) || (parseValue = ['', '']);
  1343. parseValue = parseValue.map(function (time) {
  1344. return !time ? '' : (0, _common.timeStampToDate)(time);
  1345. });
  1346. } else {
  1347. (0, _util.isArray)(parseValue) && (parseValue = parseValue[0]);
  1348. parseValue = !parseValue ? '' : (0, _common.timeStampToDate)(parseValue);
  1349. }
  1350. this.changeParseValue(parseValue);
  1351. },
  1352. getValue: function getValue() {
  1353. return this.el.publicStringValue;
  1354. }
  1355. });
  1356. var render = (0, _render.renderFactory)({
  1357. parse: function parse() {
  1358. this.propsData = this.inputProps().get();
  1359. return [this.cvm.timePicker(this.propsData)];
  1360. }
  1361. });
  1362. var make = (0, _make2.default)('timepicker', ['props', 'event', 'validate']);
  1363. var component = { handler: handler, render: render, make: make };
  1364. exports.default = component;
  1365. exports.handler = handler;
  1366. exports.render = render;
  1367. exports.make = make;
  1368. /***/ }),
  1369. /* 19 */
  1370. /***/ (function(module, exports, __webpack_require__) {
  1371. "use strict";
  1372. Object.defineProperty(exports, "__esModule", {
  1373. value: true
  1374. });
  1375. exports.make = exports.render = exports.handler = undefined;
  1376. var _handler = __webpack_require__(2);
  1377. var _render = __webpack_require__(3);
  1378. var _make = __webpack_require__(0);
  1379. var _make2 = _interopRequireDefault(_make);
  1380. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1381. var handler = (0, _handler.handlerFactory)({});
  1382. var render = (0, _render.renderFactory)({
  1383. parse: function parse() {
  1384. return [];
  1385. }
  1386. });
  1387. var make = function () {
  1388. var makeRule = (0, _make2.default)('hidden', []);
  1389. return makeRule.bind(makeRule, '');
  1390. }();
  1391. var component = { handler: handler, render: render, make: make };
  1392. exports.default = component;
  1393. exports.handler = handler;
  1394. exports.render = render;
  1395. exports.make = make;
  1396. /***/ }),
  1397. /* 20 */
  1398. /***/ (function(module, exports, __webpack_require__) {
  1399. "use strict";
  1400. Object.defineProperty(exports, "__esModule", {
  1401. value: true
  1402. });
  1403. exports.make = exports.render = exports.handler = undefined;
  1404. var _handler2 = __webpack_require__(2);
  1405. var _render = __webpack_require__(3);
  1406. var _util = __webpack_require__(1);
  1407. var _make = __webpack_require__(0);
  1408. var _make2 = _interopRequireDefault(_make);
  1409. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1410. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  1411. var handler = (0, _handler2.handlerFactory)({
  1412. verify: function verify() {
  1413. var props = this.rule.props;
  1414. props.defaultFileList = [];
  1415. props.showUploadList = false;
  1416. props.uploadType = !props.uploadType ? 'file' : props.uploadType;
  1417. if (props.uploadType === 'file' && props.handleIcon === undefined) props.handleIcon = false;
  1418. this.parseValue = [];
  1419. },
  1420. handle: function handle() {
  1421. var _this = this;
  1422. var files = (0, _util.isArray)(this.rule.value) ? this.rule.value : !this.rule.value ? [] : [this.rule.value];
  1423. this.parseValue.splice(0, this.parseValue.length);
  1424. files.forEach(function (file) {
  1425. return _this.push(file);
  1426. });
  1427. this.rule.props.defaultFileList = this.parseValue;
  1428. },
  1429. mounted: function mounted() {
  1430. this.el = this.vm.$refs[this.refName];
  1431. this.changeParseValue(this.el.fileList);
  1432. },
  1433. push: function push(file) {
  1434. this.parseValue.push({
  1435. url: file,
  1436. name: this.getFileName(file)
  1437. });
  1438. this.changeParseValue(this.parseValue);
  1439. },
  1440. getValue: function getValue() {
  1441. var files = this.parseValue.map(function (file) {
  1442. return file.url;
  1443. });
  1444. return this.rule.props.maxLength <= 1 ? files[0] || '' : files;
  1445. },
  1446. changeParseValue: function changeParseValue(parseValue) {
  1447. var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  1448. if (b === true) this.vm.changeFormData(this.rule.field, parseValue);
  1449. this.parseValue = parseValue;
  1450. this.el.fileList = parseValue;
  1451. },
  1452. getFileName: function getFileName(pic) {
  1453. var res = pic.split('/'),
  1454. file = res[res.length - 1],
  1455. index = file.indexOf('.');
  1456. return index === -1 ? file : file.substr(0, index);
  1457. }
  1458. });
  1459. var propsEventType = ['beforeUpload', 'onProgress', 'onPreview', 'onRemove', 'onFormatError', 'onExceededSize', 'onError'];
  1460. var render = (0, _render.renderFactory)({
  1461. init: function init() {
  1462. var _this2 = this;
  1463. this.uploadOptions = Object.assign(Object.create(null), this.options.upload, this.handler.rule.props);
  1464. this.issetIcon = this.uploadOptions.allowRemove || this.uploadOptions.handleIcon;
  1465. var events = propsEventType.reduce(function (initial, eventName) {
  1466. initial[eventName] = function () {
  1467. var _uploadOptions$eventN;
  1468. for (var _len = arguments.length, arg = Array(_len), _key = 0; _key < _len; _key++) {
  1469. arg[_key] = arguments[_key];
  1470. }
  1471. if (_this2.uploadOptions[eventName]) return (_uploadOptions$eventN = _this2.uploadOptions[eventName]).call.apply(_uploadOptions$eventN, [null].concat(arg));
  1472. };
  1473. return initial;
  1474. }, {});
  1475. this.propsData = this.props.props(this.uploadOptions).props('onSuccess', function (response, file, fileList) {
  1476. var url = _this2.uploadOptions.onSuccess.call(null, response, file, fileList);
  1477. if (url) {
  1478. file.url = url;
  1479. file.name = _this2.handler.getFileName(url);
  1480. }
  1481. _this2.handler.changeParseValue(_this2.handler.el.fileList);
  1482. }).props(events).ref(this.handler.refName).key("fip" + this.handler.unique).get();
  1483. },
  1484. parse: function parse() {
  1485. var _this3 = this;
  1486. var _handler = this.handler,
  1487. rule = _handler.rule,
  1488. unique = _handler.unique,
  1489. value = this.vm.formData[rule.field],
  1490. render = [].concat(_toConsumableArray(value.map(function (file, index) {
  1491. if (file.status === undefined || file.status === 'finished') {
  1492. return _this3.makeUploadView(file.url, "" + index + unique, index);
  1493. } else if (file.showProgress) {
  1494. return _this3.makeProgress(file, "" + index + unique);
  1495. }
  1496. })));
  1497. render.push(this.makeUploadBtn(unique, !this.uploadOptions.maxLength || this.uploadOptions.maxLength > this.vm.formData[rule.field].length));
  1498. return [this.cvm.make('div', { key: "div4" + unique, class: { 'fc-upload': true } }, render)];
  1499. },
  1500. makeUploadView: function makeUploadView(src, key, index) {
  1501. var _this4 = this;
  1502. return this.cvm.make('div', { key: "div1" + key, class: { 'fc-files': true } }, function () {
  1503. var container = [];
  1504. if (_this4.uploadOptions.uploadType === 'image') {
  1505. container.push(_this4.cvm.make('img', { key: "img" + key, attrs: { src: src } }));
  1506. } else {
  1507. container.push(_this4.cvm.icon({ key: "file" + key, props: { type: "document-text", size: 40 } }));
  1508. }
  1509. if (_this4.issetIcon) container.push(_this4.makeIcons(src, key, index));
  1510. return container;
  1511. });
  1512. },
  1513. makeIcons: function makeIcons(src, key, index) {
  1514. var _this5 = this;
  1515. return this.cvm.make('div', { key: "div2" + key, class: { 'fc-upload-cover': true } }, function () {
  1516. var icon = [];
  1517. if (!!_this5.uploadOptions.handleIcon) icon.push(_this5.makeHandleIcon(src, key, index));
  1518. if (_this5.uploadOptions.allowRemove === true) icon.push(_this5.makeRemoveIcon(src, key, index));
  1519. return icon;
  1520. });
  1521. },
  1522. makeProgress: function makeProgress(file, unique) {
  1523. return this.cvm.make('div', { key: "div3" + unique, class: { 'fc-files': true } }, [this.cvm.progress({ key: "upp" + unique, props: { percent: file.percentage, hideInfo: true } })]);
  1524. },
  1525. makeUploadBtn: function makeUploadBtn(unique, isShow) {
  1526. return this.cvm.upload(this.propsData, isShow === true ? [this.cvm.make('div', { key: "div5" + unique, class: { 'fc-upload-btn': true } }, [this.cvm.icon({ key: "upi" + unique, props: { type: "camera", size: 20 } })])] : []);
  1527. },
  1528. makeRemoveIcon: function makeRemoveIcon(src, key, index) {
  1529. var _this6 = this;
  1530. return this.cvm.icon({ key: "upri" + key + index, props: { type: 'ios-trash-outline' }, nativeOn: { 'click': function click() {
  1531. _this6.handler.el.fileList.splice(index, 1);
  1532. } } });
  1533. },
  1534. makeHandleIcon: function makeHandleIcon(src, key, index) {
  1535. var _this7 = this;
  1536. return this.cvm.icon({ key: "uphi" + key + index, props: { type: this.uploadOptions.handleIcon.toString() }, nativeOn: { 'click': function click() {
  1537. _this7.uploadOptions.onHandle(src);
  1538. } } });
  1539. }
  1540. });
  1541. var make = (0, _make2.default)('upload', ['props', 'validate']);
  1542. var component = { handler: handler, render: render, make: make };
  1543. exports.default = component;
  1544. exports.handler = handler;
  1545. exports.render = render;
  1546. exports.make = make;
  1547. /***/ }),
  1548. /* 21 */
  1549. /***/ (function(module, exports, __webpack_require__) {
  1550. "use strict";
  1551. Object.defineProperty(exports, "__esModule", {
  1552. value: true
  1553. });
  1554. exports.make = exports.render = exports.handler = undefined;
  1555. var _handler = __webpack_require__(2);
  1556. var _render = __webpack_require__(3);
  1557. var _make = __webpack_require__(0);
  1558. var _make2 = _interopRequireDefault(_make);
  1559. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1560. var handler = (0, _handler.handlerFactory)({
  1561. handle: function handle() {
  1562. var parseValue = parseFloat(this.rule.value);
  1563. if (Number.isNaN(parseValue)) parseValue = 0;
  1564. this.changeParseValue(parseValue);
  1565. }
  1566. });
  1567. var render = (0, _render.renderFactory)({
  1568. parse: function parse() {
  1569. this.propsData = this.inputProps().get();
  1570. return [this.cvm.rate(this.propsData)];
  1571. }
  1572. });
  1573. var make = (0, _make2.default)('rate', ['props', 'event', 'validate']);
  1574. var component = { handler: handler, render: render, make: make };
  1575. exports.default = component;
  1576. exports.handler = handler;
  1577. exports.render = render;
  1578. exports.make = make;
  1579. /***/ }),
  1580. /* 22 */
  1581. /***/ (function(module, exports, __webpack_require__) {
  1582. "use strict";
  1583. Object.defineProperty(exports, "__esModule", {
  1584. value: true
  1585. });
  1586. exports.make = exports.render = exports.handler = undefined;
  1587. var _handler = __webpack_require__(2);
  1588. var _render = __webpack_require__(3);
  1589. var _util = __webpack_require__(1);
  1590. var _make = __webpack_require__(0);
  1591. var _make2 = _interopRequireDefault(_make);
  1592. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1593. var handler = (0, _handler.handlerFactory)({
  1594. verify: function verify() {
  1595. this.rule.props.min = this.rule.props.min === undefined ? 0 : parseFloat(this.rule.props.min);
  1596. },
  1597. handle: function handle() {
  1598. var isArr = (0, _util.isArray)(this.rule.value),
  1599. min = this.rule.props.min,
  1600. parseValue = void 0;
  1601. if (this.rule.props.range === true) {
  1602. parseValue = isArr ? this.rule.value : [min, parseFloat(this.rule.value) || min];
  1603. } else {
  1604. parseValue = isArr ? parseFloat(this.rule.value[0]) || min : parseFloat(this.rule.value);
  1605. }
  1606. this.changeParseValue(parseValue);
  1607. }
  1608. });
  1609. var render = (0, _render.renderFactory)({
  1610. parse: function parse() {
  1611. this.propsData = this.inputProps().get();
  1612. return [this.cvm.slider(this.propsData)];
  1613. }
  1614. });
  1615. var make = (0, _make2.default)('slider', ['props', 'event', 'validate']);
  1616. var component = { handler: handler, render: render, make: make };
  1617. exports.default = component;
  1618. exports.handler = handler;
  1619. exports.render = render;
  1620. exports.make = make;
  1621. /***/ }),
  1622. /* 23 */
  1623. /***/ (function(module, exports, __webpack_require__) {
  1624. "use strict";
  1625. Object.defineProperty(exports, "__esModule", {
  1626. value: true
  1627. });
  1628. exports.make = exports.render = exports.handler = undefined;
  1629. var _handler = __webpack_require__(2);
  1630. var _render = __webpack_require__(3);
  1631. var _util = __webpack_require__(1);
  1632. var _make = __webpack_require__(0);
  1633. var _make2 = _interopRequireDefault(_make);
  1634. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1635. var handler = (0, _handler.handlerFactory)({
  1636. verify: function verify() {
  1637. var props = this.rule.props;
  1638. if (!props.type) props.type = 'input';
  1639. if (!props.icon) props.icon = 'folder';
  1640. if (!props.width) props.width = '500px';
  1641. if (!props.height) props.height = '370px';
  1642. if (props.spin === undefined) props.spin = true;
  1643. if (!props.title) props.title = '请选择' + this.rule.title;
  1644. if (!props.maxLength) props.maxLength = 0;
  1645. props.multiple = !props.maxLength || props.maxLength > 1;
  1646. if (props.type === 'file' && props.handleIcon === undefined) props.handleIcon = false;else props.handleIcon = props.handleIcon === true || props.handleIcon === undefined ? 'ios-eye-outline' : props.handleIcon;
  1647. if (props.allowRemove === undefined) props.allowRemove = true;
  1648. },
  1649. handle: function handle() {
  1650. var parseValue = void 0,
  1651. oldValue = this.rule.value,
  1652. isArr = (0, _util.isArray)(oldValue);
  1653. if (oldValue === '') parseValue = [];else if (!isArr) parseValue = [oldValue];else parseValue = oldValue;
  1654. this.changeParseValue(parseValue);
  1655. },
  1656. getValue: function getValue() {
  1657. return this.rule.props.multiple === true ? this.parseValue : this.parseValue[0] === undefined ? '' : this.parseValue[0];
  1658. }
  1659. });
  1660. var render = (0, _render.renderFactory)({
  1661. init: function init() {
  1662. var _this = this;
  1663. var field = this.handler.rule.field,
  1664. b = false;
  1665. this.vm.$watch("formData." + field, function () {
  1666. b === true && _this.onChange();
  1667. b = true;
  1668. });
  1669. this._props = this.handler.rule.props;
  1670. this.issetIcon = this._props.handleIcon !== false || this._props.allowRemove === true;
  1671. },
  1672. parse: function parse() {
  1673. var type = this._props.type,
  1674. vNode = void 0;
  1675. if (type === 'image') vNode = this.makeGroup(this.makeImage());else if (type === 'file') vNode = this.makeGroup(this.makeFile());else vNode = this.makeInput();
  1676. return vNode;
  1677. },
  1678. makeInput: function makeInput(hidden) {
  1679. var _this2 = this;
  1680. var unique = this.handler.unique,
  1681. props = this.inputProps().props({
  1682. type: "text",
  1683. value: this.handler.parseValue,
  1684. icon: this._props.icon,
  1685. readonly: true
  1686. }).on('on-click', function () {
  1687. _this2.showModel();
  1688. }).key('ifit' + unique).style({ display: hidden === true ? 'none' : 'inline-block' }).get();
  1689. return [this.cvm.input(props)];
  1690. },
  1691. makeGroup: function makeGroup(render) {
  1692. var unique = this.handler.unique,
  1693. field = this.handler.rule.field;
  1694. return [this.cvm.make('div', { key: "ifgp1" + unique, class: { 'fc-upload': true }, ref: this.handler.refName, props: { value: this.vm.formData[field] } }, render), this.makeInput(true)];
  1695. },
  1696. makeImage: function makeImage() {
  1697. var _this3 = this;
  1698. var unique = this.handler.unique;
  1699. var vNode = this.handler.parseValue.map(function (src, index) {
  1700. return _this3.cvm.make('div', { key: "ifid1" + unique, class: { 'fc-files': true } }, [_this3.cvm.make('img', { key: "ifim" + unique, attrs: { src: src } }), _this3.makeIcons(src, unique, index)]);
  1701. });
  1702. vNode.push(this.makeBtn());
  1703. return vNode;
  1704. },
  1705. makeFile: function makeFile() {
  1706. var _this4 = this;
  1707. var unique = this.handler.unique;
  1708. var vNode = this.handler.parseValue.map(function (src, index) {
  1709. return _this4.cvm.make('div', { key: "iffd2" + unique, class: { 'fc-files': true } }, [_this4.cvm.icon({ key: "iff" + unique, props: { type: "document-text", size: 40 } }), _this4.makeIcons(src, unique, index)]);
  1710. });
  1711. vNode.push(this.makeBtn());
  1712. return vNode;
  1713. },
  1714. makeBtn: function makeBtn() {
  1715. var _this5 = this;
  1716. var props = this.handler.rule.props;
  1717. if (props.maxLength > 0 && this.handler.parseValue.length >= props.maxLength) return;
  1718. var unique = this.handler.unique;
  1719. return this.cvm.make('div', { key: "ifbd3" + unique, class: { 'fc-upload-btn': true }, on: { click: function click() {
  1720. _this5.showModel();
  1721. } } }, [this.cvm.icon({ key: "ifbi" + unique, props: { type: this._props.icon, size: 20 } })]);
  1722. },
  1723. makeSpin: function makeSpin() {
  1724. if (true !== this._props.spin) return;
  1725. var unique = this.handler.unique;
  1726. return this.cvm.make('Spin', {
  1727. props: { fix: true },
  1728. key: 'ifsp' + unique,
  1729. class: {
  1730. 'fc-spin': true
  1731. }
  1732. }, [this.cvm.icon({
  1733. props: {
  1734. type: 'load-c',
  1735. size: 18
  1736. },
  1737. class: {
  1738. 'fc-spin-icon-load': true
  1739. },
  1740. key: 'ifspi' + unique
  1741. }), this.cvm.make('div', {
  1742. domProps: {
  1743. innerHTML: '加载中...'
  1744. },
  1745. key: 'ifspd' + unique
  1746. })]);
  1747. },
  1748. makeIcons: function makeIcons(src, key, index) {
  1749. var _this6 = this;
  1750. if (this.issetIcon === true) return this.cvm.make('div', { key: "ifis" + key, class: { 'fc-upload-cover': true } }, function () {
  1751. var icon = [];
  1752. if (_this6._props.handleIcon !== false) icon.push(_this6.makeHandleIcon(src, key, index));
  1753. if (_this6._props.allowRemove === true) icon.push(_this6.makeRemoveIcon(src, key, index));
  1754. return icon;
  1755. });
  1756. },
  1757. makeRemoveIcon: function makeRemoveIcon(src, key, index) {
  1758. var _this7 = this;
  1759. return this.cvm.icon({ key: "ifri" + key + index, props: { type: 'ios-trash-outline' }, nativeOn: { 'click': function click() {
  1760. _this7.onRemove(src) !== false && _this7.handler.parseValue.splice(index, 1);
  1761. } } });
  1762. },
  1763. makeHandleIcon: function makeHandleIcon(src, key, index) {
  1764. var _this8 = this;
  1765. var props = this._props;
  1766. return this.cvm.icon({ key: "ifhi" + key + index, props: { type: props.handleIcon.toString() }, nativeOn: { 'click': function click() {
  1767. _this8.onHandle(src);
  1768. } } });
  1769. },
  1770. onOpen: function onOpen() {
  1771. var fn = this.handler.rule.event['on-open'];
  1772. if (fn) return fn(this.handler.getValue());
  1773. },
  1774. onChange: function onChange() {
  1775. var fn = this.handler.rule.event['on-change'];
  1776. if (fn) return fn(this.handler.getValue());
  1777. },
  1778. onOk: function onOk() {
  1779. var fn = this.handler.rule.event['on-ok'];
  1780. if (fn) return fn(this.handler.getValue());
  1781. },
  1782. onRemove: function onRemove(src) {
  1783. var fn = this.handler.rule.event['on-remove'];
  1784. if (fn) return fn(src, this.handler.getValue());
  1785. },
  1786. onHandle: function onHandle(src) {
  1787. var fn = this.handler.rule.event['on-handle'];
  1788. if (fn) return fn(src);else this.defaultOnHandle(src);
  1789. },
  1790. defaultOnHandle: function defaultOnHandle(src) {
  1791. this.vm.$Modal.info({
  1792. title: "预览",
  1793. render: function render(h) {
  1794. return h('img', { attrs: { src: src }, style: "width: 100%" });
  1795. }
  1796. });
  1797. },
  1798. showModel: function showModel() {
  1799. var _this9 = this;
  1800. var isShow = false !== this.onOpen(),
  1801. _props = this._props,
  1802. width = _props.width,
  1803. height = _props.height,
  1804. src = _props.src,
  1805. title = _props.title;
  1806. isShow && this.vm.$Modal.info({
  1807. title: title,
  1808. render: function render() {
  1809. return [_this9.makeSpin(), _this9.cvm.make('iframe', {
  1810. attrs: {
  1811. src: src
  1812. },
  1813. style: {
  1814. 'height': height,
  1815. 'border': "0 none",
  1816. 'width': "100%"
  1817. },
  1818. on: {
  1819. 'load': function load() {
  1820. _this9._props.spin === true && document.getElementsByClassName('fc-spin')[0].remove();
  1821. }
  1822. },
  1823. key: "ifmd" + (0, _util.uniqueId)()
  1824. })];
  1825. },
  1826. onOk: function onOk() {
  1827. _this9.onOk();
  1828. },
  1829. width: width
  1830. });
  1831. }
  1832. });
  1833. var make = (0, _make2.default)('frame', ['props', 'event', 'validate']);
  1834. var component = { handler: handler, render: render, make: make };
  1835. exports.default = component;
  1836. exports.handler = handler;
  1837. exports.render = render;
  1838. exports.make = make;
  1839. /***/ }),
  1840. /* 24 */
  1841. /***/ (function(module, exports, __webpack_require__) {
  1842. "use strict";
  1843. Object.defineProperty(exports, "__esModule", {
  1844. value: true
  1845. });
  1846. var _cvm = __webpack_require__(5);
  1847. var _cvm2 = _interopRequireDefault(_cvm);
  1848. var _props = __webpack_require__(6);
  1849. var _props2 = _interopRequireDefault(_props);
  1850. var _util = __webpack_require__(1);
  1851. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1852. var render = function render(_ref) {
  1853. var vm = _ref.vm,
  1854. options = _ref.options,
  1855. fieldList = _ref.fieldList,
  1856. handlers = _ref.handlers,
  1857. formData = _ref.formData,
  1858. validate = _ref.validate,
  1859. fCreateApi = _ref.fCreateApi;
  1860. this.vm = vm;
  1861. this.options = options;
  1862. this.handlers = handlers;
  1863. this.renderSort = fieldList;
  1864. this.renders = this.renderSort.reduce(function (initial, field) {
  1865. initial[field] = handlers[field].render;
  1866. return initial;
  1867. }, {});
  1868. this.form = {
  1869. model: formData,
  1870. rules: validate
  1871. };
  1872. this.fCreateApi = fCreateApi;
  1873. this.cvm = _cvm2.default.instance(vm.$createElement);
  1874. this.props = _props2.default.instance();
  1875. this.unique = (0, _util.uniqueId)();
  1876. this.refName = 'cForm' + this.unique;
  1877. };
  1878. render.prototype = {
  1879. parse: function parse(vm) {
  1880. var _this = this;
  1881. _cvm2.default.setVm(vm);
  1882. var unique = this.unique,
  1883. propsData = this.props.props(Object.assign({}, this.options.form, this.form)).ref(this.refName).class('form-create', true).key(unique).get(),
  1884. vn = this.renderSort.map(function (field) {
  1885. var render = _this.renders[field],
  1886. _render$handler = render.handler,
  1887. key = _render$handler.key,
  1888. type = _render$handler.rule.type;
  1889. if (type !== 'hidden') return _this.makeFormItem(render.handler, render.parse(), 'fItem' + key + unique);
  1890. });
  1891. if (false !== this.options.submitBtn) vn.push(this.makeSubmitBtn(unique));
  1892. return this.cvm.form(propsData, vn);
  1893. },
  1894. makeFormItem: function makeFormItem(_ref2, VNodeFn) {
  1895. var rule = _ref2.rule,
  1896. refName = _ref2.refName,
  1897. unique = _ref2.unique;
  1898. var propsData = this.props.props({
  1899. prop: rule.field,
  1900. label: rule.title,
  1901. labelFor: refName,
  1902. rules: rule.validate
  1903. }).key(unique).get();
  1904. return this.cvm.formItem(propsData, VNodeFn);
  1905. },
  1906. makeSubmitBtn: function makeSubmitBtn(unique) {
  1907. var _this2 = this;
  1908. return this.cvm.button({ key: 'fbtn' + unique, props: this.vm.buttonProps, on: { "click": function click() {
  1909. _this2.fCreateApi.submit();
  1910. } } }, [this.cvm.span(this.options.submitBtn.innerText)]);
  1911. },
  1912. removeRender: function removeRender(field) {
  1913. delete this.renders[field];
  1914. this.renderSort.splice(this.renderSort.indexOf(field), 1);
  1915. },
  1916. setRender: function setRender(handler, after, pre) {
  1917. this.renders[handler.rule.field] = handler.render;
  1918. if (after !== undefined) this.changeSort(handler.rule.field, after, pre);
  1919. },
  1920. changeSort: function changeSort(field, after, pre) {
  1921. var index = this.renderSort.indexOf(after.toString());
  1922. if (index !== -1) this.renderSort.splice(pre === false ? index + 1 : index, 0, field);else if (!pre) this.renderSort.push(field);else this.renderSort.unshift(field);
  1923. }
  1924. };
  1925. exports.default = render;
  1926. /***/ }),
  1927. /* 25 */
  1928. /***/ (function(module, exports, __webpack_require__) {
  1929. "use strict";
  1930. Object.defineProperty(exports, "__esModule", {
  1931. value: true
  1932. });
  1933. var formCreateName = 'form-create';
  1934. var formCreateComponent = function formCreateComponent(fComponent) {
  1935. return {
  1936. name: formCreateName,
  1937. data: function data() {
  1938. return {
  1939. formData: {},
  1940. buttonProps: {}
  1941. };
  1942. },
  1943. render: function render() {
  1944. return fComponent.fRender.parse(fComponent.vm);
  1945. },
  1946. created: function created() {
  1947. fComponent.init(this);
  1948. },
  1949. methods: {
  1950. changeFormData: function changeFormData(field, value) {
  1951. this.$set(this.formData, field, value);
  1952. },
  1953. removeFormData: function removeFormData(field) {
  1954. this.$delete(this.formData, field);
  1955. },
  1956. changeButtonProps: function changeButtonProps(props) {
  1957. this.$set(this, 'buttonProps', Object.assign(this.buttonProps, props));
  1958. },
  1959. setField: function setField(field, value) {
  1960. this.$set(this.formData, field, value);
  1961. }
  1962. },
  1963. mounted: function mounted() {
  1964. Object.keys(this.formData).map(function (field) {
  1965. fComponent.addHandlerWatch(fComponent.handlers[field]);
  1966. fComponent.handlers[field].mounted();
  1967. });
  1968. }
  1969. };
  1970. };
  1971. exports.default = formCreateComponent;
  1972. /***/ })
  1973. /******/ ]);
  1974. });