浏览代码

fix: ProductCreate dialog

父节点
当前提交
467fd2eb12

+ 24
- 14
public/js/resources_js_pages_Sales_Create_vue.js 查看文件

@@ -702,7 +702,6 @@ __webpack_require__.r(__webpack_exports__);
702 702
       onSubmit: onSubmit,
703 703
       useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.useForm,
704 704
       Head: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Head,
705
-      usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.usePage,
706 705
       useFormErrorReset: _components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_1__.useFormErrorReset,
707 706
       useProductAutoComplete: _useProductAutoComplete__WEBPACK_IMPORTED_MODULE_2__.useProductAutoComplete,
708 707
       useCustomerAutoComplete: _useCustomerAutoComplete__WEBPACK_IMPORTED_MODULE_3__.useCustomerAutoComplete,
@@ -793,6 +792,12 @@ __webpack_require__.r(__webpack_exports__);
793 792
 /* harmony import */ var _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-vue3 */ "./node_modules/@inertiajs/inertia-vue3/dist/index.js");
794 793
 /* harmony import */ var _components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/useFormErrorReset */ "./resources/js/components/useFormErrorReset.js");
795 794
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
795
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
796
+
797
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
798
+
799
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
800
+
796 801
 
797 802
 
798 803
 
@@ -803,36 +808,42 @@ __webpack_require__.r(__webpack_exports__);
803 808
   setup: function setup(__props, _ref) {
804 809
     var expose = _ref.expose;
805 810
     expose();
806
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
811
+
812
+    var getProductNumber = function getProductNumber() {
807 813
       _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia.reload({
808 814
         only: ['productNumber']
809 815
       });
810
-    });
811
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {
812
-      return (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber;
813
-    }, function (val) {
814
-      return form.number = val;
816
+    };
817
+
818
+    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
819
+      return getProductNumber();
815 820
     });
816 821
     var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm)({
817
-      number: null,
818 822
       name: null,
819 823
       unit: null
820 824
     });
821 825
     (0,_components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__.useFormErrorReset)(form);
822 826
 
823 827
     var onSubmit = function onSubmit() {
824
-      form.post(route('products.store'), {
828
+      form.transform(function (data) {
829
+        return _objectSpread({
830
+          number: (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber
831
+        }, data);
832
+      }).post(route('products.store'), {
825 833
         onSuccess: function onSuccess() {
826 834
           return form.reset();
835
+        },
836
+        onFinish: function onFinish() {
837
+          return getProductNumber();
827 838
         }
828 839
       });
829 840
     };
830 841
 
831 842
     var __returned__ = {
843
+      getProductNumber: getProductNumber,
832 844
       form: form,
833 845
       onSubmit: onSubmit,
834 846
       onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,
835
-      watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,
836 847
       Inertia: _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia,
837 848
       useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm,
838 849
       usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage,
@@ -2118,14 +2129,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2118 2129
     disabled: "",
2119 2130
     label: "Nomor Produk",
2120 2131
     placeholder: "nomor produk",
2121
-    error: $setup.form.errors.number,
2122
-    modelValue: $setup.form.number,
2132
+    modelValue: _ctx.$page.props.productNumber,
2123 2133
     "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
2124
-      return $setup.form.number = $event;
2134
+      return _ctx.$page.props.productNumber = $event;
2125 2135
     })
2126 2136
   }, null, 8
2127 2137
   /* PROPS */
2128
-  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
2138
+  , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
2129 2139
     label: "Nama",
2130 2140
     placeholder: "nama",
2131 2141
     error: $setup.form.errors.name,

+ 24
- 13
public/js/resources_js_pages_Sales_Dialog_ProductCreate_vue.js 查看文件

@@ -84,6 +84,12 @@ __webpack_require__.r(__webpack_exports__);
84 84
 /* harmony import */ var _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-vue3 */ "./node_modules/@inertiajs/inertia-vue3/dist/index.js");
85 85
 /* harmony import */ var _components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/useFormErrorReset */ "./resources/js/components/useFormErrorReset.js");
86 86
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
87
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
88
+
89
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
90
+
91
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
92
+
87 93
 
88 94
 
89 95
 
