Przeglądaj źródła

fix: type member

rodzic
commit
22ca6cfe17

+ 2
- 0
app/Http/Controllers/TypeMemberController.php Wyświetl plik

@@ -20,6 +20,7 @@ class TypeMemberController extends Controller
20 20
                 'id' => $typeMember->id,
21 21
                 'updatedAt' => $typeMember->updated_at,
22 22
                 'type' => $typeMember->type,
23
+                'description' => $typeMember->description,
23 24
                 'price' => $typeMember->price,
24 25
             ]),
25 26
         ]);
@@ -71,6 +72,7 @@ class TypeMemberController extends Controller
71 72
             'typeMember' => [
72 73
                 'id' => $typeMember->id,
73 74
                 'type' => $typeMember->type,
75
+                'description' => $typeMember->description,
74 76
                 'price' => $typeMember->getRawOriginal('price'),
75 77
             ],
76 78
         ]);

+ 1
- 0
app/Http/Requests/TypeMember/StoreTypeMemberRequest.php Wyświetl plik

@@ -25,6 +25,7 @@ class StoreTypeMemberRequest extends FormRequest
25 25
     {
26 26
         return [
27 27
             'type' => 'required|string',
28
+            'description' => 'required|string',
28 29
             'price' => 'required|numeric',
29 30
         ];
30 31
     }

+ 1
- 0
app/Http/Requests/TypeMember/UpdateTypeMemberRequest.php Wyświetl plik

@@ -25,6 +25,7 @@ class UpdateTypeMemberRequest extends FormRequest
25 25
     {
26 26
         return [
27 27
             'type' => 'required|string',
28
+            'description' => 'required|string',
28 29
             'price' => 'required|numeric',
29 30
         ];
30 31
     }

+ 1
- 0
app/Models/TypeMember.php Wyświetl plik

@@ -14,6 +14,7 @@ class TypeMember extends Model
14 14
 
15 15
     protected $fillable = [
16 16
         'type',
17
+        'description',
17 18
         'price',
18 19
     ];
19 20
 

+ 1
- 0
database/migrations/2022_04_20_031727_create_type_members_table.php Wyświetl plik

@@ -16,6 +16,7 @@ return new class extends Migration
16 16
         Schema::create('type_members', function (Blueprint $table) {
17 17
             $table->id();
18 18
             $table->string('type');
19
+            $table->text('description');
19 20
             $table->unsignedInteger('price');
20 21
             $table->timestamps();
21 22
         });

+ 1
- 0
designs/diagrams/database.puml Wyświetl plik

@@ -70,6 +70,7 @@ entity TypeMember {
70 70
   * id
71 71
   __
72 72
   * type
73
+  * description
73 74
   * price
74 75
 }
75 76
 

BIN
designs/diagrams/database/Database.png Wyświetl plik


+ 202
- 2
public/js/resources_js_pages_typemember_Create_vue.js Wyświetl plik

@@ -383,6 +383,77 @@ __webpack_require__.r(__webpack_exports__);
383 383
 
384 384
 /***/ }),
385 385
 
386
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js":
387
+/*!****************************************************************************************************************************************************************************************************************!*\
388
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js ***!
389
+  \****************************************************************************************************************************************************************************************************************/
390
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
391
+
392
+__webpack_require__.r(__webpack_exports__);
393
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
394
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
395
+/* harmony export */ });
396
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
397
+
398
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
399
+  props: {
400
+    label: {
401
+      type: String,
402
+      required: true
403
+    },
404
+    disabled: {
405
+      type: Boolean,
406
+      "default": false
407
+    },
408
+    placeholder: {
409
+      type: String,
410
+      required: true
411
+    },
412
+    error: {
413
+      type: String,
414
+      "default": null
415
+    },
416
+    rows: {
417
+      type: Number,
418
+      "default": 5
419
+    },
420
+    cols: {
421
+      type: Number,
422
+      "default": 30
423
+    },
424
+    modelValue: null
425
+  },
426
+  emits: ['update:modelValue'],
427
+  setup: function setup(__props, _ref) {
428
+    var expose = _ref.expose;
429
+    expose();
430
+    var props = __props;
431
+    var isError = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
432
+      return props.error ? true : false;
433
+    });
434
+    var forLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
435
+      return props.label.toLowerCase().replace(/\s+/g, '-');
436
+    });
437
+    var ariaDescribedbyLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
438
+      return props.label.toLowerCase().replace(/\s+/g, '-') + '-help';
439
+    });
440
+    var __returned__ = {
441
+      props: props,
442
+      isError: isError,
443
+      forLabel: forLabel,
444
+      ariaDescribedbyLabel: ariaDescribedbyLabel,
445
+      computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed
446
+    };
447
+    Object.defineProperty(__returned__, '__isScriptSetup', {
448
+      enumerable: false,
449
+      value: true
450
+    });
451
+    return __returned__;
452
+  }
453
+});
454
+
455
+/***/ }),
456
+
386 457
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js":
387 458
 /*!**************************************************************************************************************************************************************************************************************!*\
388 459
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js ***!
@@ -545,6 +616,8 @@ __webpack_require__.r(__webpack_exports__);
545 616
 /* harmony import */ var _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/layouts/AppLayout.vue */ "./resources/js/layouts/AppLayout.vue");
