Show Test Result

This commit is contained in:
saeid_01
2019-05-09 04:24:27 +04:30
parent 940a1b01ab
commit 116ef9e130
21 changed files with 504 additions and 173 deletions
@@ -15,9 +15,13 @@ use Illuminate\Support\Facades\Storage;
class TestResultController extends Controller class TestResultController extends Controller
{ {
public function index() public function index(Request $request)
{ {
$TestResult = TestResult::with('test_type', 'user', 'user.medical_center')->paginate(10); $TestResult = TestResult::with('test_type', 'user', 'user.medical_center')
->when($request->has('verified'), function ($query) use ($request)
{
return $query->where('verified', $request->verified);
})->paginate(10);
return \MessageResponse::data($TestResult); return \MessageResponse::data($TestResult);
} }
+2 -2
View File
@@ -50,8 +50,8 @@ return [
'public' => [ 'public' => [
'driver' => 'local', 'driver' => 'local',
'root' => storage_path('app/public'), 'root' => public_path('uploads'),
'url' => env('APP_URL').'/storage', 'url' => env('APP_URL') . '/storage',
'visibility' => 'public', 'visibility' => 'public',
], ],
+20
View File
@@ -0,0 +1,20 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Image Driver
|--------------------------------------------------------------------------
|
| Intervention Image supports "GD Library" and "Imagick" to process images
| internally. You may choose one of them according to your PHP
| configuration. By default PHP's "GD Library" implementation is used.
|
| Supported: "gd", "imagick"
|
*/
'driver' => 'gd'
];
+5
View File
@@ -14903,6 +14903,11 @@
"integrity": "sha512-S4f0wXEbQNHnP4IUtSSIRmzU/fjyPtTN5fC80JlHdTcF78VLT1/xsTqXgNtSW5712UJtrLPpF6b0LfOTJrCCBg==", "integrity": "sha512-S4f0wXEbQNHnP4IUtSSIRmzU/fjyPtTN5fC80JlHdTcF78VLT1/xsTqXgNtSW5712UJtrLPpF6b0LfOTJrCCBg==",
"dev": true "dev": true
}, },
"vuetify-upload-component": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/vuetify-upload-component/-/vuetify-upload-component-1.0.6.tgz",
"integrity": "sha512-7g4VjnacxPDAiaKWu+GikqmcLXqlFk6G+SirgajXQHnBgkOP0U0RLqPLU/sdtmcQCfj0l5RjiXTT5RZPDWRpNg=="
},
"vuex": { "vuex": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.0.tgz",
+3
View File
@@ -60,5 +60,8 @@
"vuetify": "^1.2.5", "vuetify": "^1.2.5",
"vuex": "^3.0.1", "vuex": "^3.0.1",
"vuex-router-sync": "^5.0.0" "vuex-router-sync": "^5.0.0"
},
"dependencies": {
"vuetify-upload-component": "^1.0.6"
} }
} }
Vendored
+1 -1
View File
@@ -219,7 +219,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // Module
exports.push([module.i, "\n.WM-ActionButton[data-v-1346f0a2] {\r\n padding: 8px 22px;\n}\r\n", ""]); exports.push([module.i, "\n.WM-ActionButton[data-v-1346f0a2] {\n padding: 8px 22px;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -210,7 +210,7 @@ __webpack_require__.r(__webpack_exports__);
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // Module
exports.push([module.i, "\n.WM-Border[data-v-7eb32e4a] {\r\n border: 1px solid;\n}\n.WM-Border-Black[data-v-7eb32e4a] {\r\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-7eb32e4a] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-7eb32e4a] {\r\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-7eb32e4a] {\r\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-7eb32e4a] {\r\n top: -25px !important;\n}\r\n", ""]); exports.push([module.i, "\n.WM-Border[data-v-7eb32e4a] {\n border: 1px solid;\n}\n.WM-Border-Black[data-v-7eb32e4a] {\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-7eb32e4a] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-7eb32e4a] {\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-7eb32e4a] {\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-7eb32e4a] {\n top: -25px !important;\n}\n", ""]);
+176 -116
View File
@@ -157,6 +157,27 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
// //
// //
// //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({ /* harmony default export */ __webpack_exports__["default"] = ({
@@ -174,8 +195,10 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
formData: { formData: {
autoclave_id: "", autoclave_id: "",
result: "", result: "",
img: null,
test_type_id: "" test_type_id: ""
} },
image: null
}; };
}, },
created: function created() { created: function created() {
@@ -248,7 +271,6 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
if (result.data.data.inputs[key].children.hasOwnProperty(keyForm)) { if (result.data.data.inputs[key].children.hasOwnProperty(keyForm)) {
if (result.data.data.inputs[key].children[keyForm].type == 'Checkbox' || result.data.data.inputs[key].children[keyForm].type == 'Select') { if (result.data.data.inputs[key].children[keyForm].type == 'Checkbox' || result.data.data.inputs[key].children[keyForm].type == 'Select') {
this.formData[result.data.data.inputs[key].children[keyForm].name] = []; this.formData[result.data.data.inputs[key].children[keyForm].name] = [];
console.log(this.formData[result.data.data.inputs[key].children[keyForm].name]);
} else { } else {
this.formData[result.data.data.inputs[key].children[keyForm].name] = ''; this.formData[result.data.data.inputs[key].children[keyForm].name] = '';
} }
@@ -340,7 +362,31 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
} }
return submitForm; return submitForm;
}() }(),
onFileChange: function onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length) return;
this.createImage(files[0]);
},
createImage: function createImage(file) {
var image = new Image();
var reader = new FileReader();
var vm = this;
reader.onload = function (e) {
vm.image = e.target.result;
};
reader.readAsDataURL(file);
},
removeImage: function removeImage(e) {
this.image = null;
}
},
watch: {
image: function image(img) {
this.formData.img = img;
}
} }
}); });
@@ -539,6 +585,26 @@ var render = function() {
1 1
), ),
_vm._v(" "), _vm._v(" "),
_c("v-flex", { attrs: { xs12: "", sm4: "", md3: "" } }, [
!_vm.image
? _c("div", [
_c("input", {
attrs: { type: "file" },
on: { change: _vm.onFileChange }
})
])
: _c("div", [
_c("img", {
staticStyle: { width: "100%" },
attrs: { src: _vm.image }
}),
_vm._v(" "),
_c("button", { on: { click: _vm.removeImage } }, [
_vm._v("Remove image")
])
])
]),
_vm._v(" "),
_vm._l(_vm.form, function(item, key) { _vm._l(_vm.form, function(item, key) {
return _c( return _c(
"v-flex", "v-flex",
@@ -610,123 +676,117 @@ var render = function() {
_vm._v(" "), _vm._v(" "),
item.type == "Form" item.type == "Form"
? [ ? [
_c("v-layout", { attrs: { row: "", wrap: "" } }, [
_c("h3", [_vm._v(_vm._s(item.name))])
]),
_vm._v(" "),
_c( _c(
"v-layout", "v-layout",
{ attrs: { row: "", wrap: "" } }, { attrs: { row: "", wrap: "" } },
[ _vm._l(item.children, function(
_c("h3", [_vm._v(_vm._s(item.name))]), children,
_vm._v(" "), keyChildren
_vm._l(item.children, function( ) {
children, return _c(
keyChildren "v-flex",
) { {
return _c( key: keyChildren,
"v-flex", class: ["pa-2", children.size]
{ },
key: keyChildren, [
class: ["pa-2", children.size] children.type == "Text"
}, ? _c("v-text-field", {
[ attrs: {
children.type == "Text" label: children.name,
? _c("v-text-field", { color: "black"
attrs: { },
label: children.name, model: {
color: "black" value:
}, _vm.formData[children.name],
model: { callback: function($$v) {
value: _vm.$set(
_vm.formData[children.name], _vm.formData,
callback: function($$v) { children.name,
_vm.$set( $$v
_vm.formData,
children.name,
$$v
)
},
expression:
"formData[children.name]"
}
})
: _vm._e(),
_vm._v(" "),
children.type == "Select"
? _c("v-select", {
attrs: {
multiple: "",
items: children.options,
label: children.name,
color: "black",
"item-text": "title",
"item-value": "id"
},
model: {
value:
_vm.formData[children.name],
callback: function($$v) {
_vm.$set(
_vm.formData,
children.name,
$$v
)
},
expression:
"formData[children.name]"
}
})
: _vm._e(),
_vm._v(" "),
children.type == "Checkbox"
? _c(
"v-container",
{ attrs: { fluid: "" } },
[
_c("p", [
_vm._v(_vm._s(children.name))
]),
_vm._v(" "),
_vm._l(
children.options,
function(
optionValue,
keyOption
) {
return _c("v-checkbox", {
key: keyOption,
attrs: {
label:
optionValue.title,
value: optionValue.id
},
model: {
value:
_vm.formData[
children.name
],
callback: function(
$$v
) {
_vm.$set(
_vm.formData,
children.name,
$$v
)
},
expression:
"formData[children.name]"
}
})
}
) )
], },
2 expression:
) "formData[children.name]"
: _vm._e() }
], })
1 : _vm._e(),
) _vm._v(" "),
}) children.type == "Select"
], ? _c("v-select", {
2 attrs: {
multiple: "",
items: children.options,
label: children.name,
color: "black",
"item-text": "title",
"item-value": "id"
},
model: {
value:
_vm.formData[children.name],
callback: function($$v) {
_vm.$set(
_vm.formData,
children.name,
$$v
)
},
expression:
"formData[children.name]"
}
})
: _vm._e(),
_vm._v(" "),
children.type == "Checkbox"
? _c(
"v-container",
{ attrs: { fluid: "" } },
[
_c("p", [
_vm._v(_vm._s(children.name))
]),
_vm._v(" "),
_vm._l(children.options, function(
optionValue,
keyOption
) {
return _c("v-checkbox", {
key: keyOption,
attrs: {
label: optionValue.title,
value: optionValue.id
},
model: {
value:
_vm.formData[
children.name
],
callback: function($$v) {
_vm.$set(
_vm.formData,
children.name,
$$v
)
},
expression:
"formData[children.name]"
}
})
})
],
2
)
: _vm._e()
],
1
)
}),
1
) )
] ]
: _vm._e() : _vm._e()
+11 -5
View File
@@ -149,7 +149,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
}; };
}, },
created: function created() { created: function created() {
this.load(); if (this.$route.name == 'NotVerifyTestResult') {
this.load(1, 'NotVerified');
} else {
this.load();
}
}, },
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_3__["mapMutations"])("modal", ["changeCurrentModal"]), { methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_3__["mapMutations"])("modal", ["changeCurrentModal"]), {
load: function () { load: function () {
@@ -157,6 +161,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
/*#__PURE__*/ /*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() {
var page, var page,
verified,
result, result,
_args = arguments; _args = arguments;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
@@ -164,10 +169,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
switch (_context.prev = _context.next) { switch (_context.prev = _context.next) {
case 0: case 0:
page = _args.length > 0 && _args[0] !== undefined ? _args[0] : 1; page = _args.length > 0 && _args[0] !== undefined ? _args[0] : 1;
_context.next = 3; verified = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].get(_config_urls__WEBPACK_IMPORTED_MODULE_2__["urls"].listTestResult(page)); _context.next = 4;
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].get(_config_urls__WEBPACK_IMPORTED_MODULE_2__["urls"].listTestResult(page, verified));
case 3: case 4:
result = _context.sent; result = _context.sent;
if (result && result.status == 200) { if (result && result.status == 200) {
@@ -176,7 +182,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
this.lastPage = result.data.data.last_page; this.lastPage = result.data.data.last_page;
} }
case 5: case 6:
case "end": case "end":
return _context.stop(); return _context.stop();
} }
Vendored
+1 -1
View File
@@ -562,7 +562,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // Module
exports.push([module.i, "\n.WM-Border-Gray[data-v-5cc5a650] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-5cc5a650] {\r\n background-color: #f5f5f5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\r\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\r\n bottom: -24px !important;\n}\r\n", ""]); exports.push([module.i, "\n.WM-Border-Gray[data-v-5cc5a650] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-5cc5a650] {\n background-color: #f5f5f5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\n bottom: -24px !important;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -227,7 +227,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // Module
exports.push([module.i, "\n.WM-ActionButton[data-v-b1f1b72e] {\r\n padding: 8px 22px;\n}\r\n", ""]); exports.push([module.i, "\n.WM-ActionButton[data-v-b1f1b72e] {\n padding: 8px 22px;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -98,7 +98,7 @@ __webpack_require__.r(__webpack_exports__);
icon: '/img/Static/Dashboard/notepad-colorful.png', icon: '/img/Static/Dashboard/notepad-colorful.png',
color: 'WM-PinkGradient-BG', color: 'WM-PinkGradient-BG',
route: { route: {
name: 'SubmitTestResult' name: 'NotVerifyTestResult'
}, },
aligntext: 'text-md-center', aligntext: 'text-md-center',
alignimg: 'text-md-left', alignimg: 'text-md-left',
+1 -1
View File
@@ -1,3 +1,3 @@
{ {
"/vue/js/app.js": "/vue/js/app.js?id=571c3030afcd24e8d145" "/vue/js/app.js": "/vue/js/app.js?id=b1ffa939001e67dfabbc"
} }
+156 -15
View File
@@ -3459,6 +3459,36 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
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; } 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; }
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// //
// //
// //
@@ -8401,7 +8431,7 @@ exports.push([module.i, "/*!\n* Vuetify v1.5.11\n* Forged by John Leider\n* Rele
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // Module
exports.push([module.i, "\n#core-footer {\r\n z-index: 0;\n}\r\n", ""]); exports.push([module.i, "\n#core-footer {\n z-index: 0;\n}\n", ""]);
@@ -17395,19 +17425,120 @@ var render = function() {
attrs: { "align-center": "", wrap: "" } attrs: { "align-center": "", wrap: "" }
}, },
[ [
_c( _c("v-flex", { attrs: { xs12: "", md12: "", sm12: "" } }, [
"v-flex", _c("div", [
{ attrs: { xs12: "", md2: "", sm2: "" } }, _vm._v("Auto Clave Id : " + _vm._s(_vm.data.autoclave_id))
[ ])
_c("v-text-field", { ]),
staticClass: "pa-2", _vm._v(" "),
attrs: { label: "Name", color: "black" } _c("v-flex", { attrs: { xs12: "", md12: "", sm12: "" } }, [
_c("div", [_vm._v("Result : " + _vm._s(_vm.data.result))])
]),
_vm._v(" "),
_c("v-flex", { attrs: { xs12: "", md12: "", sm12: "" } }, [
_c("div", [_vm._v("verify : " + _vm._s(_vm.data.verified))])
]),
_vm._v(" "),
_c("v-flex", { attrs: { xs12: "", md12: "", sm12: "" } }, [
_c("div", [
_vm._v("Register User : " + _vm._s(_vm.data.user.name))
])
]),
_vm._v(" "),
_vm.data.inputs
? _vm._l(_vm.data.inputs, function(inputData, keyInputs) {
return _c(
"v-flex",
{
key: keyInputs,
attrs: { xs12: "", md12: "", sm12: "" }
},
[
_c("div", [
_vm._v(
_vm._s(keyInputs) + " : " + _vm._s(inputData)
)
])
]
)
}) })
], : _vm._e(),
1 _vm._v(" "),
) _vm.data.options
? _vm._l(_vm.data.options, function(
optionData,
keyOptions
) {
return _c(
"v-flex",
{
key: keyOptions,
attrs: { xs12: "", md12: "", sm12: "" }
},
[
_c(
"div",
[
_vm._v(_vm._s(keyOptions) + " : "),
_vm._l(optionData, function(data, dataKey) {
return _c("span", { key: dataKey }, [
_vm._v(_vm._s(data) + ", ")
])
})
],
2
)
]
)
})
: _vm._e(),
_vm._v(" "),
_vm.data.children
? _vm._l(_vm.data.children, function(formData, keyForm) {
return _c(
"v-flex",
{
key: keyForm,
attrs: { xs12: "", md12: "", sm12: "" }
},
[
_c("h1", [_vm._v(_vm._s(keyForm))]),
_vm._v(" "),
_vm._l(formData, function(childData, keyChild) {
return _c("div", { key: keyChild }, [
_c(
"div",
[
_vm._v(
_vm._s(keyChild) +
" : \n "
),
Array.isArray(childData)
? _vm._l(childData, function(
data,
dataKey
) {
return _c("span", { key: dataKey }, [
_vm._v(_vm._s(data) + ", ")
])
})
: [
_c("span", [
_vm._v(_vm._s(childData))
])
]
],
2
)
])
})
],
2
)
})
: _vm._e()
], ],
1 2
), ),
_vm._v(" "), _vm._v(" "),
_c("v-divider"), _c("v-divider"),
@@ -62364,6 +62495,12 @@ var urls = {
return "/TestTypes/".concat(id); return "/TestTypes/".concat(id);
}, },
listTestResult: function listTestResult(page) { listTestResult: function listTestResult(page) {
var verified = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (verified) {
return "/TestResults/?verified=".concat(verified, "&page=").concat(page);
}
return "/TestResults?page=" + page; return "/TestResults?page=" + page;
}, },
editTestResult: function editTestResult(id) { editTestResult: function editTestResult(id) {
@@ -63006,6 +63143,10 @@ __webpack_require__.r(__webpack_exports__);
path: '/test-result/:testResult/edit', path: '/test-result/:testResult/edit',
name: 'EditTestResult', name: 'EditTestResult',
view: 'TestResult/AddEdit' view: 'TestResult/AddEdit'
}, {
path: '/test-result/NotVerified',
name: 'NotVerifyTestResult',
view: 'TestResult/List'
}]); }]);
/***/ }), /***/ }),
@@ -63217,7 +63358,7 @@ var UserService = {
}, },
auth: { auth: {
username: "2", username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE" password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
} }
}; };
_context.prev = 1; _context.prev = 1;
@@ -63277,7 +63418,7 @@ var UserService = {
}, },
auth: { auth: {
username: "2", username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE" password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
} }
}; };
_context2.prev = 2; _context2.prev = 2;
@@ -64525,7 +64666,7 @@ module.exports = webpackAsyncContext;
/*! no static exports found */ /*! no static exports found */
/***/ (function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! D:\Atom\Git\CSSD\resources\js\vue\main.js */"./resources/js/vue/main.js"); module.exports = __webpack_require__(/*! /home/saeid/Projects/Git/CSSD/resources/js/vue/main.js */"./resources/js/vue/main.js");
/***/ }) /***/ })
@@ -3,9 +3,39 @@
<v-container fluid> <v-container fluid>
<material-card class color="black" title="Show Test Resualt" text> <material-card class color="black" title="Show Test Resualt" text>
<v-layout align-center wrap class="my-3"> <v-layout align-center wrap class="my-3">
<v-flex xs12 md2 sm2> <v-flex xs12 md12 sm12>
<v-text-field class="pa-2" label="Name" color="black"></v-text-field> <div>Auto Clave Id : {{ data.autoclave_id }}</div>
</v-flex> </v-flex>
<v-flex xs12 md12 sm12>
<div>Result : {{ data.result }}</div>
</v-flex>
<v-flex xs12 md12 sm12>
<div>verify : {{ data.verified }}</div>
</v-flex>
<v-flex xs12 md12 sm12>
<div>Register User : {{ data.user.name }}</div>
</v-flex>
<template v-if="data.inputs">
<v-flex xs12 md12 sm12 v-for="(inputData, keyInputs) in data.inputs" :key="keyInputs">
<div>{{keyInputs}} : {{inputData}}</div>
</v-flex>
</template>
<template v-if="data.options">
<v-flex xs12 md12 sm12 v-for="(optionData, keyOptions) in data.options" :key="keyOptions">
<div>{{keyOptions}} : <span v-for="(data, dataKey) in optionData" :key="dataKey">{{data}}, </span></div>
</v-flex>
</template>
<template v-if="data.children">
<v-flex xs12 md12 sm12 v-for="(formData, keyForm) in data.children" :key="keyForm">
<h1>{{keyForm}}</h1>
<div v-for="(childData, keyChild) in formData" :key="keyChild">
<div>{{keyChild}} :
<template v-if="Array.isArray(childData)"><span v-for="(data, dataKey) in childData" :key="dataKey">{{data}}, </span> </template>
<template v-else > <span>{{childData}}</span> </template>
</div>
</div>
</v-flex>
</template>
</v-layout> </v-layout>
<v-divider></v-divider> <v-divider></v-divider>
<v-layout align-center wrap class="my-3"> <v-layout align-center wrap class="my-3">
@@ -41,7 +71,7 @@ export default {
this.data = this.getModalProperties.result.data.data; this.data = this.getModalProperties.result.data.data;
}, },
computed: { computed: {
...mapGetters("modal", ["getModalProperties"]) ...mapGetters("modal", ["getModalProperties"]),
} }
}; };
</script> </script>
+4 -1
View File
@@ -23,7 +23,10 @@ const urls = {
updateTestType : function(id) { updateTestType : function(id) {
return `/TestTypes/${id}`; return `/TestTypes/${id}`;
}, },
listTestResult : function(page) { listTestResult : function(page, verified = null) {
if (verified) {
return `/TestResults/?verified=${verified}&page=${page}`;
}
return "/TestResults?page=" + page; return "/TestResults?page=" + page;
}, },
editTestResult : function(id) { editTestResult : function(id) {
+5
View File
@@ -101,4 +101,9 @@ export default [
name: 'EditTestResult', name: 'EditTestResult',
view: 'TestResult/AddEdit' view: 'TestResult/AddEdit'
}, },
{
path: '/test-result/NotVerified',
name: 'NotVerifyTestResult',
view: 'TestResult/List'
},
] ]
+1 -1
View File
@@ -33,7 +33,7 @@ export default {
{title:'Manage Users', text:'You can edit the medical center information',icon:'/img/Static/Dashboard/ipad.png',color:'WM-YellowPinkGradient-BG',route:{name: 'ManageUsers'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'}, {title:'Manage Users', text:'You can edit the medical center information',icon:'/img/Static/Dashboard/ipad.png',color:'WM-YellowPinkGradient-BG',route:{name: 'ManageUsers'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'},
{title:'Manage Medical Center', text:'Managing users very fast by ...',icon:'/img/Static/Dashboard/Macbook.png',color:'WM-MuskGradient-BG',route:{name: 'ManageMedicalCenter'},aligntext:'text-md-left',alignimg:'text-md-right',column:'xs12 md7 sm7'}, {title:'Manage Medical Center', text:'Managing users very fast by ...',icon:'/img/Static/Dashboard/Macbook.png',color:'WM-MuskGradient-BG',route:{name: 'ManageMedicalCenter'},aligntext:'text-md-left',alignimg:'text-md-right',column:'xs12 md7 sm7'},
{title:'List Test Type', text:'You can simply add your own test type',icon:'/img/Static/Dashboard/Book-and-Pen.png',color:'WM-GreyGradient-BG',route:{name: 'ListTestType'},aligntext:'text-md-left',alignimg:'text-md-right',column:'xs12 md5 sm5'}, {title:'List Test Type', text:'You can simply add your own test type',icon:'/img/Static/Dashboard/Book-and-Pen.png',color:'WM-GreyGradient-BG',route:{name: 'ListTestType'},aligntext:'text-md-left',alignimg:'text-md-right',column:'xs12 md5 sm5'},
{title:'Test to Verify', text:'You can simply add your own test type in this section of website',icon:'/img/Static/Dashboard/notepad-colorful.png',color:'WM-PinkGradient-BG',route:{name: 'SubmitTestResult'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'}, {title:'Test to Verify', text:'You can simply add your own test type in this section of website',icon:'/img/Static/Dashboard/notepad-colorful.png',color:'WM-PinkGradient-BG',route:{name: 'NotVerifyTestResult'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'},
{title:'Add a Test Result', text:'You can edit the medical center information',icon:'/img/Static/Dashboard/ipad.png',color:'WM-YellowPinkGradient-BG',route:{name: 'SubmitTestResult'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'}, {title:'Add a Test Result', text:'You can edit the medical center information',icon:'/img/Static/Dashboard/ipad.png',color:'WM-YellowPinkGradient-BG',route:{name: 'SubmitTestResult'},aligntext:'text-md-center',alignimg:'text-md-left',column:'xs12 md12 sm12'},
] ]
} }
+52 -5
View File
@@ -2,7 +2,13 @@
<v-form ref="form"> <v-form ref="form">
<v-container grid-list-xs> <v-container grid-list-xs>
<material-card color="black" title="Submit Test Result"> <material-card color="black" title="Submit Test Result">
<v-layout align-center justify-center wrap class="px-5 my-3" v-if="!$route.params.testResult"> <v-layout
align-center
justify-center
wrap
class="px-5 my-3"
v-if="!$route.params.testResult"
>
<v-flex xs12 sm4 md4> <v-flex xs12 sm4 md4>
<v-autocomplete <v-autocomplete
:search-input.sync="searchInput" :search-input.sync="searchInput"
@@ -55,6 +61,15 @@
class="pa-2" class="pa-2"
></v-select> ></v-select>
</v-flex> </v-flex>
<v-flex xs12 sm4 md3>
<div v-if="!image">
<input type="file" @change="onFileChange">
</div>
<div v-else>
<img :src="image" style="width:100%;"/>
<button @click="removeImage">Remove image</button>
</div>
</v-flex>
<v-flex :class="['pa-2', item.size]" v-for="(item, key) in form" :key="key"> <v-flex :class="['pa-2', item.size]" v-for="(item, key) in form" :key="key">
<v-text-field <v-text-field
v-if="item.type == 'Text'" v-if="item.type == 'Text'"
@@ -72,7 +87,7 @@
item-text="title" item-text="title"
item-value="id" item-value="id"
></v-select> ></v-select>
<v-container fluid v-if="item.type == 'Checkbox'" > <v-container fluid v-if="item.type == 'Checkbox'">
<p>{{ item.name }}</p> <p>{{ item.name }}</p>
<v-checkbox <v-checkbox
v-for="(optionValue, keyOption) in item.options" v-for="(optionValue, keyOption) in item.options"
@@ -85,7 +100,13 @@
<template v-if="item.type == 'Form'"> <template v-if="item.type == 'Form'">
<v-layout row wrap> <v-layout row wrap>
<h3>{{ item.name }}</h3> <h3>{{ item.name }}</h3>
<v-flex :class="['pa-2', children.size]" v-for="(children, keyChildren) in item.children" :key="keyChildren"> </v-layout>
<v-layout row wrap>
<v-flex
:class="['pa-2', children.size]"
v-for="(children, keyChildren) in item.children"
:key="keyChildren"
>
<v-text-field <v-text-field
v-if="children.type == 'Text'" v-if="children.type == 'Text'"
v-model="formData[children.name]" v-model="formData[children.name]"
@@ -153,8 +174,10 @@ export default {
formData : { formData : {
autoclave_id: "", autoclave_id: "",
result: "", result: "",
img: null,
test_type_id: "", test_type_id: "",
} },
image: null,
}), }),
created() { created() {
if (this.$route.params.testResult) { if (this.$route.params.testResult) {
@@ -181,7 +204,6 @@ export default {
if (result.data.data.inputs[key].children.hasOwnProperty(keyForm)) { if (result.data.data.inputs[key].children.hasOwnProperty(keyForm)) {
if (result.data.data.inputs[key].children[keyForm].type == 'Checkbox' || result.data.data.inputs[key].children[keyForm].type == 'Select' ) { if (result.data.data.inputs[key].children[keyForm].type == 'Checkbox' || result.data.data.inputs[key].children[keyForm].type == 'Select' ) {
this.formData[result.data.data.inputs[key].children[keyForm].name] = []; this.formData[result.data.data.inputs[key].children[keyForm].name] = [];
console.log(this.formData[result.data.data.inputs[key].children[keyForm].name]);
} else { } else {
this.formData[result.data.data.inputs[key].children[keyForm].name] = ''; this.formData[result.data.data.inputs[key].children[keyForm].name] = '';
} }
@@ -214,6 +236,31 @@ export default {
this.$router.push({name: 'Dashboard'}) this.$router.push({name: 'Dashboard'})
} }
}, },
onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length)
return;
this.createImage(files[0]);
},
createImage(file) {
var image = new Image();
var reader = new FileReader();
var vm = this;
reader.onload = (e) => {
vm.image = e.target.result;
};
reader.readAsDataURL(file);
},
removeImage: function (e) {
this.image = null;
},
},
watch:{
image(img) {
this.formData.img = img;
}
} }
}; };
</script> </script>
+8 -3
View File
@@ -129,12 +129,17 @@ export default {
lastPage: 1 lastPage: 1
}), }),
created() { created() {
this.load(); if(this.$route.name == 'NotVerifyTestResult') {
this.load(1, 'NotVerified');
} else {
this.load();
}
}, },
methods: { methods: {
...mapMutations("modal", ["changeCurrentModal"]), ...mapMutations("modal", ["changeCurrentModal"]),
async load(page = 1) { async load(page = 1, verified = null) {
const result = await ApiService.get(urls.listTestResult(page)); const result = await ApiService.get(urls.listTestResult(page, verified));
if (result && result.status == 200) { if (result && result.status == 200) {
this.items = result.data.data.data; this.items = result.data.data.data;
this.currentPage = result.data.data.current_page; this.currentPage = result.data.data.current_page;
+16 -14
View File
@@ -16,22 +16,24 @@ Route::group(['namespace' => 'Api'],function () {
Route::post('/login', 'Auth\LoginController@login')->name('login'); Route::post('/login', 'Auth\LoginController@login')->name('login');
Route::post('/logout', 'Auth\LoginController@logout')->name('logout')->middleware('auth:api'); Route::post('/logout', 'Auth\LoginController@logout')->name('logout')->middleware('auth:api');
Route::post('/register', 'Auth\RegisterController@register')->name('register'); Route::post('/register', 'Auth\RegisterController@register')->name('register');
Route::post('/password/phone', 'Auth\ForgotPasswordController@sendDisposablePassword'); Route::post('/password/phone', 'Auth\ForgotPasswordController@sendDisposablePassword')->name('password.email');
Route::post('/password/verifyCode', 'Auth\ForgotPasswordController@checkDisposablePassword'); Route::post('/password/verifyCode', 'Auth\ForgotPasswordController@checkDisposablePassword');
Route::post('/password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset')->middleware('auth:api'); Route::post('/password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset');
}); });
Route::get('TestTypes/ListNames', 'TestTypeController@listNames'); Route::middleware('auth:api')->group(function () {
Route::resource('TestTypes', 'TestTypeController'); Route::post('/TestResults/Verify/{TestResult}', 'TestResultController@verifyTestResult');
Route::resource('TestResults', 'TestResultController'); Route::get('TestTypes/ListNames', 'TestTypeController@listNames');
Route::resource('MedicalCenters', 'MedicalCenterController'); Route::resource('TestTypes', 'TestTypeController');
Route::post('/GetInputs', 'TestTypeController@getInputs'); Route::resource('TestResults', 'TestResultController');
Route::resource('MedicalCenters', 'MedicalCenterController');
Route::post('/GetInputs', 'TestTypeController@getInputs');
Route::get('/GetInfo', 'UserController@getInfo')->middleware('auth:api'); Route::get('/GetInfo', 'UserController@getInfo');
Route::get('Users/MedicalCenter/{MedicalCenter}', 'UserController@getByMedicalCenter')->middleware('auth:api'); Route::get('Users/MedicalCenter/{MedicalCenter}', 'UserController@getByMedicalCenter');
Route::post('Users/ChangeStatus/{User}', 'UserController@changeStatus')->middleware('auth:api'); Route::post('Users/ChangeStatus/{User}', 'UserController@changeStatus');
Route::post('Users/ChangeRole/{User}', 'UserController@changeRole')->middleware('auth:api'); Route::post('Users/ChangeRole/{User}', 'UserController@changeRole');
Route::post('UpdateInfo', 'UserController@updateInfo')->middleware('auth:api'); Route::post('UpdateInfo', 'UserController@updateInfo');
Route::resource('Users', 'UserController'); Route::resource('Users', 'UserController');
Route::post('/TestResults/Verify/{TestResult}', 'TestResultController@verifyTestResult'); });