@@ -94,36 +100,42 @@ __webpack_require__.r(__webpack_exports__);
94 100
   setup: function setup(__props, _ref) {
95 101
     var expose = _ref.expose;
96 102
     expose();
97
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
103
+
104
+    var getProductNumber = function getProductNumber() {
98 105
       _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia.reload({
99 106
         only: ['productNumber']
100 107
       });
101
-    });
102
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {
103
-      return (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber;
104
-    }, function (val) {
105
-      return form.number = val;
108
+    };
109
+
110
+    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
111
+      return getProductNumber();
106 112
     });
107 113
     var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm)({
108
-      number: null,
109 114
       name: null,
110 115
       unit: null
111 116
     });
112 117
     (0,_components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__.useFormErrorReset)(form);
113 118
 
114 119
     var onSubmit = function onSubmit() {
115
-      form.post(route('products.store'), {
120
+      form.transform(function (data) {
121
+        return _objectSpread({
122
+          number: (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber
123
+        }, data);
124
+      }).post(route('products.store'), {
116 125
         onSuccess: function onSuccess() {
117 126
           return form.reset();
127
+        },
128
+        onFinish: function onFinish() {
129
+          return getProductNumber();
118 130
         }
119 131
       });
120 132
     };
121 133
 
122 134
     var __returned__ = {
135
+      getProductNumber: getProductNumber,
123 136
       form: form,
124 137
       onSubmit: onSubmit,
125 138
       onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,
126
-      watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,
127 139
       Inertia: _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia,
128 140
       useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm,
129 141
       usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage,
@@ -227,14 +239,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
227 239
     disabled: "",
228 240
     label: "Nomor Produk",
229 241
     placeholder: "nomor produk",
230
-    error: $setup.form.errors.number,
231
-    modelValue: $setup.form.number,
242
+    modelValue: _ctx.$page.props.productNumber,
232 243
     "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
233
-      return $setup.form.number = $event;
244
+      return _ctx.$page.props.productNumber = $event;
234 245
     })
235 246
   }, null, 8
236 247
   /* PROPS */
237
-  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
248
+  , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
238 249
     label: "Nama",
239 250
     placeholder: "nama",
240 251
     error: $setup.form.errors.name,

+ 24
- 13
public/js/resources_js_pages_Sales_useProductAutoComplete_js.js 查看文件

@@ -84,6 +84,12 @@ __webpack_require__.r(__webpack_exports__);
84 84
 /* harmony import */ var _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-vue3 */ "./node_modules/@inertiajs/inertia-vue3/dist/index.js");
85 85
 /* harmony import */ var _components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/useFormErrorReset */ "./resources/js/components/useFormErrorReset.js");
86 86
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
87
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
88
+
89
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
90
+
91
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
92
+
87 93
 
88 94
 
89 95
 
@@ -94,36 +100,42 @@ __webpack_require__.r(__webpack_exports__);
94 100
   setup: function setup(__props, _ref) {
95 101
     var expose = _ref.expose;
96 102
     expose();
97
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
103
+
104
+    var getProductNumber = function getProductNumber() {
98 105
       _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia.reload({
99 106
         only: ['productNumber']
100 107
       });
101
-    });
102
-    (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {
103
-      return (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber;
104
-    }, function (val) {
105
-      return form.number = val;
108
+    };
109
+
110
+    (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
111
+      return getProductNumber();
106 112
     });
107 113
     var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm)({
108
-      number: null,
109 114
       name: null,
110 115
       unit: null
111 116
     });
112 117
     (0,_components_useFormErrorReset__WEBPACK_IMPORTED_MODULE_3__.useFormErrorReset)(form);
113 118
 
114 119
     var onSubmit = function onSubmit() {
115
-      form.post(route('products.store'), {
120
+      form.transform(function (data) {
121
+        return _objectSpread({
122
+          number: (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage)().props.value.productNumber
123
+        }, data);
124
+      }).post(route('products.store'), {
116 125
         onSuccess: function onSuccess() {
117 126
           return form.reset();
127
+        },
128
+        onFinish: function onFinish() {
129
+          return getProductNumber();
118 130
         }
119 131
       });
120 132
     };
121 133
 
122 134
     var __returned__ = {
135
+      getProductNumber: getProductNumber,
123 136
       form: form,
124 137
       onSubmit: onSubmit,
125 138
       onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,
126
-      watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,
127 139
       Inertia: _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia,
128 140
       useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.useForm,
129 141
       usePage: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_2__.usePage,
@@ -227,14 +239,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
227 239
     disabled: "",
228 240
     label: "Nomor Produk",
229 241
     placeholder: "nomor produk",
230
-    error: $setup.form.errors.number,
231
-    modelValue: $setup.form.number,
242
+    modelValue: _ctx.$page.props.productNumber,
232 243
     "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
233
-      return $setup.form.number = $event;
244
+      return _ctx.$page.props.productNumber = $event;
234 245
     })
235 246
   }, null, 8