546 617
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
547 618
 /* harmony import */ var _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppInputNumber.vue */ "./resources/js/components/AppInputNumber.vue");
619
+/* harmony import */ var _components_AppTextArea_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AppTextArea.vue */ "./resources/js/components/AppTextArea.vue");
620
+
548 621
 
549 622
 
550 623
 
@@ -562,6 +635,7 @@ __webpack_require__.r(__webpack_exports__);
562 635
     });
563 636
     var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_1__.useForm)({
564 637
       type: null,
638
+      description: null,
565 639
       price: null
566 640
     });
567 641
 
@@ -584,7 +658,8 @@ __webpack_require__.r(__webpack_exports__);
584 658
       usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_1__.usePage,
585 659
       AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_2__["default"],
586 660
       AppInputText: _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_3__["default"],
587
-      AppInputNumber: _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__["default"]
661
+      AppInputNumber: _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__["default"],
662
+      AppTextArea: _components_AppTextArea_vue__WEBPACK_IMPORTED_MODULE_5__["default"]
588 663
     };
589 664
     Object.defineProperty(__returned__, '__isScriptSetup', {
590 665
       enumerable: false,
@@ -1022,6 +1097,61 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1022 1097
 
1023 1098
 /***/ }),
1024 1099
 
1100
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400":
1101
+/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
1102
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400 ***!
1103
+  \*********************************************************************************************************************************************************************************************************************************************************************************/
1104
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1105
+
1106
+__webpack_require__.r(__webpack_exports__);
1107
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1108
+/* harmony export */   "render": () => (/* binding */ render)
1109
+/* harmony export */ });
1110
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1111
+
1112
+var _hoisted_1 = {
1113
+  "class": "field"
1114
+};
1115
+var _hoisted_2 = ["for"];
1116
+var _hoisted_3 = ["id"];
1117
+function render(_ctx, _cache, $props, $setup, $data, $options) {
1118
+  var _component_Textarea = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Textarea");
1119
+
1120
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
1121
+    "for": $setup.forLabel
1122
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.label), 9
1123
+  /* TEXT, PROPS */
1124
+  , _hoisted_2), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Textarea, {
1125
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["w-full", {
1126
+      'p-invalid': $setup.isError
1127
+    }]),
1128
+    id: $setup.forLabel,
1129
+    "aria-describedby": $setup.ariaDescribedbyLabel,
1130
+    "model-value": $props.modelValue,
1131
+    value: $props.modelValue,
1132
+    placeholder: $props.placeholder,
1133
+    disabled: $props.disabled,
1134
+    "auto-resize": true,
1135
+    rows: $props.rows,
1136
+    cols: $props.cols,
1137
+    onInput: _cache[0] || (_cache[0] = function ($event) {
1138
+      return _ctx.$emit('update:modelValue', $event.target.value);
1139
+    })
1140
+  }, null, 8
1141
+  /* PROPS */
1142
+  , ["class", "id", "aria-describedby", "model-value", "value", "placeholder", "disabled", "rows", "cols"]), $props.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("small", {
1143
+    key: 0,
1144
+    id: $setup.ariaDescribedbyLabel,
1145
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({
1146
+      'p-error': $setup.isError
1147
+    })
1148
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.error), 11
1149
+  /* TEXT, CLASS, PROPS */
1150
+  , _hoisted_3)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]);
1151
+}
1152
+
1153
+/***/ }),
1154
+
1025 1155
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4":
1026 1156
 /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
