vue-softpro-ui
Version:
Основні компоненти вью
188 lines (155 loc) • 8.54 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackChunkVueSoftProUI"] = (typeof self !== 'undefined' ? self : this)["webpackChunkVueSoftProUI"] || []).push([[62],{
/***/ 2062:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
;
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ vs_form_datatable_input; }
});
;// CONCATENATED MODULE: ./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/datatable/vs-form-datatable-input.vue?vue&type=template&id=7a815aec&scoped=true&lang=true
var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"table-wrapper flex gap-2"},[_c('input',{ref:"filePicker",staticClass:"hidden",attrs:{"accept":".geojson","type":"file"},on:{"change":_vm.importTable}}),_c('VsButton',{attrs:{"size":"mini"},on:{"click":function($event){return _vm.$refs.filePicker.click()}}},[_c('i',{staticClass:"ti ti-download"})]),_c('VsPopover',{attrs:{"width":"250"}},[_c('div',[_c('h3',{staticClass:"mb-2"},[_vm._v(" "+_vm._s("Оберіть спосіб завантаження")+" ")]),_c('VsButton',{attrs:{"size":"mini","type":"primary"},on:{"click":function($event){_vm.importVisible = false;
_vm.exportTable(_vm.value, 'test');}}},[_vm._v(" "+_vm._s("Як JSON")+" ")]),_c('VsButton',{attrs:{"size":"mini"},on:{"click":function($event){_vm.importVisible = false;
_vm.saveYaml(_vm.value, 'gis-editor');}}},[_vm._v(" "+_vm._s("Як YAML")+" ")])],1),_c('VsButton',{attrs:{"slot":"reference","size":"mini"},slot:"reference"},[_c('i',{staticClass:"ti ti-upload"})])],1)],1)
}
var staticRenderFns = []
;// CONCATENATED MODULE: ./src/components/form/datatable/tableMixins.js
/* harmony default export */ var tableMixins = ({
data() {
return {
files: [],
fileResult: [],
importType: null,
exportVisible: false,
importVisible: false,
};
},
async mounted() {
await window.head.promise(['https://cdnjs.cloudflare.com/ajax/libs/yamljs/0.3.0/yaml.min.js']);
},
watch: {
importType() {
if (this.importType === 'replace') {
this.value = this.fileResult;
} else if (this.importType === 'append') {
this.value = this.value.concat(...this.fileResult);
}
this.$emit('update:value', this.value);
this.importType = null;
},
},
methods: {
async importTable($event) {
this.files = $event.target.files;
const fileReader = new FileReader();
fileReader.readAsText($event.target.files[0]);
fileReader.onload = () => {
this.fileResult = JSON.parse(fileReader.result);
this.exportVisible = true;
};
fileReader.onerror = () => {
this.$message.error('Ой, щось пішло не так, файл не додано');
};
$event.target.value = '';
},
exportTable(body, name) {
if (body.length) {
const fileName = `${name}-${Date.now()}.geojson`;
this.anchorDownload(JSON.stringify(body), fileName);
} else {
this.$message.error('Таблиця пуста!');
}
},
anchorDownload(fileData, fileName) {
const a = document.createElement('a');
document.body.appendChild(a);
const file = new File([fileData], fileName);
const url = window.URL.createObjectURL(file);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
a.remove();
},
saveYaml(body, fileName) {
if (body.length) {
this.anchorDownload(window.YAML.stringify(body), `${fileName}.yml`);
} else {
this.$message.error('Таблиця пуста!');
}
},
},
});
;// CONCATENATED MODULE: ./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/datatable/vs-form-datatable-input.vue?vue&type=script&lang=js
/* harmony default export */ var vs_form_datatable_inputvue_type_script_lang_js = ({
components: {
VsButton: () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4907)),
VsPopover: () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 2622)),
},
mixins: [tableMixins],
props: {
value: {
type: Object,
default() {
return {};
},
},
input: {
type: Object,
default() {
return {};
},
},
},
});
;// CONCATENATED MODULE: ./src/components/form/datatable/vs-form-datatable-input.vue?vue&type=script&lang=js
/* harmony default export */ var datatable_vs_form_datatable_inputvue_type_script_lang_js = (vs_form_datatable_inputvue_type_script_lang_js);
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-62.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-62.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-62.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-62.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-62.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/datatable/vs-form-datatable-input.vue?vue&type=style&index=0&id=7a815aec&prod&lang=scss&scoped=true
var vs_form_datatable_inputvue_type_style_index_0_id_7a815aec_prod_lang_scss_scoped_true = __webpack_require__(2208);
;// CONCATENATED MODULE: ./src/components/form/datatable/vs-form-datatable-input.vue?vue&type=style&index=0&id=7a815aec&prod&lang=scss&scoped=true
// EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1001);
;// CONCATENATED MODULE: ./src/components/form/datatable/vs-form-datatable-input.vue
;
/* normalize component */
var component = (0,componentNormalizer/* default */.Z)(
datatable_vs_form_datatable_inputvue_type_script_lang_js,
render,
staticRenderFns,
false,
null,
"7a815aec",
null
)
/* harmony default export */ var vs_form_datatable_input = (component.exports);
/***/ }),
/***/ 1341:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8081);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".table-wrapper[data-v-7a815aec]{justify-content:flex-end}.el-upload__input[data-v-7a815aec]{display:none!important}.import-button[data-v-7a815aec]{margin-right:5px}.import-button.ghost[data-v-7a815aec]{margin-right:-30px;pointer-events:none;opacity:0}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ 2208:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(1341);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(4402)/* ["default"] */ .Z)
var update = add("ac7d2ae8", content, true, {"sourceMap":false,"shadowMode":false});
/***/ })
}]);
//# sourceMappingURL=softpro-ui-kit.umd.62.js.map