236 247
   /* PROPS */
237
-  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
248
+  , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
238 249
     label: "Nama",
239 250
     placeholder: "nama",
240 251
     error: $setup.form.errors.name,

+ 1
- 1
public/js/vue.js 查看文件

@@ -58906,7 +58906,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
58906 58906
 /******/ 		// This function allow to reference async chunks
58907 58907
 /******/ 		__webpack_require__.u = (chunkId) => {
58908 58908
 /******/ 			// return url for filenames based on template
58909
-/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"9296b829a7757dee","resources_js_pages_Auth_Login_vue":"3660adc6dce187d8","resources_js_pages_Customers_Create_vue":"ab9bd343966b4d44","resources_js_pages_Customers_Edit_vue":"43cd02b13e83baf5","resources_js_pages_Customers_Index_vue":"dc0859b7c75635df","resources_js_pages_Customers_tableHeader_js":"7a40a3d5ad60171c","resources_js_pages_Dashboards_Index_vue":"d047230cdee29fad","resources_js_pages_Error_Index_vue":"4119ff1c60260652","resources_js_pages_Products_Create_vue":"10d89c8a59b2f103","resources_js_pages_Products_Edit_vue":"61d1ee9dcc828ea5","resources_js_pages_Products_Index_vue":"e49403de81bc3f1c","resources_js_pages_Products_tableHeader_js":"951f590b1402bd34","resources_js_pages_Purchases_Index_vue":"8f94b83ac3bfdbc1","resources_js_pages_Sales_Components_SaleDetails_vue":"fe25c66092db0ff5","resources_js_pages_Sales_Create_vue":"3b328979537c817c","resources_js_pages_Sales_Dialog_CustomerCreate_vue":"b851689539704090","resources_js_pages_Sales_Dialog_ProductCreate_vue":"97d7a0fcc836ae80","resources_js_pages_Sales_Index_vue":"b4ac2a11e8996a80","resources_js_pages_Sales_config_js":"31265026d1001cfb","resources_js_pages_Sales_useCustomerAutoComplete_js":"befa6e915bae5874","resources_js_pages_Sales_useProductAutoComplete_js":"00ad559f108a40a1","resources_js_pages_StockProducts_Index_vue":"7b97c2c3e75fe4d2","resources_js_pages_Suppliers_Create_vue":"5751556489c5210b","resources_js_pages_Suppliers_Edit_vue":"ad3d3ecc739d791f","resources_js_pages_Suppliers_Index_vue":"6a2d438bd4ecc26e","resources_js_pages_Suppliers_tableHeader_js":"500bc29ff0dbddce","resources_js_pages_Users_Create_vue":"18947882650f4b03","resources_js_pages_Users_Edit_vue":"dd486fa9d6812c88","resources_js_pages_Users_Index_vue":"e8c4b8e098ba39d8","resources_js_pages_Users_Show_vue":"4ed763d677f72ae2","resources_js_pages_Users_tableHeader_js":"48f19bd820caf015"}[chunkId] + "";
58909
+/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"9296b829a7757dee","resources_js_pages_Auth_Login_vue":"3660adc6dce187d8","resources_js_pages_Customers_Create_vue":"ab9bd343966b4d44","resources_js_pages_Customers_Edit_vue":"43cd02b13e83baf5","resources_js_pages_Customers_Index_vue":"dc0859b7c75635df","resources_js_pages_Customers_tableHeader_js":"7a40a3d5ad60171c","resources_js_pages_Dashboards_Index_vue":"d047230cdee29fad","resources_js_pages_Error_Index_vue":"4119ff1c60260652","resources_js_pages_Products_Create_vue":"10d89c8a59b2f103","resources_js_pages_Products_Edit_vue":"61d1ee9dcc828ea5","resources_js_pages_Products_Index_vue":"e49403de81bc3f1c","resources_js_pages_Products_tableHeader_js":"951f590b1402bd34","resources_js_pages_Purchases_Index_vue":"8f94b83ac3bfdbc1","resources_js_pages_Sales_Components_SaleDetails_vue":"fe25c66092db0ff5","resources_js_pages_Sales_Create_vue":"6441aaf0822d7a4c","resources_js_pages_Sales_Dialog_CustomerCreate_vue":"b851689539704090","resources_js_pages_Sales_Dialog_ProductCreate_vue":"77eebb39e3b3cf75","resources_js_pages_Sales_Index_vue":"b4ac2a11e8996a80","resources_js_pages_Sales_config_js":"31265026d1001cfb","resources_js_pages_Sales_useCustomerAutoComplete_js":"befa6e915bae5874","resources_js_pages_Sales_useProductAutoComplete_js":"062805ffb0cfc901","resources_js_pages_StockProducts_Index_vue":"7b97c2c3e75fe4d2","resources_js_pages_Suppliers_Create_vue":"5751556489c5210b","resources_js_pages_Suppliers_Edit_vue":"ad3d3ecc739d791f","resources_js_pages_Suppliers_Index_vue":"6a2d438bd4ecc26e","resources_js_pages_Suppliers_tableHeader_js":"500bc29ff0dbddce","resources_js_pages_Users_Create_vue":"18947882650f4b03","resources_js_pages_Users_Edit_vue":"dd486fa9d6812c88","resources_js_pages_Users_Index_vue":"e8c4b8e098ba39d8","resources_js_pages_Users_Show_vue":"4ed763d677f72ae2","resources_js_pages_Users_tableHeader_js":"48f19bd820caf015"}[chunkId] + "";
58910 58910
 /******/ 		};