1027 1157
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4 ***!
@@ -1239,6 +1369,9 @@ var _hoisted_6 = {
1239 1369
   "class": "col-12 md:col-6"
1240 1370
 };
1241 1371
 var _hoisted_7 = {
1372
+  "class": "col-12 sm:col-6"
1373
+};
1374
+var _hoisted_8 = {
1242 1375
   "class": "flex flex-column md:flex-row justify-content-end"
1243 1376
 };
1244 1377
 function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1275,10 +1408,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1275 1408
             error: $setup.form.errors.price
1276 1409
           }, null, 8
1277 1410
           /* PROPS */
1411
+          , ["modelValue", "error"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppTextArea"], {
1412
+            modelValue: $setup.form.description,
1413
+            "onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
1414
+              return $setup.form.description = $event;
1415
+            }),
1416
+            label: "Keterangan",
1417
+            placeholder: "tulis keterangan disini",
1418
+            error: $setup.form.errors.description
1419
+          }, null, 8
1420
+          /* PROPS */
1278 1421
           , ["modelValue", "error"])])])];
1279 1422
         }),
1280 1423
         footer: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1281
-          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1424
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1282 1425
             label: "Simpan",
1283 1426
             icon: "pi pi-check",
1284 1427
             "class": "p-button-outlined",
@@ -1574,6 +1717,33 @@ const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_parkirin_node_mod
1574 1717
 if (false) {}
1575 1718
 
1576 1719
 
1720
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1721
+
1722
+/***/ }),
1723
+
1724
+/***/ "./resources/js/components/AppTextArea.vue":
1725
+/*!*************************************************!*\
1726
+  !*** ./resources/js/components/AppTextArea.vue ***!
1727
+  \*************************************************/
1728
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1729
+
1730
+__webpack_require__.r(__webpack_exports__);
1731
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1732
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1733
+/* harmony export */ });
1734
+/* harmony import */ var _AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppTextArea.vue?vue&type=template&id=90cee400 */ "./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400");
1735
+/* harmony import */ var _AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppTextArea.vue?vue&type=script&setup=true&lang=js */ "./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js");
1736
+/* harmony import */ var _home_dijitalcode_Projects_parkirin_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
1737
+
1738
+
1739
+
1740
+
1741
+;
1742
+const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_parkirin_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppTextArea.vue"]])
1743
+/* hot reload */
1744
+if (false) {}
1745
+
1746
+
1577 1747
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1578 1748
 
1579 1749
 /***/ }),
@@ -1732,6 +1902,21 @@ __webpack_require__.r(__webpack_exports__);
1732 1902
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppSubSidebar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppSubSidebar.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSubSidebar.vue?vue&type=script&setup=true&lang=js");
1733 1903
  
1734 1904
 
1905
+/***/ }),
1906
+
1907
+/***/ "./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js":
1908
+/*!************************************************************************************!*\
1909
+  !*** ./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js ***!
1910
+  \************************************************************************************/
1911
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1912
+
1913
+__webpack_require__.r(__webpack_exports__);
1914
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1915
+/* harmony export */   "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
1916
+/* harmony export */ });
1917
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppTextArea.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js");
1918
+ 
1919
+
1735 1920
 /***/ }),
1736 1921
 
1737 1922
 /***/ "./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js":
@@ -1867,6 +2052,21 @@ __webpack_require__.r(__webpack_exports__);
1867 2052
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppSubSidebar_vue_vue_type_template_id_0addd9bc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppSubSidebar.vue?vue&type=template&id=0addd9bc */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSubSidebar.vue?vue&type=template&id=0addd9bc");
1868 2053
 
1869 2054
 
