{"version":3,"sources":["webpack:///./src/pages/manage/invitations/index.vue","webpack:///./src/pages/manage/invitations/index.vue?91d3","webpack:///./src/pages/manage/invitations/index.vue?2551","webpack:///./src/pages/manage/invitations/index.vue?d8f4","webpack:///./src/data/List/InvitationListDataSource.ts"],"names":["scopedSlots","key","fn","_c","attrs","on","$event","instanceStateId","_vm","addItem","staticClass","_v","staticRenderFns","render","Home","Vue","constructor","userModule","dataSource","InvitationListDataSource","pageIndex","pageSize","createItemModel","userProfileId","profile","id","templatePath","subject","professionalArea","firstName","lastName","email","phone","countryId","cityId","createItemFields","editor","type","label","name","validations","required","placeholder","emailAddres","mask","config","getItems","labelKeyName","valueKeyName","grid","cols","md","hint","persistentHint","watchers","changeModel","changeItems","changeAttrs","countryDataSource","ListDataSource","className","orderFieldName","orderFieldDirection","filter","JSON","stringify","fieldName","fieldValue","cityDataSource","createItemActions","model","filterCities","async","this","countryIdCache","get","items","getCities","getCountries","activateOrDisactivateCity","disabled","downloadXlsx","getInviteCaption","item","text","to","copyLink","invitation","navigator","clipboard","writeText","guid","$message","getInstanceStateColor","dataList","loading","invite","event","updateField","__decorate","Ref","Component","components","DataList","component","super","data","axios","baseUrl","responseType","url","window","URL","createObjectURL","link","document","createElement","download","href","body","appendChild","click","removeChild","err","post","error"],"mappings":"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","file":"js/chunk-af1d40ce.682aebf3.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('data-list',{ref:\"dataList\",attrs:{\"title\":\"Приглашения\",\"breadcrumbs\":_vm.breadcrumbs,\"customStateColor\":_vm.getInstanceStateColor,\"data-source\":_vm.dataSource,\"custom-create-item-model\":_vm.createItemModel,\"custom-create-item-fields\":_vm.createItemFields,\"create-item-actions\":_vm.createItemActions},scopedSlots:_vm._u([{key:\"fullName\",fn:function(data){return [_c('router-link',{attrs:{\"to\":`/manage/invitations/${data.item.id}`}},[_vm._v(\" \"+_vm._s(data.item.fullName)+\" \")])]}},{key:\"actions\",fn:function(data){return [_c('v-menu',{attrs:{\"transition\":\"scale-transition\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-dots-vertical \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return data.getObject(data.item)}}},[_c('v-list-item-title',[_vm._v(\"Редактировать\")])],1),(_vm.userModule.isAdmin)?_c('v-list-item',{on:{\"click\":function($event){return data.remove(data.item)}}},[_c('v-list-item-title',[_vm._v(\"Удалить\")])],1):_vm._e(),(data.item.instanceStateId != 11)?_c('v-list-item',{on:{\"click\":function($event){return _vm.invite(data.item)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.getInviteCaption(data.item))+\" \")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.copyLink(data.item)}}},[_c('v-list-item-title',[_vm._v(\"Скопировать ссылку\")])],1),(_vm.userModule.isAdmin)?_c('v-list-item',[_c('div',[_c('v-btn-toggle',{attrs:{\"value\":data.item.instanceStateId,\"dense\":\"\"},on:{\"change\":function($event){return _vm.setInstanceState(data.item, $event)}}},[_c('v-btn',{attrs:{\"value\":1,\"small\":\"\"}},[_vm._v(\"Создан\")]),_c('v-btn',{attrs:{\"value\":200,\"small\":\"\"}},[_vm._v(\"Отправлен\")]),_c('v-btn',{attrs:{\"value\":11,\"small\":\"\"}},[_vm._v(\"Принят\")])],1)],1)]):_vm._e()],1)],1)]}},{key:\"add\",fn:function({addItem}){return [_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.download}},[_vm._v(\" Скачать excel \")]),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"dark\":\"\",\"depressed\":\"\",\"color\":\"success\"},on:{\"click\":addItem}},[_vm._v(\" Добавить \")])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Ref } from \"vue-property-decorator\";\nimport { InvitationListDataSource } from \"@/data/List/InvitationListDataSource\";\nimport DataList from \"@/components/common/data/list.vue\";\nimport userModule from \"@/store/modules/user\";\nimport { emailAddres, instaceStates, required } from \"@/cms-services/consts\";\nimport { ListDataSource } from \"@/data/List/ListDataSource\";\n@Component({\n components: {\n DataList,\n },\n})\nexport default class Home extends Vue {\n @Ref(\"dataList\") dataList!: DataList;\n $message: any;\n countryIdCache: any;\n userModule = userModule;\n dataSource: InvitationListDataSource = new InvitationListDataSource({\n pageIndex: 1,\n pageSize: 100,\n });\n\n createItemModel: any = {\n userProfileId: +userModule.profile.id,\n templatePath: \"Mail/Invite\",\n subject: \"Приглашение в систему\",\n professionalArea:\"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phone: \"\",\n countryId: null,\n cityId: null,\n }\n\n async download() {\n await this.dataSource.downloadXlsx();\n }\n\n createItemFields: any = [\n {\n editor: \"string\",\n attrs: {\n type: \"text\",\n label: \"Фамилия\",\n },\n name: \"lastName\",\n validations: [required()],\n },\n {\n editor: \"string\",\n attrs: {\n type: \"text\",\n label: \"Имя\",\n },\n name: \"firstName\",\n validations: [required()],\n },\n\n {\n editor: \"string\",\n attrs: {\n type: \"text\",\n label: \"Отчество\",\n },\n name: \"patronymic\",\n },\n {\n editor: \"string\",\n attrs: {\n label: \"Email\",\n placeholder: \"Введите Email\",\n type: \"email\",\n },\n name: \"email\",\n validations: [required(), emailAddres()],\n },\n {\n editor: \"string\",\n attrs: {\n type: \"text\",\n label: \"Мобильный телефон\",\n mask: \"+7(###) ###-##-##\",\n },\n name: \"mobilePhone\",\n validations: [required()],\n },\n {\n editor: \"auto-complete-select\",\n attrs: {\n label: \"Страна\",\n },\n config: {\n getItems: \"getCountries\",\n labelKeyName: \"name\",\n valueKeyName: \"id\",\n },\n grid: { cols: 12, md: 6 },\n name: \"countryId\",\n validations: [required()],\n },\n {\n editor: \"auto-complete-select\",\n attrs: {\n label: \"Город\",\n hint: \"Чтобы выбрать город выберите страну\",\n persistentHint: true,\n },\n config: {\n getItems: \"getCities\",\n labelKeyName: \"name\",\n valueKeyName: \"id\",\n },\n grid: { cols: 12, md: 6 },\n name: \"cityId\",\n watchers: [\n {\n changeModel: \"watchCountry\",\n changeItems: \"filterCities\",\n changeAttrs: \"activateOrDisactivateCity\",\n },\n ],\n validations: [required()],\n },\n {\n editor: \"string\",\n attrs: {\n type: \"text\",\n label: \"Специализация\",\n },\n name: \"professionalArea\",\n validations: [required()],\n }\n ];\n\n countryDataSource: ListDataSource = new ListDataSource({\n className: \"region\",\n config: {\n pageSize: 1000,\n orderFieldName: \"Name\",\n orderFieldDirection: \"Asc\",\n filter: JSON.stringify([\n {\n fieldName: \"regionTypeId\",\n fieldValue: 1,\n },\n ]),\n },\n });\n cityDataSource: ListDataSource = new ListDataSource({\n className: \"region\",\n config: {\n pageSize: 10000,\n orderFieldName: \"Name\",\n orderFieldDirection: \"Asc\",\n },\n });\n createItemActions: any = {\n async watchCountry(model) {\n if (!!model.countryId) return;\n model.cityId = null;\n },\n filterCities: async (model: any) => {\n if (!model.countryId) return [];\n if (model.countryId == this.countryIdCache)\n return this.cityDataSource.items;\n\n this.countryIdCache = model.countryId;\n this.cityDataSource.config.filter = JSON.stringify([\n {\n fieldName: \"parentId\",\n fieldValue: model.countryId,\n },\n ]);\n await this.cityDataSource.get();\n return this.cityDataSource.items;\n },\n getCities: () => this.cityDataSource.items,\n getCountries: () => this.countryDataSource.items,\n activateOrDisactivateCity: (model: any) => {\n return !!model.countryId\n ? {\n label: \"Город *\",\n }\n : {\n label: \"Город *\",\n disabled: true,\n hint: \"Чтобы выбрать город выберите страну\",\n persistentHint: true,\n };\n },\n };\n\n getInviteCaption(item) {\n switch (item.instanceStateId) {\n case 200:\n return \"Пригласить повторно\";\n case 1:\n return \"Пригласить\";\n }\n }\n\n get breadcrumbs() {\n return [\n {\n text: \"Главная\",\n to: \"/\",\n },\n {\n text: \"Приглашения\",\n disabled: true,\n },\n ];\n }\n\n copyLink(invitation: any) {\n navigator.clipboard.writeText(\n `https://ds-world.ru/login/register?inviteGuid=${invitation.guid}`,\n );\n this.$message(`Ссылка на приглашение успешно скопирована в буфер обмена`);\n }\n\n getInstanceStateColor(instanceStateId): string {\n switch (instanceStateId) {\n case 200:\n return \"info\";\n case 1:\n return \"warning\";\n case 11:\n return \"success\";\n default:\n return \"default\";\n }\n }\n\n async invite(item) {\n this.dataList.loading = true;\n await this.dataSource.invite(item.id);\n this.dataList.loading = false;\n item.instanceStateId = 200;\n this.$message(`Приглашение успешно отправлено на почту ${item.email}`);\n }\n\n async setInstanceState(item, event) {\n await this.dataSource.updateField(item.id, [\n {\n fieldName: \"instanceStateId\",\n fieldValue: event,\n },\n ]);\n }\n async created() {\n await this.countryDataSource.get();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2f49d27e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { IBaseConfig } from \"@/ioc/types\";\nimport axios from \"axios\";\nimport { ListDataSource } from \"./ListDataSource\";\nimport {toQueryString} from \"@/cms-services/helpers\";\n\nexport class InvitationListDataSource extends ListDataSource {\n constructor(config: IBaseConfig) {\n super({\n className: \"invitation\",\n config,\n });\n }\n\n\n\n public async downloadXlsx() {\n try {\n const { data } = await axios.get(\n `${this.baseUrl}/download/xlsx/`,\n {\n responseType: \"blob\",\n },\n );\n const url = window.URL.createObjectURL(data);\n var link = document.createElement(\"a\");\n link.download = \"Статистика.xlsx\";\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return data;\n } catch (err) {\n throw err;\n }\n }\n\n public async invite(id: number) {\n try {\n await axios.post(`${this.baseUrl}/${id}/invite`);\n } catch (error) {\n throw error;\n }\n }\n}\n"],"sourceRoot":""}