58911 58911
 /******/ 	})();
58912 58912
 /******/ 	

+ 1
- 1
resources/js/pages/Sales/Create.vue 查看文件

@@ -1,5 +1,5 @@
1 1
 <script setup>
2
-import { useForm, Head, usePage } from '@inertiajs/inertia-vue3'
2
+import { useForm, Head } from '@inertiajs/inertia-vue3'
3 3
 import { useFormErrorReset } from '@/components/useFormErrorReset'
4 4
 import { useProductAutoComplete } from './useProductAutoComplete'
5 5
 import { useCustomerAutoComplete } from './useCustomerAutoComplete'

+ 14
- 11
resources/js/pages/Sales/Dialog/ProductCreate.vue 查看文件

@@ -1,21 +1,17 @@
1 1
 <script setup>
2
-import { onMounted, watch } from 'vue'
2
+import { onMounted } from 'vue'
3 3
 import { Inertia } from '@inertiajs/inertia'
4 4
 import { useForm, usePage } from '@inertiajs/inertia-vue3'
5 5
 import { useFormErrorReset } from '@/components/useFormErrorReset'
6 6
 import AppInputText from '@/components/AppInputText.vue'
7 7
 
8
-onMounted(() => {
8
+const getProductNumber = () => {
9 9
   Inertia.reload({ only: ['productNumber'] })
10
-})
10
+}
11 11
 
12
-watch(
13
-  () => usePage().props.value.productNumber,
14
-  (val) => (form.number = val)
15
-)
12
+onMounted(() => getProductNumber())
16 13
 
17 14
 const form = useForm({
18
-  number: null,
19 15
   name: null,
20 16
   unit: null,
21 17
 })
@@ -23,7 +19,15 @@ const form = useForm({
23 19
 useFormErrorReset(form)
24 20
 
25 21
 const onSubmit = () => {
26
-  form.post(route('products.store'), { onSuccess: () => form.reset() })
22
+  form
23
+    .transform((data) => ({
24
+      number: usePage().props.value.productNumber,
25
+      ...data,
26
+    }))
27
+    .post(route('products.store'), {
28
+      onSuccess: () => form.reset(),
29
+      onFinish: () => getProductNumber(),
30
+    })
27 31
 }
28 32
 </script>
29 33
 
@@ -34,8 +38,7 @@ const onSubmit = () => {
34 38
         disabled
35 39
         label="Nomor Produk"
36 40
         placeholder="nomor produk"
37
-        :error="form.errors.number"
38
-        v-model="form.number"
41
+        v-model="$page.props.productNumber"
39 42
       />
40 43
     </div>
41 44