2055
+/***/ }),
2056
+
2057
+/***/ "./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400":
2058
+/*!*******************************************************************************!*\
2059
+  !*** ./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400 ***!
2060
+  \*******************************************************************************/
2061
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2062
+
2063
+__webpack_require__.r(__webpack_exports__);
2064
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2065
+/* harmony export */   "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__.render)
2066
+/* harmony export */ });
2067
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppTextArea.vue?vue&type=template&id=90cee400 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400");
2068
+
2069
+
1870 2070
 /***/ }),
1871 2071
 
1872 2072
 /***/ "./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4":

+ 202
- 2
public/js/resources_js_pages_typemember_Edit_vue.js Wyświetl plik

@@ -383,6 +383,77 @@ __webpack_require__.r(__webpack_exports__);
383 383
 
384 384
 /***/ }),
385 385
 
386
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js":
387
+/*!****************************************************************************************************************************************************************************************************************!*\
388
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js ***!
389
+  \****************************************************************************************************************************************************************************************************************/
390
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
391
+
392
+__webpack_require__.r(__webpack_exports__);
393
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
394
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
395
+/* harmony export */ });
396
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
397
+
398
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
399
+  props: {
400
+    label: {
401
+      type: String,
402
+      required: true
403
+    },
404
+    disabled: {
405
+      type: Boolean,
406
+      "default": false
407
+    },
408
+    placeholder: {
409
+      type: String,
410
+      required: true
411
+    },
412
+    error: {
413
+      type: String,
414
+      "default": null
415
+    },
416
+    rows: {
417
+      type: Number,
418
+      "default": 5
419
+    },
420
+    cols: {
421
+      type: Number,
422
+      "default": 30
423
+    },
424
+    modelValue: null
425
+  },
426
+  emits: ['update:modelValue'],
427
+  setup: function setup(__props, _ref) {
428
+    var expose = _ref.expose;
429
+    expose();
430
+    var props = __props;
431
+    var isError = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
432
+      return props.error ? true : false;
433
+    });
434
+    var forLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
435
+      return props.label.toLowerCase().replace(/\s+/g, '-');
436
+    });
437
+    var ariaDescribedbyLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
438
+      return props.label.toLowerCase().replace(/\s+/g, '-') + '-help';
439
+    });
440
+    var __returned__ = {
441
+      props: props,
442
+      isError: isError,
443
+      forLabel: forLabel,
444
+      ariaDescribedbyLabel: ariaDescribedbyLabel,
445
+      computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed
446
+    };
447
+    Object.defineProperty(__returned__, '__isScriptSetup', {
448
+      enumerable: false,
449
+      value: true
450
+    });
451
+    return __returned__;
452
+  }
453
+});
454
+
455
+/***/ }),
456
+
386 457
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js":
387 458
 /*!**************************************************************************************************************************************************************************************************************!*\
388 459
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js ***!
@@ -545,6 +616,8 @@ __webpack_require__.r(__webpack_exports__);
545 616
 /* harmony import */ var _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/layouts/AppLayout.vue */ "./resources/js/layouts/AppLayout.vue");
546 617
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
547 618
 /* harmony import */ var _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppInputNumber.vue */ "./resources/js/components/AppInputNumber.vue");
619
+/* harmony import */ var _components_AppTextArea_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AppTextArea.vue */ "./resources/js/components/AppTextArea.vue");
620
+
548 621
 
549 622
 
550 623
 
@@ -566,6 +639,7 @@ __webpack_require__.r(__webpack_exports__);
566 639
     });
567 640
     var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_1__.useForm)({
568 641
       type: props.typeMember.type,
642
+      description: props.typeMember.description,
569 643
       price: props.typeMember.price
570 644
     });
571 645
 
@@ -585,7 +659,8 @@ __webpack_require__.r(__webpack_exports__);
585 659
       usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_1__.usePage,
586 660
       AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_2__["default"],
587 661
       AppInputText: _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_3__["default"],
588
-      AppInputNumber: _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__["default"]
662
+      AppInputNumber: _components_AppInputNumber_vue__WEBPACK_IMPORTED_MODULE_4__["default"],
663
+      AppTextArea: _components_AppTextArea_vue__WEBPACK_IMPORTED_MODULE_5__["default"]
589 664
     };
