UNPKG

ng-form-element

Version:
1,599 lines (1,365 loc) 2.34 MB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "00fd": /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__("9e69"); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } module.exports = getRawTag; /***/ }), /***/ "03dd": /***/ (function(module, exports, __webpack_require__) { var isPrototype = __webpack_require__("eac5"), nativeKeys = __webpack_require__("57a5"); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } module.exports = baseKeys; /***/ }), /***/ "043c": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/index.vue?vue&type=template&id=c49c7154 var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[ 'ng-base-batch', _vm.record.options.customClass ? _vm.record.options.customClass : '' ],style:(_vm.record.options.customStyle)},[(_vm.isDragPanel)?[_c('el-row',{attrs:{"gutter":20}},[_c('draggable',_vm._b({staticClass:"draggable-box",attrs:{"tag":"div"},on:{"add":function($event){return _vm.dragEnd($event, _vm.record.list)}},model:{value:(_vm.record.list),callback:function ($$v) {_vm.$set(_vm.record, "list", $$v)},expression:"record.list"}},'draggable',{ group: 'form-draggable' , ghostClass: 'moving', animation: 180, handle: '.drag-move' },false),_vm._l((_vm.record.list),function(item){return _c('ng-form-node',{key:item.key,staticClass:"drag-move",attrs:{"selectItem":_vm.selectItem,"record":item},on:{"handleSelectItem":_vm.handleSelectItem,"handleCopy":function($event){return _vm.handleCopy(item)},"handleDetele":function($event){return _vm.handleDetele(item)}}})}),1)],1)]:[_c('TableBuild',{attrs:{"record":_vm.record,"models":_vm.models,"prop-prepend":_vm.propPrepend,"preview":_vm.preview}})]],2)} var staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/batch/index.vue?vue&type=template&id=c49c7154 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/index.vue?vue&type=template&id=46b38874 var buildvue_type_template_id_46b38874_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"form-table-index",attrs:{"id":_vm.record.model,"name":_vm.record.model}},[_c('el-table',{class:[ 'form-table', _vm.record.options.customClass ? _vm.record.options.customClass : '' ],style:(_vm.record.options.customStyle),attrs:{"size":_vm.config.size,"data":_vm.models[_vm.record.model],"empty-text":_vm.getLabel(_vm.record.options.noDataText) || _vm.t('ngform.item.batch.no_data'),"border":_vm.record.options.showBorder,"scroll":{ x: _vm.record.list.length * 190 + 80 + (!_vm.record.options.hideSequence ? 60 : 0), y: _vm.record.options.scrollY }}},[(_vm.isVisible)?[(!_vm.record.options.hideSequence)?_c('el-table-column',{attrs:{"label":_vm.t('ngform.item.batch.seq'),"align":"center","type":"index","width":"50"}}):_vm._e(),_vm._l((_vm.record.list),function(item,index){return [(_vm.record.options.addType != 'dialog' || (!_vm.record.options.showItem || _vm.record.options.showItem.length == 0 || _vm.record.options.showItem.includes(item.model) ))?_c('el-table-column',{key:index,attrs:{"label":item.label,"width":_vm.record.options.colWidth && _vm.record.options.colWidth[item.model] ? _vm.record.options.colWidth[item.model] : undefined,"align":"center"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('TableItem',{attrs:{"record":item,"index":scope.$index,"models":_vm.models,"parent-model":_vm.propPrepend + _vm.record.model,"preview":_vm.preview || _vm.record.options.addType == 'dialog',"domains":_vm.models[_vm.record.model][scope.$index]}})]}}],null,true)}):_vm._e()]}),(!_vm.preview || _vm.record.options.addType == 'dialog')?_c('el-table-column',{attrs:{"label":_vm.t('ngform.item.batch.operate'),"align":"center","fixed":_vm.record.options.fixedBtn ? 'right' : undefined,"width":_vm.controlWidth},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [(_vm.preview && _vm.record.options.addType == 'dialog')?_c('el-button',{attrs:{"type":"success","size":_vm.config.size},on:{"click":function($event){return _vm.updateDomain(scope.row)}}},[_c('i',{staticClass:"el-icon-eye"}),_vm._v(" "+_vm._s(_vm.t('ngform.item.view'))+" ")]):_vm._e(),(!_vm.preview && _vm.record.options.addType == 'dialog')?_c('el-button',{attrs:{"type":"primary","size":_vm.config.size},on:{"click":function($event){return _vm.updateDomain(scope.row)}}},[_c('i',{staticClass:"el-icon-edit"}),_vm._v(" "+_vm._s(_vm.t('ngform.item.edit'))+" ")]):_vm._e(),(!_vm.preview && _vm.record.options.copyRow)?_c('el-button',{attrs:{"type":"primary","size":_vm.config.size},on:{"click":function($event){return _vm.copyDomain(scope.row , scope.$index)}}},[_c('i',{staticClass:"el-icon-copy-document"}),_vm._v(_vm._s(_vm.t('ngform.item.copy'))+" ")]):_vm._e(),(!_vm.preview)?_c('el-button',{attrs:{"type":"danger","size":_vm.config.size},on:{"click":function($event){return _vm.removeDomain(scope.$index)}}},[_c('i',{staticClass:"el-icon-delete"}),_vm._v(_vm._s(_vm.t('ngform.item.delete'))+" ")]):_vm._e()]}}],null,false,3974457320)}):_vm._e()]:_vm._e()],2),(!_vm.preview)?_c('el-button',{attrs:{"size":_vm.config.size,"type":"dashed","disabled":_vm.curDisabled},on:{"click":_vm.addDomain}},[_c('i',{staticClass:"el-icon-circle-plus-outline"}),_vm._v(_vm._s(_vm.t('ngform.item.add'))+" ")]):_vm._e(),(_vm.addOrUpdateVisible)?_c('AddOrUpdate',{ref:"addOrUpdate",attrs:{"formTemplate":_vm.templateData,"preview":_vm.preview},on:{"formAdd":_vm.formAdd,"formUpdate":_vm.formUpdate}}):_vm._e()],1)} var buildvue_type_template_id_46b38874_staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/index.vue?vue&type=template&id=46b38874 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/table-item.vue?vue&type=template&id=06238e04 var table_itemvue_type_template_id_06238e04_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ng-form-item',{attrs:{"disabled":_vm.disabled,"preview":_vm.preview,"models":_vm.domains,"record":_vm.record,"show-label":false,"prop-prepend":_vm.parentModel + '.' + _vm.index + '.'},on:{"focus":function($event){return _vm.$emit('focus')},"blur":function($event){return _vm.$emit('blur')}}})],1)} var table_itemvue_type_template_id_06238e04_staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/table-item.vue?vue&type=template&id=06238e04 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/table-item.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var table_itemvue_type_script_lang_js = ({ name: "TableItem", props: { record: { type: Object, required : true }, // 是否预览结果表单 preview: { type: Boolean , default: false }, index: { type: Number }, models: { type: Object }, domains: { type: Object }, disabled: { type: Boolean, default: false }, parentModel: { type: String, required : true } }, computed: { customList() { if (this.$GSFORM && this.$GSFORM.customComponents) { const customComponents_ = this.$GSFORM.customComponents return customComponents_.map(item => item.type); } else { return []; } }, recordRules() { // 2020-07-29 如果是预览 不需要规则验证 if(this.preview || !this.record.rules || this.record.rules.length == 0) { return [] } let rules =this.record.rules // 2020-09-12 判断是否必填 ,非必填得没有值得时候不校验 const isRequire = rules[0].required // 循环判断 for(var i = 0 ; i < rules.length ; i++){ const t = rules[i] t.required = isRequire // 2021-08-12 lyf 针对必填而且是文本输入的组件增加纯空格校验 if(t.required && (this.record.type == 'input' || this.record.type == 'textarea') ){ t.whitespace = true } if(t.vtype == 1 || t.vtype == 2){ t.validator = this.validatorFiled } // 判断trigger if(!t.trigger) { t.trigger = ['change','blur'] } } return rules } }, methods: { } }); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/table-item.vue?vue&type=script&lang=js /* harmony default export */ var build_table_itemvue_type_script_lang_js = (table_itemvue_type_script_lang_js); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__("2877"); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/table-item.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( build_table_itemvue_type_script_lang_js, table_itemvue_type_template_id_06238e04_render, table_itemvue_type_template_id_06238e04_staticRenderFns, false, null, null, null ) /* harmony default export */ var table_item = (component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/add-or-update.vue?vue&type=template&id=bcc49eec var add_or_updatevue_type_template_id_bcc49eec_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{"title":!_vm.dataForm._id ? _vm.t('ngform.item.add') : _vm.t('ngform.item.edit'),"close-on-click-modal":false,"append-to-body":true,"lock-scroll":false,"visible":_vm.visible,"id":_vm.randomId},on:{"update:visible":function($event){_vm.visible=$event}}},[(typeof _vm.formTemplate.list !== 'undefined')?_c('el-form',{key:_vm.dataForm._id,ref:"dataForm",staticClass:"form-build form-design",attrs:{"label-position":_vm.config.labelPosition,"hide-required-asterisk":_vm.config.hideRequiredMark,"label-width":_vm.config.labelWidth + 'px',"model":_vm.dataForm,"size":"mini"}},[_c('el-row',{attrs:{"gutter":20}},[_vm._l((_vm.formTemplate.list),function(item){return [_c('el-col',{attrs:{"span":item.span || 24}},[_c('ng-form-item',{key:item.key,attrs:{"disabled":_vm.disabled,"preview":_vm.preview,"models":_vm.dataForm,"record":item},on:{"update:models":function($event){_vm.dataForm=$event}}})],1)]})],2),_c('el-form-item',{attrs:{"label":_vm.t('ngform.item.batch.seq_label'),"prop":"seq"}},[(_vm.preview)?[_vm._v(" "+_vm._s(_vm.dataForm.seq)+" ")]:[_c('el-input-number',{attrs:{"controls-position":"right","min":0,"placeholder":_vm.t('ngform.item.batch.seq_label'),"disabled":_vm.preview},model:{value:(_vm.dataForm.seq),callback:function ($$v) {_vm.$set(_vm.dataForm, "seq", $$v)},expression:"dataForm.seq"}})]],2)],1):_vm._e(),_c('div',{staticClass:"mod-footer"},[_c('el-button',{attrs:{"size":"mini"},on:{"click":function($event){_vm.visible = false}}},[_vm._v(_vm._s(_vm.t("ngform.cancel")))]),(!_vm.preview)?_c('el-button',{attrs:{"size":"mini","disabled":_vm.loading,"type":"primary"},on:{"click":function($event){return _vm.dataFormSubmit()}}},[_vm._v(_vm._s(_vm.t("ngform.confirm")))]):_vm._e()],1)],1)} var add_or_updatevue_type_template_id_bcc49eec_staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/add-or-update.vue?vue&type=template&id=bcc49eec // EXTERNAL MODULE: ./packages/locale/mixin.js var mixin = __webpack_require__("b5ee"); // EXTERNAL MODULE: ./node_modules/lodash/cloneDeep.js var cloneDeep = __webpack_require__("0644"); var cloneDeep_default = /*#__PURE__*/__webpack_require__.n(cloneDeep); // EXTERNAL MODULE: ./packages/utils/index.js var utils = __webpack_require__("e74d"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/add-or-update.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var add_or_updatevue_type_script_lang_js = ({ name: "table-add-or-update", mixins: [mixin["a" /* default */]], data() { return { randomId: "", loading: false, visible: false, dataForm: { _id: "", seq: 0 }, dataRule: {} } }, computed: { customList() { if (this.customComponents) { return this.customComponents.map((item) => item.type) } else { return [] } }, config() { if(this.configInject && this.configInject != null && this.configInject != undefined) { return this.configInject() || {} } return {} }, topModels() { if(this.topModelsC && this.topModelsC != null && this.topModelsC != undefined) { return this.topModelsC() || {} } return {} }, }, props: { // 表格内部的配置 formTemplate: { type: Object, default: () => ({}) }, // 是否预览结果表单 preview: { type: Boolean, default: false }, disabled: { type: Boolean, default: false } }, inject: { // 表单全局config配置 configInject: { from: "configC" }, customComponents: { from: "customC", default: () => [] }, topModelsC: { from: "topModelsC", default: null } }, methods: { recordRules(record) { // 2020-07-29 如果是预览 不需要规则验证 if (this.preview) { return [] } const rules = record.rules // 循环判断 for (var i = 0; i < rules.length; i++) { const t = rules[i] if (t.vtype == 1 || t.vtype == 2) { t.validator = this.validatorFiled } if (t.required && (record.type == "input" || record.type == "textarea")) { t.whitespace = true } // 判断trigger if (!t.trigger) { t.trigger = ["change", "blur"] } } return rules }, dynamicVisibleItem(record) { if (!record.options || !record.options.dynamicVisible) { return true } if (!record.options.dynamicVisibleValue) { return true } let fstr = record.options.dynamicVisibleValue // 打开了开关 这里获取函数内容 const func = Object(utils["dynamicFun"])(fstr, this.dataForm,this.topModels) return func }, // 2021-03-12 清理没有显示的组件的数据 clearHiddenValue() { // 根据组件ID 是否隐藏为准 // 根据 formTemplate.config.outputHidden 来判断是否要输出隐藏 if (!this.config || !this.config.outputHidden) { const formdesign = document.getElementById(this.randomId) // 循环当前数据 非P 开头的统一不深入第二层 for (let key in this.dataForm) { if (key.indexOf("_label") > 0 || key == "_id" || key == "seq") continue // 判断key的id是否还在 const key_div = formdesign.querySelector("#" + key) if (!key_div) { // 删除 delete this.dataForm[key] delete this.dataForm[key + "_label"] } } } }, validatorFiled(rule, value, callback) { // 判断rule类型 if (rule.vtype == 1) { // 正则 if (!rule.pattern) { callback() return } // 正则匹配 var patt1 = new RegExp(rule.pattern) //document.write(patt1.test("free")); if (patt1.test(value)) { callback() } else { callback(new Error(rule.message)) } return } else if (rule.vtype == 2) { // 表达式 const script = rule.script // 打开了开关 这里获取函数内容 const fvalue = Object(utils["dynamicFun"])(script, this.dataForm,this.topModels) if (!fvalue) { callback(new Error(rule.message)) } else { callback() } } }, init(data) { this.randomId = "ng_table_dialog" + new Date().getTime() this.visible = true this.dataForm._id = null if (data) { //this.dataForm = data for (var i in data) { //this.dataForm[i] = data[i] this.$set(this.dataForm, i, data[i]) } } else { // 初始化数据 //const d = {} this.dataForm.seq = 0 this.formTemplate.list.forEach((item) => { if (item.options.defaultValue) this.$set(this.dataForm, item.model, item.options.defaultValue) //this.dataForm[item.model] = item.options.defaultValue; //this.dataForm[item.model] = undefined else this.$set(this.dataForm, item.model, undefined) // 删除对应的label delete this.dataForm[item.model + "label"] }) console.log("this.dataForm", this.dataForm) this.$nextTick(() => { this.$refs["dataForm"] && this.$refs["dataForm"].resetFields() }) } }, // 表单提交 dataFormSubmit() { this.$refs["dataForm"] && this.$refs["dataForm"].validate((valid) => { if (valid) { this.loading = true this.clearHiddenValue() if (!this.dataForm._id) { // 回填一个ID const id = new Date().getTime() * 10 + parseInt(Math.random() * 100) this.dataForm._id = id this.$emit("formAdd", cloneDeep_default()(this.dataForm)) } else { this.$emit("formUpdate", cloneDeep_default()(this.dataForm)) } this.loading = false this.visible = false } }) } } }); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/add-or-update.vue?vue&type=script&lang=js /* harmony default export */ var build_add_or_updatevue_type_script_lang_js = (add_or_updatevue_type_script_lang_js); // EXTERNAL MODULE: ./packages/form-design/items/base/batch/build/add-or-update.vue?vue&type=style&index=0&id=bcc49eec&prod&lang=css var add_or_updatevue_type_style_index_0_id_bcc49eec_prod_lang_css = __webpack_require__("f0b7"); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/add-or-update.vue /* normalize component */ var add_or_update_component = Object(componentNormalizer["a" /* default */])( build_add_or_updatevue_type_script_lang_js, add_or_updatevue_type_template_id_bcc49eec_render, add_or_updatevue_type_template_id_bcc49eec_staticRenderFns, false, null, null, null ) /* harmony default export */ var add_or_update = (add_or_update_component.exports); // EXTERNAL MODULE: ./packages/form-design/items/mixin.js var items_mixin = __webpack_require__("93f0"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/build/index.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //import TableFormItem from "./table-form-item"; /* harmony default export */ var buildvue_type_script_lang_js = ({ name: "ng-form-base-batch", mixins: [items_mixin["a" /* default */]] , components: { TableItem: table_item,AddOrUpdate: add_or_update }, data() { return { addOrUpdateVisible: false, isVisible: true }; }, props:{ record: { type: Object, required : true }, models: { type: Object, required : true }, parentDisabled: { type: Boolean, default: false }, // 是否预览结果表单 preview: { type: Boolean , default: false }, propPrepend:{ type: String, default: '' } }, computed: { curDisabled() { return this.record.options.disabled || this.disabled || this.parentDisabled; }, templateData() { return {list: this.record.list, config: this.config } }, controlWidth() { let w = 100 if(this.preview) { return w } if(this.record.options.copyRow) { w += 80 } if(this.record.options.addType == 'dialog') { w += 80 } return w }, config() { if(this.configInject && this.configInject != null && this.configInject != undefined) { return this.configInject() || {} } return {} }, }, inject: { // 表单全局config配置 configInject: { from: 'configC' } }, mounted(){ // 2021-05-10 lyf 只要没有默认值都先给回填一个 这个可以处理初始化么有值,导致后面很多联动没法做,必须要通过v-if刷新 if(!Object.prototype.hasOwnProperty.call(this.models, this.record.model) ) { this.$set(this.models , this.record.model , []) } this.$ngform_bus.$on('reset', () => { this.$set(this.models , this.record.model , []) }); }, methods: { validationSubform() { return true ; }, resetForm() { this.$refs.dynamicValidateForm.resetFields(); }, removeDomain(index) { const this_ = this this.$confirm(this.t('ngform.item.batch.delete_prompt'), this.t('ngform.header.prompt'), { confirmButtonText: this.t('ngform.confirm'), cancelButtonText: this.t('ngform.cancel'), type: 'warning' }).then(() => { let domains = this.models[this.record.model] if(domains) { if (index !== -1) { domains.splice(index, 1); this.$message({ message: this_.t('ngform.item.batch.operation_success'), type: 'success', duration: 1000 }) } } }) }, updateDomain(data) { this.addOrUpdateVisible = true this.$nextTick(() => { this.$refs.addOrUpdate.init(data) }) }, // 行复制 2021-02-17 lyf copyDomain(data , index ) { let copyData = cloneDeep_default()(data) // {...data} copyData._id = null if(this.record.options.addType == 'dialog') { this.addOrUpdateVisible = true this.$nextTick(() => { this.$refs.addOrUpdate.init(copyData) }) } else { // 直接添加一行数据 this.isVisible = false let domains = this.models[this.record.model] domains.splice(index + 1, 0, copyData); //domains.push(copyData) this.isVisible = true } }, addDomain() { if(this.record.options.addType == 'dialog') { this.addOrUpdateVisible = true this.$nextTick(() => { this.$refs.addOrUpdate.init() }) } else { // 直接添加一行数据 this.isVisible = false const items = this.record.list const itemObject = {} // items.forEach(t=>{ // itemObject[t.model] = '' // }) let domains = this.models[this.record.model] if(!domains) { const ds = [itemObject] domains = ds } else { domains.push(itemObject) } this.$set(this.models , this.record.model , domains) this.isVisible = true } }, formAdd(form){ this.isVisible = false let domains = this.models[this.record.model] if(!domains) { const ds = [form] this.models[this.record.model] = ds domains = this.models[this.record.model] } else { domains.push(form) } // 排序 domains.sort(function(a, b){ return a.seq - b.seq }); this.isVisible = true this.$message({ message: this.t('ngform.item.batch.operation_success'), type: 'success', duration: 1000 }) }, formUpdate(form){ let domains = this.models[this.record.model] for(var i in this.models[this.record.model] ){ if(this.models[this.record.model] [i]._id == form._id){ this.models[this.record.model].splice(i,1,form) break } } this.models[this.record.model].sort(function(a, b){ return a.seq - b.seq }); this.$message({ message: this.t('ngform.item.batch.operation_success'), type: 'success', duration: 1000 }) }, handleInput() { this.$emit("change", this.models); } } }); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/index.vue?vue&type=script&lang=js /* harmony default export */ var batch_buildvue_type_script_lang_js = (buildvue_type_script_lang_js); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/build/index.vue /* normalize component */ var build_component = Object(componentNormalizer["a" /* default */])( batch_buildvue_type_script_lang_js, buildvue_type_template_id_46b38874_render, buildvue_type_template_id_46b38874_staticRenderFns, false, null, null, null ) /* harmony default export */ var build = (build_component.exports); // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js var vuedraggable_umd = __webpack_require__("b76a"); var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/index.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var batchvue_type_script_lang_js = ({ mixins: [items_mixin["a" /* default */]] , components: { TableBuild: build,draggable: vuedraggable_umd_default.a }, created() { // 赋予一个空的默认值 this.updateArrayDefaultValue() }, methods: { dragEnd(evt, list) { // 拖拽结束,自动选择拖拽的控件项 const clone = this.cloneDeepAndFormat(list[evt.newIndex] , evt) delete clone.icon this.$set(list , evt.newIndex , clone) this.handleSelectItem(clone) }, handleCopy(item){ const nitem = this.cloneDeepAndFormat(item) const key = item.type + "_" + new Date().getTime() nitem.key = key nitem.model = key // 找到index 插入 const oindex = this.record.list.findIndex(t=>t.key == item.key) if(oindex >= 0) { // insert this.record.list.splice(oindex + 1 , 0, nitem) } }, handleDetele(item) { const oindex = this.record.list.findIndex(t=>t.key == item.key) if(oindex >= 0) { this.record.list.splice(oindex , 1); } } } }); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/index.vue?vue&type=script&lang=js /* harmony default export */ var base_batchvue_type_script_lang_js = (batchvue_type_script_lang_js); // EXTERNAL MODULE: ./packages/form-design/items/base/batch/index.vue?vue&type=style&index=0&id=c49c7154&prod&lang=css var batchvue_type_style_index_0_id_c49c7154_prod_lang_css = __webpack_require__("a89e"); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/index.vue /* normalize component */ var batch_component = Object(componentNormalizer["a" /* default */])( base_batchvue_type_script_lang_js, render, staticRenderFns, false, null, null, null ) /* harmony default export */ var batch = (batch_component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/properties.vue?vue&type=template&id=3fafc373 var propertiesvue_type_template_id_3fafc373_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-collapse-item',{attrs:{"name":"column","title":_vm.t('ngform.item.batch.columns')}},[_c('el-form',{staticClass:"ng-batch-properties",attrs:{"size":"mini","label-width":"80px","label-position":"top"}},[_c('el-divider',{staticClass:"divider-center"},[_vm._v(" "+_vm._s(_vm.selectItem.options.addType == 'dialog' ? _vm.t('ngform.item.batch.dialogConfig') : _vm.t('ngform.item.batch.lineConfig'))+" ")]),_c('el-form-item',[_c('el-checkbox-group',{model:{value:(_vm.selectItem.options.showItem),callback:function ($$v) {_vm.$set(_vm.selectItem.options, "showItem", $$v)},expression:"selectItem.options.showItem"}},_vm._l((_vm.selectItem.list),function(item){return _c('el-row',{key:item.model},[_c('el-col',{attrs:{"span":12}},[(_vm.selectItem.options.addType == 'dialog')?_c('el-checkbox',{attrs:{"label":item.model}},[_vm._v(_vm._s(item.label))]):_c('span',[_vm._v(" "+_vm._s(item.label)+" ")])],1),_c('el-col',{attrs:{"span":12}},[_c('el-input',{attrs:{"placeholder":_vm.t('ngform.item.width')},model:{value:(_vm.selectItem.options.colWidth[item.model]),callback:function ($$v) {_vm.$set(_vm.selectItem.options.colWidth, item.model, $$v)},expression:"selectItem.options.colWidth[item.model]"}})],1)],1)}),1)],1)],1)],1)} var propertiesvue_type_template_id_3fafc373_staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/batch/properties.vue?vue&type=template&id=3fafc373 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/batch/properties.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var propertiesvue_type_script_lang_js = ({ mixins: [mixin["a" /* default */]], components: { }, props: { selectItem: { type: Object } }, methods: { } }); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/properties.vue?vue&type=script&lang=js /* harmony default export */ var batch_propertiesvue_type_script_lang_js = (propertiesvue_type_script_lang_js); // EXTERNAL MODULE: ./packages/form-design/items/base/batch/properties.vue?vue&type=style&index=0&id=3fafc373&prod&lang=css var propertiesvue_type_style_index_0_id_3fafc373_prod_lang_css = __webpack_require__("7ae2"); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/properties.vue /* normalize component */ var properties_component = Object(componentNormalizer["a" /* default */])( batch_propertiesvue_type_script_lang_js, propertiesvue_type_template_id_3fafc373_render, propertiesvue_type_template_id_3fafc373_staticRenderFns, false, null, null, null ) /* harmony default export */ var properties = (properties_component.exports); // EXTERNAL MODULE: ./packages/locale/index.js + 1 modules var locale = __webpack_require__("92af"); // CONCATENATED MODULE: ./packages/form-design/items/base/batch/index.js // 对外输出 包含组件的对外json定义、属性配置页面、展示页面 三部分 const obj = {} obj.type = 'batch'//, // 表单类型 obj.component = batch obj.properties = properties // 序号 实际在json中删除 obj.seq = 20 // 不需要事件和监听 obj.event_ = false obj.listen_ = false // 补充配置样式 obj.options = { config: { size: 'mini', labelWidth: 80 }, columns: [ { label: Object(locale["a" /* $t */])('ngform.item.label'),//'标签', prop: 'label', default: Object(locale["a" /* $t */])('ngform.item.batch.name'),//'动态表格', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.label_width'),//'标签宽度', prop: 'labelWidth', type: 'number', default: -1 }, { label: Object(locale["a" /* $t */])('ngform.item.width'),//'要素宽度', prop: 'width', default: '100%', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.span'),//'所占栅格', type: 'spanGroup', prop: 'span', min: 1, max: 24, default: 24, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.model'), //'数据字段', prop: 'model', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.key'), //'数据KEY', prop: 'key', show: false, span: 24 }, // 默认栅格值回填 { label: '栅格默认值', prop: 'list', show: false, default: [], span: 24 } ], group: [ { label: Object(locale["a" /* $t */])('ngform.item.options'),//'属性', prop: 'options', alone: true, // 是否独立与columns之外展示 false则和columns一起,不另外显示 collapse: false, // 是否启用 collapse 必须alone=true column: [ { label: Object(locale["a" /* $t */])('ngform.item.batch.scroll_height'),//'滚动高度', prop: 'scrollY', type: 'number', default: 0, span: 24 }, // showItem:[] , // colWidth:{}, { prop: 'showItem', show: false, default: [] }, { prop: 'colWidth', show: false, default: {} }, { label: Object(locale["a" /* $t */])('ngform.item.batch.custom_style'),// '样式style', prop: 'customStyle', type: 'textarea', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.no_data_label'),// '空内容提示', prop: 'noDataText', type: 'textarea', default: Object(locale["a" /* $t */])('ngform.item.batch.no_data'),//'暂无数据', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.custom_class'),//'样式class', prop: 'customClass', type: 'textarea', span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.copy_row'),//'行复制', prop: 'copyRow', type: 'switch', default: true, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.hide_seq'),//'隐藏序号', prop: 'hideSequence', type: 'switch', default: true, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.show_border'),// '边框', prop: 'showBorder', type: 'switch', default: true, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.if_hidden'),//'是否隐藏', prop: 'hidden', type: 'switch', default: false, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.if_disabled'),//'是否禁用', prop: 'disabled', type: 'switch', default: false, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.fixed_operate'),//'是否禁用', prop: 'fixedBtn', type: 'switch', default: false, span: 24 }, { label: Object(locale["a" /* $t */])('ngform.item.batch.add_type'),// '新增方式', prop: 'addType', default: 'line', type: 'radioButton', dicData: [ { label: Object(locale["a" /* $t */])('ngform.item.batch.add_type_line') /*'增加行'*/, value: 'line' }, { label: Object(locale["a" /* $t */])('ngform.item.batch.add_type_dialog')/*'弹出框'*/, value: 'dialog' } ], span: 24 } ] } ] } /* harmony default export */ var base_batch = __webpack_exports__["default"] = (obj); /***/ }), /***/ "0644": /***/ (function(module, exports, __webpack_require__) { var baseClone = __webpack_require__("3818"); /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4; /** * This method is like `_.clone` except that it recursively clones `value`. * * @static * @memberOf _ * @since 1.0.0 * @category Lang * @param {*} value The value to recursively clone. * @returns {*} Returns the deep cloned value. * @see _.clone * @example * * var objects = [{ 'a': 1 }, { 'b': 2 }]; * * var deep = _.cloneDeep(objects); * console.log(deep[0] === objects[0]); * // => false */ function cloneDeep(value) { return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); } module.exports = cloneDeep; /***/ }), /***/ "06a6": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/cascader/index.vue?vue&type=template&id=8ae83860 var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.preview)?_c('el-cascader',{ref:"cascader",style:(("width:" + (_vm.record.width))),attrs:{"options":(_vm.record.options.dynamic == 1 && _vm.record.options.remoteFunc ? _vm.checkValues : _vm.record.options.options),"placeholder":_vm.getLabel(_vm.record.options.placeholder),"filterable":_vm.record.options.showSearch,"clearable":_vm.record.options.clearable,"props":_vm.itemProp,"disabled":_vm.recordDisabled},on:{"change":function($event){return _vm.handleChange($event)},"focus":_vm.handleFocus,"blur":_vm.handleBlur},model:{value:(_vm.models[_vm.record.model]),callback:function ($$v) {_vm.$set(_vm.models, _vm.record.model, $$v)},expression:"models[record.model]"}}):_c('span',[_vm._v(" "+_vm._s(_vm.models[_vm.record.model+'_label'])+" ")])} var staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/cascader/index.vue?vue&type=template&id=8ae83860 // EXTERNAL MODULE: ./packages/form-design/items/mixin.js var mixin = __webpack_require__("93f0"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/cascader/index.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var cascadervue_type_script_lang_js = ({ mixins: [mixin["a" /* default */]], data() { return { itemProp: { children: 'children', value: 'value', label: 'label', multiple: this.record.options.multiple }, } }, created () { this.updateArrayDefaultValue() // 如果是静态数据 判断当前是否有值 是否要回填默认值 if(this.record.options.dynamic == 0 && this.models && ( !Object.prototype.hasOwnProperty.call(this.models,this.record.model) || this.models[this.record.model] == undefined) ) { if(this.record.options.defaultValue != null && this.record.options.defaultValue.length > 0) { this.$set(this.models , this.record.model , this.record.options.defaultValue) } } // 判断如果是远程方法的话 远程请求数据 this.initDynamicValue() // 判断是否有联动关联需要处理 if(this.linkageData) { this.linkageDataHandle(false) } // 判断如果已经有了值 但没有label 则尝试回填label const value = this.models[this.record.model] if(value && value.length > 0) { this.handleChange(value) } }, methods: { handleChange(value) { if(!this.$refs.cascader) return let labels = [] let as = [] // 获取数据 判断从ajax 还是本地默认配置 let datas = this.record.options.dynamic > 0 ? this.checkValues : this.record.options.options if(!datas) { datas = [] } // 判断是不是复选 if(!this.itemProp.multiple) { // 复选 as = [value] } else { as = value } const checkNodes = this.$refs.cascader.getCheckedNodes() for(let i = 0 ; i < as.length ; i++){ const v = as[i] // 比对nodes 显示值 const fs = checkNodes.filter(t=>t.path == v) if(fs && fs.length > 0) { const label = fs[0].pathLabels if(label && label.length > 0) labels.push(label.join('/')) } } const modelLabel = this.record.model + '_label' //this.models[modelLabel] = labels.join(',') this.$set(this.models , modelLabel , labels.join(',')) } } }); // CONCATENATED MODULE: ./packages/form-design/items/base/cascader/index.vue?vue&type=script&lang=js /* harmony default export */ var base_cascadervue_type_script_lang_js = (cascadervue_type_script_lang_js); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__("2877"); // CONCATENATED MODULE: ./packages/form-design/items/base/cascader/index.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( base_cascadervue_type_script_lang_js, render, staticRenderFns, false, null, null, null ) /* harmony default export */ var cascader = (component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7833e774-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/form-design/items/base/cascader/properties.vue?vue&type=template&id=0cec152b var propertiesvue_type_template_id_0cec152b_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-collapse-item',{attrs:{"name":"data","title":_vm.t('ngform.item.datasource')}},[_c('DatasourceConfig',{attrs:{"selectItem":_vm.selectItem}})],1)} var propertiesvue_type_template_id_0cec152b_staticRenderFns = [] // CONCATENATED MODULE: ./packages/form-design/items/base/cascader/properties.vue?vue&type=template&id=0cec152b // EXTERNAL MODULE: ./packages/form-design/items/base/select/datasource-config.vue + 9 modules var datasource_config = __webpack_require__("1f6f"); // EXTERNAL MODULE: ./packages/locale/mixin.js var locale_mixin = __webpack_require__("b5ee"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vu