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, computed } 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 selectedOperator = 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 users.value; // Return all users if search query is empty\n return users.value.filter(user => user.name.toLowerCase().includes(UserSearchQuery.value.toLowerCase()));\n });\n const getUsers = () => {\n axios.get(`${url}/admin/users`, {\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 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 selectedOperator\n };\n }\n};","map":{"version":3,"names":["Layout","onMounted","ref","computed","useRoute","axios","name","components","setup","users","token","localStorage","getItem","url","process","env","VUE_APP_ROOT_URL","route","user","role","mobile","access","password","UserSearchQuery","selectedOperator","getUser","get","params","id","headers","Authorization","then","resp","console","log","value","data","JSON","parse","catch","error","filteredUsers","filter","toLowerCase","includes","getUsers","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, computed } 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 selectedOperator = 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 users.value; // Return all users if search query is empty\r\n return users.value.filter((user) =>\r\n user.name.toLowerCase().includes(UserSearchQuery.value.toLowerCase())\r\n );\r\n });\r\n\r\n const getUsers = () => {\r\n axios\r\n .get(`${url}/admin/users`, {\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\r\n users.value = resp.data;\r\n console.log(users.value);\r\n })\r\n .catch((error) => {\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 selectedOperator,\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\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\r\n <BCol cols=\"6\" class=\"d-flex\">\r\n <BFormCheckbox\r\n class=\"ml-3\"\r\n :checked=\"access?.includes('meeting') || access?.includes('private_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\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('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":[]}