590 665
     Object.defineProperty(__returned__, '__isScriptSetup', {
591 666
       enumerable: false,
@@ -1023,6 +1098,61 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1023 1098
 
1024 1099
 /***/ }),
1025 1100
 
1101
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400":
1102
+/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
1103
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400 ***!
1104
+  \*********************************************************************************************************************************************************************************************************************************************************************************/
1105
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1106
+
1107
+__webpack_require__.r(__webpack_exports__);
1108
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1109
+/* harmony export */   "render": () => (/* binding */ render)
1110
+/* harmony export */ });
1111
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1112
+
1113
+var _hoisted_1 = {
1114
+  "class": "field"
1115
+};
1116
+var _hoisted_2 = ["for"];
1117
+var _hoisted_3 = ["id"];
1118
+function render(_ctx, _cache, $props, $setup, $data, $options) {
1119
+  var _component_Textarea = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Textarea");
1120
+
1121
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
1122
+    "for": $setup.forLabel
1123
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.label), 9
1124
+  /* TEXT, PROPS */
1125
+  , _hoisted_2), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Textarea, {
1126
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["w-full", {
1127
+      'p-invalid': $setup.isError
1128
+    }]),
1129
+    id: $setup.forLabel,
1130
+    "aria-describedby": $setup.ariaDescribedbyLabel,
1131
+    "model-value": $props.modelValue,
1132
+    value: $props.modelValue,
1133
+    placeholder: $props.placeholder,
1134
+    disabled: $props.disabled,
1135
+    "auto-resize": true,
1136
+    rows: $props.rows,
1137
+    cols: $props.cols,
1138
+    onInput: _cache[0] || (_cache[0] = function ($event) {
1139
+      return _ctx.$emit('update:modelValue', $event.target.value);
1140
+    })
1141
+  }, null, 8
1142
+  /* PROPS */
1143
+  , ["class", "id", "aria-describedby", "model-value", "value", "placeholder", "disabled", "rows", "cols"]), $props.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("small", {
1144
+    key: 0,
1145
+    id: $setup.ariaDescribedbyLabel,
1146
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({
1147
+      'p-error': $setup.isError
1148
+    })
1149
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.error), 11
1150
+  /* TEXT, CLASS, PROPS */
1151
+  , _hoisted_3)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]);
1152
+}
1153
+
1154
+/***/ }),
1155
+
1026 1156
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4":
1027 1157
 /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
1028 1158
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4 ***!
@@ -1240,6 +1370,9 @@ var _hoisted_6 = {
1240 1370
   "class": "col-12 md:col-6"
1241 1371
 };
1242 1372
 var _hoisted_7 = {
1373
+  "class": "col-12 sm:col-6"
1374
+};
1375
+var _hoisted_8 = {
1243 1376
   "class": "flex flex-column md:flex-row justify-content-end"
1244 1377
 };
1245 1378
 function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1276,10 +1409,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1276 1409
             error: $setup.form.errors.price
1277 1410
           }, null, 8
1278 1411
           /* PROPS */
1412
+          , ["modelValue", "error"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppTextArea"], {
1413
+            label: "Keterangan",
1414
+            modelValue: $setup.form.description,
1415
+            "onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
1416
+              return $setup.form.description = $event;
1417
+            }),
1418
+            placeholder: "tulis keterangan disini",
1419
+            error: $setup.form.errors.description
1420
+          }, null, 8
1421
+          /* PROPS */
1279 1422
           , ["modelValue", "error"])])])];
1280 1423
         }),
1281 1424
         footer: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1282
-          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1425
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1283 1426
             label: "Simpan",
1284 1427
             icon: "pi pi-check",
1285 1428
             "class": "p-button-outlined",
@@ -1575,6 +1718,33 @@ const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_parkirin_node_mod
1575 1718
 if (false) {}
1576 1719
 
1577 1720
 
