Files
2021-04-12 07:01:53 -04:00

464 lines
16 KiB
JavaScript

(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{
/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/src/components/form/List.vue?vue&type=script&lang=js&":
/*!************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/src/components/form/List.vue?vue&type=script&lang=js& ***!
\************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
name: "List",
props: {
service: {
required: true,
type: Object
},
title: {
required: false,
type: String,
"default": "Список"
},
canCreate: {
required: false,
type: Boolean,
"default": true
},
canUpdate: {
required: false,
type: Boolean,
"default": true
},
canDelete: {
required: false,
type: Boolean,
"default": true
},
fields: {
required: true,
type: Array
}
},
data: function data() {
return {
loading: false,
items: [],
itemSelected: {},
itemUpdating: {},
isShowDetail: false,
createMode: false
};
},
created: function created() {
this.init();
},
methods: {
init: function init() {
this.fetchList();
},
fetchList: function fetchList() {
var _this = this;
return _asyncToGenerator( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() {
var response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_this.loading = true;
_context.next = 3;
return _this.service.all();
case 3:
response = _context.sent;
_this.items = response.data;
_this.loading = false;
case 6:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
},
showDetail: function showDetail(item) {
this.$emit("show", item);
this.createMode = false;
this.itemSelected = item;
this.itemUpdating = _.clone(item);
this.isShowDetail = true;
},
onClickSave: function onClickSave() {
var _this2 = this;
this.service.update(this.itemUpdating, this.itemSelected.id).then(function (response) {
_this2.isShowDetail = false;
_this2.$toast.success("Сохранено");
_this2.fetchList();
})["catch"](function (error) {
_this2.toastHttpError(error);
});
},
showCreate: function showCreate() {
this.createMode = true;
this.itemUpdating = {};
this.isShowDetail = true;
},
onClickCreate: function onClickCreate() {
var _this3 = this;
this.service.create(this.itemUpdating).then(function (response) {
_this3.isShowDetail = false;
_this3.$toast.success("Đã tạo");
_this3.fetchList();
})["catch"](function (error) {
_this3.toastHttpError(error);
});
},
onClickDelete: function onClickDelete() {
var _this4 = this;
this.service["delete"](this.itemSelected.id).then(function (response) {
_this4.isShowDetail = false;
_this4.$toast.success("Удалено");
_this4.fetchList();
})["catch"](function (error) {
_this4.toastHttpError(error);
});
}
}
});
/***/ }),
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e&":
/*!****************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e& ***!
\****************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
[
_c(
"CCard",
[
_c(
"CCardHeader",
[
_c("CIcon", { attrs: { name: "cil-grid" } }),
_vm._v("\n " + _vm._s(_vm.title) + "\n "),
_vm.canCreate
? _c(
"CButton",
{
directives: [
{
name: "c-tooltip",
rawName: "v-c-tooltip",
value: "Создать новый",
expression: "'Создать'"
}
],
staticClass: "float-right",
attrs: {
size: "sm",
color: "primary",
variant: "outline"
},
on: { click: _vm.showCreate }
},
[_c("CIcon", { attrs: { name: "cil-plus" } })],
1
)
: _vm._e()
],
1
),
_vm._v(" "),
_c(
"CCardBody",
{ staticClass: "p-0" },
[
_c("CDataTable", {
attrs: {
hover: "",
loading: _vm.loading,
items: _vm.items,
fields: _vm.fields,
"clickable-rows": "",
sorter: "",
"column-filter": ""
},
on: { "row-clicked": _vm.showDetail }
})
],
1
)
],
1
),
_vm._v(" "),
_c(
"CModal",
{
attrs: { title: _vm.title, show: _vm.isShowDetail },
on: {
"update:show": function($event) {
_vm.isShowDetail = $event
}
},
scopedSlots: _vm._u([
{
key: "footer",
fn: function() {
return [
_vm.canCreate && _vm.createMode
? _c(
"CButton",
{
staticClass: "float-right",
attrs: { size: "sm", color: "success" },
on: { click: _vm.onClickCreate }
},
[
_c("CIcon", { attrs: { name: "cil-plus" } }),
_vm._v(" Создать новый\n ")
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.canUpdate && !_vm.createMode
? _c(
"CButton",
{
staticClass: "float-right",
attrs: { size: "sm", color: "success" },
on: { click: _vm.onClickSave }
},
[
_c("CIcon", { attrs: { name: "cil-check" } }),
_vm._v(" Сохранить\n ")
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.canDelete && !_vm.createMode
? _c(
"CButton",
{
staticClass: "float-right",
attrs: { size: "sm", color: "danger" },
on: { click: _vm.onClickDelete }
},
[
_c("CIcon", { attrs: { name: "cil-x" } }),
_vm._v(" Удалить\n ")
],
1
)
: _vm._e()
]
},
proxy: true
}
])
},
[
_vm._l(_vm.fields, function(field) {
return _c("CInput", {
key: field.key,
attrs: { label: field.label, value: _vm.itemUpdating[field.key] },
on: {
"update:value": function($event) {
return _vm.$set(_vm.itemUpdating, field.key, $event)
}
}
})
}),
_vm._v(" "),
!_vm.createMode ? _vm._t("append-body") : _vm._e()
],
2
)
],
1
)
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "./resources/js/src/components/form/List.vue":
/*!***************************************************!*\
!*** ./resources/js/src/components/form/List.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./List.vue?vue&type=template&id=7f72a88e& */ "./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e&");
/* harmony import */ var _List_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./List.vue?vue&type=script&lang=js& */ "./resources/js/src/components/form/List.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_List_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__["render"],
_List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "resources/js/src/components/form/List.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./resources/js/src/components/form/List.vue?vue&type=script&lang=js&":
/*!****************************************************************************!*\
!*** ./resources/js/src/components/form/List.vue?vue&type=script&lang=js& ***!
\****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_List_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./List.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/src/components/form/List.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_List_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e&":
/*!**********************************************************************************!*\
!*** ./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e& ***!
\**********************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./List.vue?vue&type=template&id=7f72a88e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/src/components/form/List.vue?vue&type=template&id=7f72a88e&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_List_vue_vue_type_template_id_7f72a88e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ })
}]);