You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 line
17 KiB

  1. {"ast":null,"code":"import Layout from \"@/layout/custom.vue\";\nimport { onMounted, ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport axios from \"axios\";\nexport default {\n name: \"SAMPLE-PAGE\",\n components: {\n Layout\n },\n setup() {\n const users = ref();\n const token = localStorage.getItem(\"token\");\n const url = process.env.VUE_APP_ROOT_URL;\n const route = useRoute();\n const user = ref();\n const name = ref();\n const role = ref();\n const mobile = ref();\n const access = ref();\n const password = ref();\n const UserSearchQuery = ref();\n const getUser = () => {\n axios.get(`${url}/admin/user/${route.params.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token} `\n }\n }).then(resp => {\n console.log(resp);\n user.value = resp.data;\n console.log(user.value);\n name.value = user.value.name;\n mobile.value = user.value.mobile;\n role.value = user.value.role;\n access.value = JSON.parse(user.value.access);\n }).catch(error => {\n console.error(\"Error fetching users:\", error);\n });\n };\n const filteredUsers = computed(() => {\n if (!UserSearchQuery.value) return localUsers.value; // Return all users if search query is empty\n return localUsers.value.filter(user => user.name.toLowerCase().includes(UserSearchQuery.value.toLowerCase()));\n });\n const getUsers = searchQuery => {\n axios.get(`${url}/admin/users?search=${searchQuery?.value || \"\"}&role=${userType?.value}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token} `\n }\n }).then(resp => {\n console.log(resp);\n users.value = resp.data;\n console.log(users.value);\n }).catch(error => {\n filterLoading.value = false;\n console.error(\"Error fetching users:\", error);\n });\n };\n const toggleAccess = permission => {\n if (!Array.isArray(access.value)) {\n access.value = [];\n }\n if (access.value.includes(permission)) {\n access.value = access.value.filter(item => item !== permission);\n } else {\n access.value = [...access.value, permission];\n }\n };\n onMounted(() => {\n getUser();\n getUsers();\n });\n return {\n name,\n mobile,\n password,\n role,\n access,\n toggleAccess,\n filteredUsers,\n UserSearchQuery\n };\n }\n};","map":{"version":3,"names":["Layout","onMounted","ref","useRoute","axios","name","components","setup","users","token","localStorage","getItem","url","process","env","VUE_APP_ROOT_URL","route","user","role","mobile","access","password","UserSearchQuery","getUser","get","params","id","headers","Authorization","then","resp","console","log","value","data","JSON","parse","catch","error","filteredUsers","computed","localUsers","filter","toLowerCase","includes","getUsers","searchQuery","userType","filterLoading","toggleAccess","permission","Array","isArray","item"],"sources":["C:\\Users\\hp\\Desktop\\satari\\Vue\\Admin\\src\\views\\live-preview\\pages\\editUser.vue"],"sourcesContent":["<script>\r\nimport Layout from \"@/layout/custom.vue\";\r\nimport { onMounted, ref } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport axios from \"axios\";\r\n\r\nexport default {\r\n name: \"SAMPLE-PAGE\",\r\n components: {\r\n Layout,\r\n },\r\n setup() {\r\n const users = ref();\r\n const token = localStorage.getItem(\"token\");\r\n const url = process.env.VUE_APP_ROOT_URL;\r\n const route = useRoute();\r\n const user = ref();\r\n const name = ref();\r\n const role = ref();\r\n const mobile = ref();\r\n const access = ref();\r\n const password = ref();\r\n const UserSearchQuery = ref()\r\n const getUser = () => {\r\n axios\r\n .get(`${url}/admin/user/${route.params.id}`, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token} `,\r\n },\r\n })\r\n .then((resp) => {\r\n console.log(resp);\r\n user.value = resp.data;\r\n console.log(user.value);\r\n name.value = user.value.name;\r\n mobile.value = user.value.mobile;\r\n role.value = user.value.role;\r\n access.value = JSON.parse(user.value.access);\r\n })\r\n .catch((error) => {\r\n console.error(\"Error fetching users:\", error);\r\n });\r\n };\r\n\r\n const filteredUsers = computed(() => {\r\n if (!UserSearchQuery.value) return localUsers.value; // Return all users if search query is empty\r\n return localUsers.value.filter((user) =>\r\n user.name.toLowerCase().includes(UserSearchQuery.value.toLowerCase())\r\n );\r\n });\r\n\r\n const getUsers = (searchQuery) => {\r\n axios\r\n .get(\r\n `${url}/admin/users?search=${searchQuery?.value || \"\"}&role=${\r\n userType?.value\r\n }`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token} `,\r\n },\r\n }\r\n )\r\n .then((resp) => {\r\n console.log(resp);\r\n\r\n users.value = resp.data;\r\n console.log(users.value);\r\n })\r\n .catch((error) => {\r\n filterLoading.value = false;\r\n console.error(\"Error fetching users:\", error);\r\n });\r\n };\r\n\r\n const toggleAccess = (permission) => {\r\n if (!Array.isArray(access.value)) {\r\n access.value = [];\r\n }\r\n\r\n if (access.value.includes(permission)) {\r\n access.value = access.value.filter((item) => item !== permission);\r\n } else {\r\n access.value = [...access.value, permission];\r\n }\r\n };\r\n onMounted(() => {\r\n getUser();\r\n getUsers();\r\n });\r\n return {\r\n name,\r\n mobile,\r\n password,\r\n role,\r\n access,\r\n toggleAccess,\r\n filteredUsers,\r\n UserSearchQuery\r\n };\r\n },\r\n};\r\n</script>\r\n\r\n<template>\r\n <Layout>\r\n <BRow>\r\n <BCard>\r\n <form @submit.prevent=\"editUser\">\r\n <BRow class=\"g-3\">\r\n <!-- Form fields -->\r\n <BCol class=\"col-lg-6\">\r\n <div class=\"form-group\">\r\n <label class=\"form-label\">نام </label>\r\n <input\r\n v-model=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n placeholder=\"نام کاربر را وارد نمایید\"\r\n />\r\n <!-- <small v-if=\"errors.name\" class=\"text-danger\">{{\r\n errors.name\r\n }}</small> -->\r\n </div>\r\n </BCol>\r\n\r\n <BCol class=\"col-lg-6\">\r\n <div class=\"form-group\">\r\n <label class=\"form-label\">موبایل</label>\r\n <input\r\n v-model=\"mobile\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n placeholder=\"شماره موبایل کاربر را وارد نمایید\"\r\n />\r\n <!-- <small v-if=\"errors.mobile\" class=\"text-danger\">{{\r\n errors.mobile\r\n }}</small> -->\r\n </div>\r\n </BCol>\r\n </BRow>\r\n\r\n <BRow class=\"g-3\">\r\n <!-- User Type -->\r\n <BCol class=\"col-lg-6\">\r\n <div class=\"form-group\">\r\n <label class=\"form-label\">نوع کاربر</label>\r\n <div class=\"input-group\">\r\n <select v-if=\"role != 0\" class=\"form-select\" v-model=\"role\">\r\n <option disabled value=\"\">نوع کاربر</option>\r\n <option value=\"1\">کاربر</option>\r\n <option value=\"2\">اپراتور</option>\r\n </select>\r\n <select\r\n v-else-if=\"role == 0\"\r\n class=\"form-select\"\r\n v-model=\"role\"\r\n >\r\n <option disabled value=\"\">نوع کاربر</option>\r\n <option value=\"1\">کاربر</option>\r\n <option value=\"2\">اپراتور</option>\r\n <option value=\"0\">مدیر</option>\r\n </select>\r\n </div>\r\n <!-- <small v-if=\"errors.role\" class=\"text-danger\">{{\r\n errors.role\r\n }}</small> -->\r\n </div>\r\n </BCol>\r\n\r\n <BCol class=\"col-lg-6\">\r\n <div class=\"form-group\">\r\n <label class=\"form-label\">رمز عبور</label>\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">\r\n <i class=\"feather icon-lock\"></i>\r\n </span>\r\n <input\r\n v-model=\"Password\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n placeholder=\"رمز عبور خود را وارد نمایید\"\r\n />\r\n </div>\r\n <!-- <small v-if=\"errors.password\" class=\"text-danger\">{{\r\n errors.password\r\n }}</small> -->\r\n </div>\r\n </BCol>\r\n </BRow>\r\n\r\n <BCard style=\"margin-top: 10px\" v-if=\"role == `2`\" class=\"p-4\">\r\n <!-- Access Checkboxes -->\r\n <BRow class=\"g-3 justify-content-center\">\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('user')\"\r\n @change=\"toggleAccess('user')\"\r\n >دسترسی به کاربران</BFormCheckbox\r\n >\r\n </BCol>\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('subjects')\"\r\n @change=\"toggleAccess('subjects')\"\r\n >دسترسی به موضوع ها</BFormCheckbox\r\n >\r\n </BCol>\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('locations')\"\r\n @change=\"toggleAccess('locations')\"\r\n >دسترسی به موقعیت ها</BFormCheckbox\r\n >\r\n </BCol>\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('meeting')\"\r\n @change=\"toggleAccess('meeting')\"\r\n >دسترسی به جلسات</BFormCheckbox\r\n >\r\n </BCol>\r\n <BCol v-if=\"access.includes('meeting')\" md=\"12\">\r\n <BCard class=\"shadow rounded\">\r\n <BCardBody class=\"p-4\">\r\n <h4 class=\"checkbox-label mb-3\">\r\n اپراتور مورد نظر را انتخاب کنید\r\n </h4>\r\n\r\n <BFormGroup class=\"mb-4\">\r\n <BFormInput\r\n placeholder=\"جستجوی اپراتور ها...\"\r\n class=\"search-input\"\r\n v-model=\"UserSearchQuery\"\r\n />\r\n </BFormGroup>\r\n\r\n <div class=\"user-checkbox-list\">\r\n <div class=\"row checkbox-container\">\r\n <BCol\r\n v-for=\"user in filteredUsers\"\r\n :key=\"user.id\"\r\n md=\"4\"\r\n class=\"mb-3\"\r\n >\r\n <BFormRadio\r\n v-model=\"selectedOperator\"\r\n :value=\"user.id\"\r\n class=\"radio-item custom-radio\"\r\n >\r\n <strong>{{ user.name }}</strong>\r\n </BFormRadio>\r\n </BCol>\r\n </div>\r\n </div>\r\n </BCardBody>\r\n </BCard>\r\n </BCol>\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('private_meeting')\"\r\n @change=\"toggleAccess('private_meeting')\"\r\n >دسترسی به جلسات شخصی</BFormCheckbox\r\n >\r\n </BCol>\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('note')\"\r\n @change=\"toggleAccess('note')\"\r\n >دسترسی به یاد داشت ها</BFormCheckbox\r\n >\r\n </BCol>\r\n </BRow>\r\n </BCard>\r\n\r\n <!-- Submit Buttons -->\r\n <div\r\n class=\"d-flex justify-content-end gap-2\"\r\n style=\"margin-top: 20px\"\r\n >\r\n <button type=\"submit\" class=\"btn btn-primary\" :disabled=\"loading\">\r\n <span\r\n v-if=\"loading\"\r\n class=\"spinner-border spinner-border-sm\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n ذخیره\r\n </button>\r\n </div>\r\n </form>\r\n </BCard>\r\n </BRow>\r\n </Layout>\r\n</template>\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}