1721
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1722
+
1723
+/***/ }),
1724
+
1725
+/***/ "./resources/js/components/AppTextArea.vue":
1726
+/*!*************************************************!*\
1727
+  !*** ./resources/js/components/AppTextArea.vue ***!
1728
+  \*************************************************/
1729
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1730
+
1731
+__webpack_require__.r(__webpack_exports__);
1732
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1733
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1734
+/* harmony export */ });
1735
+/* harmony import */ var _AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppTextArea.vue?vue&type=template&id=90cee400 */ "./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400");
1736
+/* harmony import */ var _AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppTextArea.vue?vue&type=script&setup=true&lang=js */ "./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js");
1737
+/* harmony import */ var _home_dijitalcode_Projects_parkirin_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
1738
+
1739
+
1740
+
1741
+
1742
+;
1743
+const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_parkirin_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppTextArea.vue"]])
1744
+/* hot reload */
1745
+if (false) {}
1746
+
1747
+
1578 1748
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1579 1749
 
1580 1750
 /***/ }),
@@ -1733,6 +1903,21 @@ __webpack_require__.r(__webpack_exports__);
1733 1903
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppSubSidebar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppSubSidebar.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSubSidebar.vue?vue&type=script&setup=true&lang=js");
1734 1904
  
1735 1905
 
1906
+/***/ }),
1907
+
1908
+/***/ "./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js":
1909
+/*!************************************************************************************!*\
1910
+  !*** ./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js ***!
1911
+  \************************************************************************************/
1912
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1913
+
1914
+__webpack_require__.r(__webpack_exports__);
1915
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1916
+/* harmony export */   "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
1917
+/* harmony export */ });
1918
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppTextArea.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=script&setup=true&lang=js");
1919
+ 
1920
+
1736 1921
 /***/ }),
1737 1922
 
1738 1923
 /***/ "./resources/js/components/AppTopBar.vue?vue&type=script&setup=true&lang=js":
@@ -1868,6 +2053,21 @@ __webpack_require__.r(__webpack_exports__);
1868 2053
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppSubSidebar_vue_vue_type_template_id_0addd9bc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppSubSidebar.vue?vue&type=template&id=0addd9bc */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSubSidebar.vue?vue&type=template&id=0addd9bc");
1869 2054
 
1870 2055
 
2056
+/***/ }),
2057
+
2058
+/***/ "./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400":
2059
+/*!*******************************************************************************!*\
2060
+  !*** ./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400 ***!
2061
+  \*******************************************************************************/
2062
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2063
+
2064
+__webpack_require__.r(__webpack_exports__);
2065
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2066
+/* harmony export */   "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__.render)
2067
+/* harmony export */ });
2068
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppTextArea_vue_vue_type_template_id_90cee400__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppTextArea.vue?vue&type=template&id=90cee400 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppTextArea.vue?vue&type=template&id=90cee400");
2069
+
2070
+
1871 2071
 /***/ }),
1872 2072
 
1873 2073
 /***/ "./resources/js/components/AppTopBar.vue?vue&type=template&id=42bf62a4":

+ 3
- 0
public/js/resources_js_pages_typemember_Index_vue.js Wyświetl plik

@@ -1078,6 +1078,9 @@ __webpack_require__.r(__webpack_exports__);
1078 1078
 }, {
1079 1079
   field: 'type',
1080 1080
   header: 'Jenis Member'
1081
+}, {
1082
+  field: 'description',
1083
+  header: 'Keterangan'
1081 1084
 }, {
1082 1085
   field: 'price',
1083 1086
   header: 'Tarif Member'

+ 1463
- 0
public/js/resources_js_pages_typemember_Show_vue.js
Plik diff jest za duży
Wyświetl plik


+ 3
- 0
public/js/resources_js_pages_typemember_TableHeader_js.js Wyświetl plik

@@ -17,6 +17,9 @@ __webpack_require__.r(__webpack_exports__);
17 17
 }, {
18 18
   field: 'type',
19 19
   header: 'Jenis Member'
20
+}, {
21
+  field: 'description',
22
+  header: 'Keterangan'
20 23
 }, {
21 24
   field: 'price',
22 25
   header: 'Tarif Member'

+ 1
- 1
public/js/vue.js Wyświetl plik

@@ -57920,7 +57920,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
57920 57920
 /******/ 		// This function allow to reference async chunks
57921 57921
 /******/ 		__webpack_require__.u = (chunkId) => {
57922 57922
 /******/ 			// return url for filenames based on template
57923
-/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"a7b9a99e5a331088","resources_js_pages_expense_Create_vue":"4a7b931b4964795f","resources_js_pages_expense_Index_vue":"35c7886edd28eb55","resources_js_pages_expense_Show_vue":"a51849c1de3c7bbe","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"4e7a9fc8eae40eb0","resources_js_pages_member_Create_vue":"340f646d9409d1c8","resources_js_pages_member_Edit_vue":"2a3f798ea1832dda","resources_js_pages_member_Index_vue":"5eb3fa0a2ef05c44","resources_js_pages_member_TableHeader_js":"5148a502565e8023","resources_js_pages_topup_Create_vue":"5fd3953be1769bcb","resources_js_pages_topup_Edit_vue":"258c3b0746574dc0","resources_js_pages_topup_Index_vue":"2869db3c172e005a","resources_js_pages_topup_Show_vue":"cb35ad21e9ce163f","resources_js_pages_topup_TableHeader_js":"c803a04362b71855","resources_js_pages_typemember_Create_vue":"80038a0a1aaa73e4","resources_js_pages_typemember_Edit_vue":"453084c1e0409302","resources_js_pages_typemember_Index_vue":"d2b9d657af215b8b","resources_js_pages_typemember_TableHeader_js":"8d2fb11e94b09b43","resources_js_pages_user_Create_vue":"17ea473e3abc2b3e","resources_js_pages_user_Edit_vue":"89968c34a0158d4b","resources_js_pages_user_Index_vue":"f32902a7e33cc070","resources_js_pages_user_Show_vue":"54f34c86208cd845","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
57923
+/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"a7b9a99e5a331088","resources_js_pages_expense_Create_vue":"4a7b931b4964795f","resources_js_pages_expense_Index_vue":"35c7886edd28eb55","resources_js_pages_expense_Show_vue":"a51849c1de3c7bbe","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"4e7a9fc8eae40eb0","resources_js_pages_member_Create_vue":"340f646d9409d1c8","resources_js_pages_member_Edit_vue":"2a3f798ea1832dda","resources_js_pages_member_Index_vue":"5eb3fa0a2ef05c44","resources_js_pages_member_TableHeader_js":"5148a502565e8023","resources_js_pages_topup_Create_vue":"5fd3953be1769bcb","resources_js_pages_topup_Edit_vue":"258c3b0746574dc0","resources_js_pages_topup_Index_vue":"2869db3c172e005a","resources_js_pages_topup_Show_vue":"cb35ad21e9ce163f","resources_js_pages_topup_TableHeader_js":"c803a04362b71855","resources_js_pages_typemember_Create_vue":"68805b34963c06c9","resources_js_pages_typemember_Edit_vue":"43c53b3539f1c021","resources_js_pages_typemember_Index_vue":"f24fe1639970cec3","resources_js_pages_typemember_TableHeader_js":"643072277f5ef362","resources_js_pages_user_Create_vue":"17ea473e3abc2b3e","resources_js_pages_user_Edit_vue":"89968c34a0158d4b","resources_js_pages_user_Index_vue":"f32902a7e33cc070","resources_js_pages_user_Show_vue":"54f34c86208cd845","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
57924 57924
 /******/ 		};
57925 57925
 /******/ 	})();
57926 57926
 /******/ 	

+ 64
- 0
resources/js/components/AppTextArea.vue Wyświetl plik

@@ -0,0 +1,64 @@
1
+<script setup>
2
+import { computed } from 'vue'
3
+
4
+const props = defineProps({
5
+  label: {
6
+    type: String,
7
+    required: true,
8
+  },
9
+  disabled: {
10
+    type: Boolean,
11
+    default: false,
12
+  },
13
+  placeholder: {
14
+    type: String,
15
+    required: true,
16
+  },
17
+  error: {
18
+    type: String,
19
+    default: null,
20
+  },
21
+  rows: {
22
+    type: Number,
23
+    default: 5,
24
+  },
25
+  cols: {
26
+    type: Number,
27
+    default: 30,
28
+  },
29
+  modelValue: null,
30
+})
31
+
32
+defineEmits(['update:modelValue'])
33
+
34
+const isError = computed(() => (props.error ? true : false))
35
+
36
+const forLabel = computed(() => props.label.toLowerCase().replace(/\s+/g, '-'))
37
+
38
+const ariaDescribedbyLabel = computed(() => props.label.toLowerCase().replace(/\s+/g, '-') + '-help')
39
+</script>
40
+
41
+<template>
42
+  <div class="field">
43
+    <label :for="forLabel">{{ label }}</label>
44
+
45
+    <Textarea
46
+      class="w-full"
47
+      :class="{ 'p-invalid': isError }"
48
+      :id="forLabel"
49
+      :aria-describedby="ariaDescribedbyLabel"
50
+      :model-value="modelValue"
51
+      :value="modelValue"
52
+      :placeholder="placeholder"
53
+      :disabled="disabled"
54
+      :auto-resize="true"
55
+      :rows="rows"
56
+      :cols="cols"
57
+      @input="$emit('update:modelValue', $event.target.value)"
58
+    />
59
+
60
+    <small v-if="error" :id="ariaDescribedbyLabel" :class="{ 'p-error': isError }">
61
+      {{ error }}
62
+    </small>
63
+  </div>
64
+</template>

+ 11
- 0
resources/js/pages/typemember/Create.vue Wyświetl plik

@@ -4,6 +4,7 @@ import { Head, useForm, usePage } from '@inertiajs/inertia-vue3'
4 4
 import AppLayout from '@/layouts/AppLayout.vue'
5 5
 import AppInputText from '@/components/AppInputText.vue'
6 6
 import AppInputNumber from '@/components/AppInputNumber.vue'
7
+import AppTextArea from '@/components/AppTextArea.vue'
7 8
 
8 9
 const errors = computed(() => usePage().props.value.errors)
9 10
 
@@ -13,6 +14,7 @@ watch(errors, () => {
13 14
 
14 15
 const form = useForm({
15 16
   type: null,
17
+  description: null,
16 18
   price: null,
17 19
 })
18 20
 
@@ -48,6 +50,15 @@ const submit = () => {
48 50
                   :error="form.errors.price"
49 51
                 />
50 52
               </div>
53
+
54
+              <div class="col-12 sm:col-6">
55
+                <AppTextArea
56
+                  v-model="form.description"
57
+                  label="Keterangan"
58
+                  placeholder="tulis keterangan disini"
59
+                  :error="form.errors.description"
60
+                />
61
+              </div>
51 62
             </div>
52 63
           </template>
53 64
 

+ 11
- 0
resources/js/pages/typemember/Edit.vue Wyświetl plik

@@ -4,6 +4,7 @@ import { Head, useForm, usePage } from '@inertiajs/inertia-vue3'
4 4
 import AppLayout from '@/layouts/AppLayout.vue'
5 5
 import AppInputText from '@/components/AppInputText.vue'
6 6
 import AppInputNumber from '@/components/AppInputNumber.vue'
7
+import AppTextArea from '@/components/AppTextArea.vue'
7 8
 
8 9
 const props = defineProps({
9 10
   typeMember: Object,
@@ -17,6 +18,7 @@ watch(errors, () => {
17 18
 
18 19
 const form = useForm({
19 20
   type: props.typeMember.type,
21
+  description: props.typeMember.description,
20 22
   price: props.typeMember.price,
21 23
 })
22 24
 
@@ -52,6 +54,15 @@ const submit = () => {
52 54
                   :error="form.errors.price"
53 55
                 />
54 56
               </div>
57
+
58
+              <div class="col-12 sm:col-6">
59
+                <AppTextArea
60
+                  label="Keterangan"
61
+                  v-model="form.description"
62
+                  placeholder="tulis keterangan disini"
63
+                  :error="form.errors.description"
64
+                />
65
+              </div>
55 66
             </div>
56 67
           </template>
57 68
 

+ 1
- 0
resources/js/pages/typemember/TableHeader.js Wyświetl plik

@@ -1,5 +1,6 @@
1 1
 export default [
2 2
   { field: 'updatedAt', header: 'Diperbaharui' },
3 3
   { field: 'type', header: 'Jenis Member' },
4
+  { field: 'description', header: 'Keterangan' },
4 5
   { field: 'price', header: 'Tarif Member' },
5 6
 ]