Init project
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
// Contact
|
||||
const data = {
|
||||
events: [
|
||||
{
|
||||
id: 1,
|
||||
title: 'My Event',
|
||||
startDate: new Date(new Date() - 1000 * 60 * 60 * 24 * 3),
|
||||
endDate: new Date(new Date() - 1000 * 60 * 60 * 24 * 2),
|
||||
url: '',
|
||||
classes: 'event-success',
|
||||
label: 'business'
|
||||
}
|
||||
],
|
||||
labels: [
|
||||
{
|
||||
text: 'Business',
|
||||
value : 'business',
|
||||
color: 'success'
|
||||
},
|
||||
{
|
||||
text: 'Work',
|
||||
value: 'work',
|
||||
color: 'warning'
|
||||
},
|
||||
{
|
||||
text: 'Personal',
|
||||
value: 'personal',
|
||||
color: 'danger'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// GET : Calendar Events
|
||||
mock.onGet('/api/apps/calendar/events').reply(() => {
|
||||
return [200, data.events]
|
||||
})
|
||||
|
||||
// POST : Add new events
|
||||
mock.onPost('/api/apps/calendar/events/').reply((request) => {
|
||||
|
||||
// Get event from post data
|
||||
const event = JSON.parse(request.data).event
|
||||
|
||||
const length = data.events.length
|
||||
let lastIndex = 0
|
||||
if (length) {
|
||||
lastIndex = data.events[length - 1].id
|
||||
}
|
||||
event.id = lastIndex + 1
|
||||
|
||||
data.events.push(event)
|
||||
|
||||
return [201, {id: event.id}]
|
||||
})
|
||||
|
||||
// GET: Fetch Calendar Labels
|
||||
mock.onGet('api/apps/calendar/labels').reply(() => {
|
||||
return [200, data.labels]
|
||||
})
|
||||
|
||||
// POST: Update Event
|
||||
mock.onPost(/\/api\/apps\/calendar\/event\/\d+/).reply((request) => {
|
||||
|
||||
const e = JSON.parse(request.data).event
|
||||
e.startDate = new Date(e.startDate)
|
||||
e.endDate = new Date(e.endDate)
|
||||
|
||||
const eventId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
|
||||
const event = data.events.find((event) => event.id == eventId)
|
||||
Object.assign(event, e)
|
||||
|
||||
return [200, event]
|
||||
})
|
||||
|
||||
// DELETE: Remove Event
|
||||
mock.onDelete(/\/api\/apps\/calendar\/event\/\d+/).reply((request) => {
|
||||
|
||||
const eventId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const eventIndex = data.events.findIndex((event) => event.id == eventId)
|
||||
data.events.splice(eventIndex, 1)
|
||||
return [200]
|
||||
})
|
||||
|
||||
// POST: Update Dragged Event
|
||||
mock.onPost(/\/api\/apps\/calendar\/event\/dragged\/\d+/).reply((request) => {
|
||||
|
||||
const eventId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
const event = data.events.find((event) => event.id == eventId)
|
||||
const payload = JSON.parse(request.data).payload
|
||||
|
||||
const draggedDateStart = new Date(payload.date)
|
||||
|
||||
const eventStartDate = new Date(event.startDate).getTime()
|
||||
const eventEndDate = new Date(event.endDate).getTime()
|
||||
|
||||
const diff = draggedDateStart - eventStartDate
|
||||
const newEndDate = new Date(eventEndDate + diff)
|
||||
event.startDate = draggedDateStart
|
||||
event.endDate = newEndDate
|
||||
|
||||
return [200, event]
|
||||
})
|
||||
@@ -0,0 +1,288 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
// Contact
|
||||
const data = {
|
||||
contacts: [
|
||||
{
|
||||
uid: 1,
|
||||
displayName: 'Felecia Rower',
|
||||
about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
status: 'offline'
|
||||
},
|
||||
{
|
||||
uid: 2,
|
||||
displayName: 'Adalberto Granzin',
|
||||
about: 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
status: 'do not disturb'
|
||||
},
|
||||
{
|
||||
uid: 3,
|
||||
displayName: 'Joaquina Weisenborn',
|
||||
about: 'Soufflé soufflé caramels sweet roll. Jelly lollipop sesame snaps bear claw jelly beans sugar plum sugar plum.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
status: 'do not disturb'
|
||||
},
|
||||
{
|
||||
uid: 4,
|
||||
displayName: 'Verla Morgano',
|
||||
about: 'Chupa chups candy canes chocolate bar marshmallow liquorice muffin. Lemon drops oat cake tart liquorice tart cookie. Jelly-o cookie tootsie roll halvah.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
status: 'online'
|
||||
},
|
||||
{
|
||||
uid: 5,
|
||||
displayName: 'Margot Henschke',
|
||||
about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
status: 'do not disturb'
|
||||
},
|
||||
{
|
||||
uid: 6,
|
||||
displayName: 'Sal Piggee',
|
||||
about: 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
status: 'online'
|
||||
},
|
||||
{
|
||||
uid: 7,
|
||||
displayName: 'Miguel Guelff',
|
||||
about: 'Biscuit powder oat cake donut brownie ice cream I love soufflé. I love tootsie roll I love powder tootsie roll.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-7.jpg'),
|
||||
status: 'online'
|
||||
},
|
||||
{
|
||||
uid: 8,
|
||||
displayName: 'Mauro Elenbaas',
|
||||
about: 'Bear claw ice cream lollipop gingerbread carrot cake. Brownie gummi bears chocolate muffin croissant jelly I love marzipan wafer.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-8.jpg'),
|
||||
status: 'away'
|
||||
},
|
||||
{
|
||||
uid: 9,
|
||||
displayName: 'Bridgett Omohundro',
|
||||
about: 'Gummies gummi bears I love candy icing apple pie I love marzipan bear claw. I love tart biscuit I love candy canes pudding chupa chups liquorice croissant.',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-9.jpg'),
|
||||
status: 'offline'
|
||||
},
|
||||
{
|
||||
uid: 10,
|
||||
displayName: 'Zenia Jacobs',
|
||||
about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-10.jpg'),
|
||||
status: 'away'
|
||||
}
|
||||
],
|
||||
chats: {
|
||||
1: {
|
||||
isPinned: true,
|
||||
msg: [
|
||||
{
|
||||
textContent: 'How can we help? We\'re here for you!',
|
||||
time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Hey John, I am looking for the best admin template. Could you please help me to find it out?',
|
||||
time: 'Mon Dec 10 2018 07:45:23 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'It should be Bootstrap 4 compatible.',
|
||||
time: 'Mon Dec 10 2018 07:45:55 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Absolutely!',
|
||||
time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Modern admin is the responsive bootstrap 4 admin template.!',
|
||||
time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Looks clean and fresh UI.',
|
||||
time: 'Mon Dec 10 2018 07:46:23 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'It\'s perfect for my next project.',
|
||||
time: 'Mon Dec 10 2018 07:46:33 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'How can I purchase it?',
|
||||
time: 'Mon Dec 10 2018 07:46:43 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Thanks, from ThemeForest.',
|
||||
time: 'Mon Dec 10 2018 07:46:53 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'I will purchase it for sure. 👍',
|
||||
time: 'Mon Dec 10 2018 07:47:00 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: false
|
||||
}
|
||||
]
|
||||
},
|
||||
2: {
|
||||
isPinned: false,
|
||||
msg: [
|
||||
{
|
||||
textContent: 'Hi',
|
||||
time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Hello. How can I help You?',
|
||||
time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'Can I get details of my last transaction I made last month?',
|
||||
time: 'Mon Dec 11 2018 07:46:10 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'We need to check if we can provide you such information.',
|
||||
time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'I will inform you as I get update on this.',
|
||||
time: 'Mon Dec 11 2018 07:46:15 GMT+0000 (GMT)',
|
||||
isSent: false,
|
||||
isSeen: true
|
||||
},
|
||||
{
|
||||
textContent: 'If it takes long you can mail me at my mail address.',
|
||||
time: 'Mon Dec 11 2018 07:46:20 GMT+0000 (GMT)',
|
||||
isSent: true,
|
||||
isSeen: false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Functions
|
||||
const chatDataOfUser = (id) => {
|
||||
return data.chats[Object.keys(data.chats).find(key => key == id)]
|
||||
}
|
||||
|
||||
// GET : Contacts List
|
||||
mock.onGet('/api/apps/chat/contacts').reply((request) => {
|
||||
|
||||
// Filter contact based on search query
|
||||
const filteredContacts = data.contacts.filter((contact) => {
|
||||
return contact.displayName.toLowerCase().includes(request.params.q.toLowerCase())
|
||||
})
|
||||
|
||||
return [200, filteredContacts]
|
||||
})
|
||||
|
||||
|
||||
// GET : Get All Contacts
|
||||
mock.onGet('/api/apps/chat/contacts').reply(() => {
|
||||
return [200, data.contacts]
|
||||
})
|
||||
|
||||
// GET : Get All Chats
|
||||
mock.onGet('/api/apps/chat/chats').reply(() => {
|
||||
return [200, data.chats]
|
||||
})
|
||||
|
||||
// GET : Chats List
|
||||
mock.onGet('/api/apps/chat/chat-contacts').reply((request) => {
|
||||
|
||||
const chatContactsArray = data.contacts.filter((contact) => {
|
||||
if (data.chats[contact.uid]) return data.chats[contact.uid] && contact.displayName.toLowerCase().includes(request.params.q.toLowerCase())
|
||||
})
|
||||
|
||||
return [200, chatContactsArray]
|
||||
})
|
||||
|
||||
|
||||
// POST : Mark all msgs as seen
|
||||
mock.onPost('/api/apps/chat/mark-all-seen/').reply((request) => {
|
||||
const contactId = JSON.parse(request.data).contactId
|
||||
|
||||
|
||||
// Get chat data
|
||||
const chatLog = chatDataOfUser(contactId)
|
||||
|
||||
// console.log(chatLog);
|
||||
chatDataOfUser(1) == chatLog
|
||||
|
||||
// Loop over all msg & mark them as seen
|
||||
chatLog.msg.forEach((msg) => {
|
||||
msg.isSeen = true
|
||||
})
|
||||
|
||||
// Set unsen Msg flag to 0
|
||||
chatLog.unseenMsg = 0
|
||||
|
||||
// console.log(data.chats[0] == chatDataOfUser(contactId));
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
|
||||
mock.onPost('/api/apps/chat/set-pinned/').reply((request) => {
|
||||
const {contactId, value} = JSON.parse(request.data)
|
||||
const index = Object.keys(data.chats).find(key => key == contactId)
|
||||
data.chats[index].isPinned = value
|
||||
return [200, data.chats[index]]
|
||||
})
|
||||
|
||||
|
||||
mock.onPost('/api/apps/chat/msg').reply((request) => {
|
||||
const payload = JSON.parse(request.data).payload
|
||||
|
||||
// Get chat data
|
||||
payload.chatData = chatDataOfUser(payload.id)
|
||||
|
||||
if (payload.chatData) {
|
||||
// If there's already chat. Push msg to existing chat
|
||||
data.chats[Object.keys(data.chats).find(key => key == payload.id)].msg.push(payload.msg)
|
||||
} else {
|
||||
// Create New chat and add msg
|
||||
data.chats[payload.id] = {isPinned: payload.isPinned,
|
||||
msg: [payload.msg]}
|
||||
}
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
|
||||
mock.onPost('/api/apps/chat/mark-all-seen').reply((request) => {
|
||||
const uid = JSON.parse(request.data).id
|
||||
|
||||
// Get chat data
|
||||
const chatLog = chatDataOfUser(uid)
|
||||
|
||||
chatLog.msg.forEach((msg) => {
|
||||
msg.isSeen = true
|
||||
})
|
||||
|
||||
return [200]
|
||||
})
|
||||
@@ -0,0 +1,691 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
// Contact
|
||||
const data = {
|
||||
emails: [
|
||||
{
|
||||
id: 1,
|
||||
sender: 'tommys@mail.com',
|
||||
sender_name: 'سید علی حنایی',
|
||||
to: ['johndoe@mail.com'],
|
||||
// require('@/assets/images/portrait/small/avatar-s-1.jpg')
|
||||
img: require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
subject: 'گواهی سپرده کالایی سکه',
|
||||
cc: [],
|
||||
bcc: [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: ['log.txt', 'sheet.xls'],
|
||||
isStarred: false,
|
||||
labels: ['private'],
|
||||
time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)',
|
||||
replies: [],
|
||||
mailFolder: 'inbox',
|
||||
unread: false
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
sender: 'tressag@mail.com',
|
||||
sender_name: 'محمد حسین عزیزان',
|
||||
to: ['johndoe@mail.com'],
|
||||
img: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
subject: ' نه تنها حجم و ارزش معاملات و عرضه و تقاضا ثبت',
|
||||
cc: ['vrushankbrahmshatriya@mail.com'],
|
||||
bcc: ['menka@mail.com'],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: ['report.docx'],
|
||||
isStarred: true,
|
||||
labels: ['company', 'private'],
|
||||
time: 'Mon Dec 10 2018 07:55:00 GMT+0000 (GMT)',
|
||||
replies: [],
|
||||
mailFolder: 'inbox',
|
||||
unread: true
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
sender: 'hettiem@mail.com',
|
||||
sender_name: 'مهدی بنی لوحی',
|
||||
to: ['johndoe@mail.com', 'hello@pixinvent.net'],
|
||||
img: require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
subject: ' نکته مهم دیگر این است که وقتی بر پایه ',
|
||||
cc: [],
|
||||
bcc: [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: [],
|
||||
isStarred: false,
|
||||
labels: ['company'],
|
||||
time: 'Mon Dec 10 2018 08:35:00 GMT+0000 (GMT)',
|
||||
replies: [
|
||||
{
|
||||
id: 4,
|
||||
sender: 'johndoe@mail.com',
|
||||
sender_name: 'محمد امین غلامی',
|
||||
to: ['hettiem@mail.com'],
|
||||
img: require('@/assets/images/portrait/small/avatar-s-11.jpg'),
|
||||
subject: '',
|
||||
cc: [],
|
||||
bcc: [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: [],
|
||||
isStarred: false,
|
||||
labels: [],
|
||||
time: 'Mon Dec 10 2018 10:56:00 GMT+0000 (GMT)',
|
||||
replies: [],
|
||||
mailFolder: '',
|
||||
unread: false
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
sender: 'hettiem@mail.com',
|
||||
sender_name: 'احمد رضا مقتدایی',
|
||||
to: ['johndoe@mail.com'],
|
||||
img: require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
subject: '',
|
||||
cc: [],
|
||||
bcc: [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: ['data.docx'],
|
||||
isStarred: false,
|
||||
labels: [],
|
||||
time: 'Mon Dec 10 2018 11:25:00 GMT+0000 (GMT)',
|
||||
replies: [],
|
||||
mailFolder: '',
|
||||
unread: false
|
||||
}
|
||||
],
|
||||
mailFolder: 'spam',
|
||||
unread: false
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
sender: 'louettae@mail.com',
|
||||
sender_name: 'حبیب فکاری',
|
||||
to: ['johndoe@mail.com'],
|
||||
img: require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
subject: 'این عضو هیات مدیره بانک',
|
||||
cc: [],
|
||||
bcc: [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
attachments: ['report.docx'],
|
||||
isStarred: false,
|
||||
labels: ['important'],
|
||||
time: 'Mon Dec 11 2018 10:55:00 GMT+0000 (GMT)',
|
||||
replies: [],
|
||||
mailFolder: 'inbox',
|
||||
unread: false
|
||||
},
|
||||
{
|
||||
'id': 11,
|
||||
'sender': 'bposvner0@zdnet.com',
|
||||
'sender_name': 'علی فریدی زاده',
|
||||
'to': ['johndoe@dot.gov'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-11.jpg'),
|
||||
'subject': ' در سبد سرمایه گذاری افراد را پیدا می کند',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['OrciMaurisLacinia.avi'],
|
||||
'isStarred': true,
|
||||
'labels': ['private'],
|
||||
'time': 'Tue Dec 12 2018 11:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'spam',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 12,
|
||||
'sender': 'rgilder1@illinois.edu',
|
||||
'sender_name': 'علیرضا کراری',
|
||||
'to': ['johndoe@google.co.uk'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'subject': ' نحوه نگهداری آن ندارد و برای خرید نیز نیازی',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['QuisOdio.txt'],
|
||||
'isStarred': false,
|
||||
'labels': ['personal'],
|
||||
'time': 'Thu Dec 13 2018 08:25:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'trash',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 13,
|
||||
'sender': 'swilby2@yandex.ru',
|
||||
'sender_name': 'مهدی ترابی',
|
||||
'to': ['johndoe@altervista.org'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
'subject': 'قیمت سکه در بازار سنتی گفت',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['NecMolestieSed.tiff'],
|
||||
'isStarred': false,
|
||||
'labels': ['company'],
|
||||
'time': 'Fri Dec 14 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'draft',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 14,
|
||||
'sender': 'wmannering3@mozilla.org',
|
||||
'sender_name': 'سعید اسماعیلی',
|
||||
'to': ['johndoe@sciencedaily.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-13.jpg'),
|
||||
'subject': ' سپرده کالایی افزایش یابد تا شاهد ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Nulla.gif'],
|
||||
'isStarred': false,
|
||||
'labels': ['private'],
|
||||
'time': 'Tue Dec 15 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'inbox',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 15,
|
||||
'sender': 'hfrostdyke4@scientificamerican.com',
|
||||
'sender_name': 'علیرضا لندی ',
|
||||
'to': ['johndoe@weibo.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-13.jpg'),
|
||||
'subject': ' تحویل داده و پس از تایید اصالت ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['SapienQuisLibero.tiff'],
|
||||
'isStarred': true,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 01 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'trash',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 16,
|
||||
'sender': 'pjentzsch5@tamu.edu',
|
||||
'sender_name': 'مجید طاهری',
|
||||
'to': ['johndoe@skype.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'subject': 'دیگر این است که وقتی بر پایه',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['UtNulla.avi'],
|
||||
'isStarred': true,
|
||||
'labels': ['important'],
|
||||
'time': 'Tue Jan 03 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'draft',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 17,
|
||||
'sender': 'lminghetti6@yale.edu',
|
||||
'sender_name': 'محمد اشجع',
|
||||
'to': ['johndoe@fda.gov'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
'subject': 'صنعت مدیریت دارایی در کشور ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['ElementumLigula.mp3'],
|
||||
'isStarred': true,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 03 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'trash',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 18,
|
||||
'sender': 'efinessy7@sbwire.com',
|
||||
'sender_name': 'محمد رضا پناهی',
|
||||
'to': ['johndoe@odnoklassniki.ru'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
'subject': ' حال انجام امور نهایی و تکمیل الحاقیه قرارداد',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Hac.xls'],
|
||||
'isStarred': true,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 04 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'sent',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 19,
|
||||
'sender': 'tmckeurton8@163.com',
|
||||
'sender_name': 'ابراهیم اسپوتین',
|
||||
'to': ['johndoe@nifty.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-14.jpg'),
|
||||
'subject': 'عضو هیات مدیره بانک آینده',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['SedAnteVivamus.avi'],
|
||||
'isStarred': true,
|
||||
'labels': ['important'],
|
||||
'time': 'Tue Jan 05 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'draft',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 20,
|
||||
'sender': 'ebegg9@wikia.com',
|
||||
'sender_name': 'شهاب موسوی',
|
||||
'to': ['johndoe@51.la'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-19.jpg'),
|
||||
'subject': 'اهل دنیای موجود طراحی',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Eget.jpeg'],
|
||||
'isStarred': false,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 06 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'inbox',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 21,
|
||||
'sender': 'mspata@sina.com.cn',
|
||||
'sender_name': 'امیر قربانی',
|
||||
'to': ['johndoe@oracle.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-9.jpg'),
|
||||
'subject': 'سکه و نحوه نگهداری آن ندارد',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Felis.xls'],
|
||||
'isStarred': false,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 07 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'inbox',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 22,
|
||||
'sender': 'cprandob@rambler.ru',
|
||||
'sender_name': 'مرضیه محسنی',
|
||||
'to': ['johndoe@vistaprint.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
'subject': 'شاهد بازگشایی نماد معاملاتی',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['HabitasJanlateaDictumst.avi'],
|
||||
'isStarred': false,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 08 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'sent',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 23,
|
||||
'sender': 'nbartlesc@merriam-webster.com',
|
||||
'sender_name': 'احمد رضا شایسته',
|
||||
'to': ['johndoe@si.edu'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-9.jpg'),
|
||||
'subject': ' می توانند در این بازار محصولی',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['UltricesPosuere.mpeg'],
|
||||
'isStarred': false,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 09 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'spam',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 24,
|
||||
'sender': 'rgennd@dedecms.com',
|
||||
'sender_name': 'علی منتظر',
|
||||
'to': ['johndoe@about.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'subject': ' افزایش شفافیت در معاملات سکه',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Id.tiff'],
|
||||
'isStarred': true,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 10 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'spam',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 25,
|
||||
'sender': 'eramelote@webeden.co.uk',
|
||||
'sender_name': 'محمد بروجردی',
|
||||
'to': ['johndoe@tinypic.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'subject': 'طراحی اساسا مورد استفاده',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Augue.mp3'],
|
||||
'isStarred': true,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 11 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'spam',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 26,
|
||||
'sender': 'pcuzenf@mediafire.com',
|
||||
'sender_name': 'کاظم فیاض',
|
||||
'to': ['johndoe@google.es'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-9.jpg'),
|
||||
'subject': ' ثبت می شود و به مرور با ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['Leo.avi'],
|
||||
'isStarred': false,
|
||||
'labels': ['private'],
|
||||
'time': 'Tue Jan 12 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'spam',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 27,
|
||||
'sender': 'abaldersong@utexas.edu',
|
||||
'sender_name': 'محمد رضایی',
|
||||
'to': ['johndoe@ow.ly'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'subject': 'تسویه حساب سفارش #856620',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
'attachments': ['Interdum.doc'],
|
||||
'isStarred': true,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 13 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'inbox',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 28,
|
||||
'sender': 'dmallallh@ask.com',
|
||||
'sender_name': 'کاظم فیاض',
|
||||
'to': ['johndoe@furl.net'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
'subject': ' سبد سرمایه گذاری',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['AdipiscingElit.ppt'],
|
||||
'isStarred': true,
|
||||
'labels': ['company'],
|
||||
'time': 'Tue Jan 14 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'draft',
|
||||
'unread': true
|
||||
},
|
||||
{
|
||||
'id': 29,
|
||||
'sender': 'nmacgaughyi@aol.com',
|
||||
'sender_name': 'مرتضی لندی',
|
||||
'to': ['johndoe@cnet.com'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'subject': ' خاصی از بابت تایید اصالت سکه ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['AnteIpsumPrimis.ppt'],
|
||||
'isStarred': false,
|
||||
'labels': ['private'],
|
||||
'time': 'Tue Jan 16 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'trash',
|
||||
'unread': false
|
||||
},
|
||||
{
|
||||
'id': 30,
|
||||
'sender': 'douldcottj@yellowpages.com',
|
||||
'sender_name': 'علی منتظر',
|
||||
'to': ['johndoe@github.io'],
|
||||
'img': require('@/assets/images/portrait/small/avatar-s-19.jpg'),
|
||||
'subject': 'ر حال انجام امور نهایی و تکمیل الحاقیه ',
|
||||
'cc': [],
|
||||
'bcc': [],
|
||||
'message': '<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.</p>',
|
||||
|
||||
'attachments': ['EratFermentum.mpeg'],
|
||||
'isStarred': true,
|
||||
'labels': ['personal'],
|
||||
'time': 'Tue Jan 17 2018 10:55:00 GMT+0000 (GMT)',
|
||||
'replies': [],
|
||||
'mailFolder': 'trash',
|
||||
'unread': false
|
||||
}
|
||||
],
|
||||
emailTags: [
|
||||
{
|
||||
text: 'شخصی',
|
||||
value : 'personal',
|
||||
color:'success'
|
||||
},
|
||||
{
|
||||
text: 'سفارشات',
|
||||
value: 'company',
|
||||
color:'primary'
|
||||
},
|
||||
{
|
||||
text: 'فوری',
|
||||
value: 'important',
|
||||
color:'warning'
|
||||
},
|
||||
{
|
||||
text: 'مالی',
|
||||
value: 'private',
|
||||
color:'danger'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// GET : Emails
|
||||
mock.onGet('api/apps/email/mails').reply((request) => {
|
||||
|
||||
const filter = request.params.filter
|
||||
|
||||
const filteredEmails = data.emails.filter((email) => {
|
||||
|
||||
if (filter == 'inbox') return email.mailFolder === 'inbox'
|
||||
if (filter === 'sent') return email.mailFolder === 'sent'
|
||||
if (filter === 'draft') return email.mailFolder === 'draft'
|
||||
if (filter === 'starred') return email.isStarred && email.mailFolder !== 'trash'
|
||||
if (filter === 'trash') return email.mailFolder === 'trash'
|
||||
if (filter === 'spam') return email.mailFolder === 'spam'
|
||||
else return email.mailFolder != 'trash' && email.labels.includes(filter)
|
||||
|
||||
}).reverse()
|
||||
|
||||
return [200, JSON.parse(JSON.stringify(filteredEmails))]
|
||||
})
|
||||
|
||||
// GET : Emails
|
||||
mock.onGet('api/apps/email/tags').reply(() => {
|
||||
return [200, data.emailTags]
|
||||
})
|
||||
|
||||
// GET : Unread Mails
|
||||
mock.onGet('/api/apps/email/meta').reply(() => {
|
||||
|
||||
const countUnreadMailFolders = ['inbox', 'spam']
|
||||
|
||||
const meta = {
|
||||
unreadMails: {
|
||||
folder: {},
|
||||
label: {}
|
||||
},
|
||||
draftMails: []
|
||||
}
|
||||
|
||||
data.emails.forEach((mail) => {
|
||||
|
||||
// Count unread mails
|
||||
if (mail.unread) {
|
||||
|
||||
// Add mail id
|
||||
if (countUnreadMailFolders.includes(mail.mailFolder)) {
|
||||
meta.unreadMails.folder[mail.mailFolder] ? meta.unreadMails.folder[mail.mailFolder].push(mail.id) : meta.unreadMails.folder[mail.mailFolder] = [mail.id]
|
||||
}
|
||||
|
||||
// Add mail id
|
||||
mail.labels.forEach((label) => {
|
||||
meta.unreadMails.label[label] ? meta.unreadMails.label[label].push(mail.id) : meta.unreadMails.label[label] = [mail.id]
|
||||
})
|
||||
}
|
||||
|
||||
// Get draft mail count
|
||||
if (mail.mailFolder === 'draft') meta.draftMails.push(mail.id)
|
||||
})
|
||||
|
||||
return [200, meta]
|
||||
})
|
||||
|
||||
|
||||
// POST : Move Mails to another folder
|
||||
mock.onPost('/api/apps/email/move-mails').reply((request) => {
|
||||
const mailsToMove = JSON.parse(request.data).emailIds
|
||||
|
||||
data.emails.forEach((mail) => {
|
||||
if (mailsToMove.includes(mail.id)) mail.mailFolder = JSON.parse(request.data).mailFolder
|
||||
})
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
// POST : Update Mails Labels
|
||||
mock.onPost('/api/apps/email/update-labels').reply((request) => {
|
||||
|
||||
const label = JSON.parse(request.data).label
|
||||
const mailsToUpdate = JSON.parse(request.data).emailIds
|
||||
|
||||
mailsToUpdate.forEach((mailId) => {
|
||||
const mailIndex = data.emails.findIndex((mail) => mail.id == mailId)
|
||||
const labelIndex = data.emails[mailIndex].labels.indexOf(label)
|
||||
|
||||
if (labelIndex == -1) {
|
||||
data.emails[mailIndex].labels.push(label)
|
||||
} else {
|
||||
data.emails[mailIndex].labels.splice(labelIndex, 1)
|
||||
}
|
||||
})
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
// POST : Set Mails Labels for single mail
|
||||
mock.onPost('/api/apps/email/set-labels').reply((request) => {
|
||||
const mailId = JSON.parse(request.data).mailId
|
||||
data.emails.find((mail) => mail.id === mailId).labels = JSON.parse(request.data).labels
|
||||
return [200]
|
||||
})
|
||||
|
||||
// POST : Mark as Unread
|
||||
mock.onPost('/api/apps/email/mark-unread').reply((request) => {
|
||||
const mailsToUpdate = JSON.parse(request.data).emailIds
|
||||
|
||||
mailsToUpdate.forEach((mailId) => {
|
||||
const mailIndex = data.emails.findIndex((mail) => mail.id == mailId)
|
||||
data.emails[mailIndex].unread = JSON.parse(request.data).unreadFlag
|
||||
})
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
// POST : Set starred
|
||||
mock.onPost('/api/apps/email/set-starred').reply((request) => {
|
||||
const mailId = JSON.parse(request.data).mailId
|
||||
|
||||
data.emails.find((mail) => mail.id === mailId).isStarred = JSON.parse(request.data).value
|
||||
|
||||
return [200]
|
||||
})
|
||||
|
||||
// GET: Fetch Calendar Labels
|
||||
// mock.onGet("api/apps/calendar/labels").reply(() => {
|
||||
// return [200, data.labels]
|
||||
// })
|
||||
|
||||
// POST: Update Event
|
||||
// mock.onPost(/\/api\/apps\/calendar\/event\/\d+/).reply((request) => {
|
||||
|
||||
// const eventId = request.url.substring(request.url.lastIndexOf("/")+1)
|
||||
|
||||
// let event = data.events.find((event) => event.id == eventId)
|
||||
// Object.assign(event, JSON.parse(request.data).event)
|
||||
|
||||
// return [200, event]
|
||||
// })
|
||||
|
||||
// DELETE: Remove Event
|
||||
// mock.onDelete(/\/api\/apps\/calendar\/event\/\d+/).reply((request) => {
|
||||
|
||||
// const eventId = request.url.substring(request.url.lastIndexOf("/")+1)
|
||||
|
||||
// const eventIndex = data.events.findIndex((event) => event.id == eventId)
|
||||
// data.events.splice(eventIndex, 1)
|
||||
// return [200]
|
||||
// })
|
||||
|
||||
// POST: Update Dragged Event
|
||||
// mock.onPost(/\/api\/apps\/calendar\/event\/dragged\/\d+/).reply((request) => {
|
||||
|
||||
// const eventId = request.url.substring(request.url.lastIndexOf("/")+1)
|
||||
// let event = data.events.find((event) => event.id == eventId)
|
||||
// const payload = JSON.parse(request.data).payload
|
||||
|
||||
// const draggedDateStart = new Date(payload.date)
|
||||
|
||||
// const eventStartDate = new Date(event.startDate).getTime()
|
||||
// const eventEndDate = new Date(event.endDate).getTime()
|
||||
|
||||
// const diff = draggedDateStart - eventStartDate
|
||||
// const newEndDate = new Date(eventEndDate + diff)
|
||||
// event.startDate = draggedDateStart
|
||||
// event.endDate = newEndDate
|
||||
|
||||
// return [200, event]
|
||||
// })
|
||||
@@ -0,0 +1,4 @@
|
||||
import './chat/index.js'
|
||||
import './calendar/index.js'
|
||||
import './todo/index.js'
|
||||
import './email/index.js'
|
||||
@@ -0,0 +1,198 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
// Contact
|
||||
const data = {
|
||||
tasks: [
|
||||
{
|
||||
'id': 10,
|
||||
'title': 'Refactor Code',
|
||||
'desc': 'Pie liquorice wafer cotton candy danish. Icing topping jelly-o halvah pastry lollipop.',
|
||||
'isImportant': true,
|
||||
'isStarred': false,
|
||||
'tags': ['doc', 'backend'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 11,
|
||||
'title': 'Submit Report',
|
||||
'desc': 'Donut tart toffee cake cookie gingerbread. Sesame snaps brownie sugar plum candy canes muffin cotton candy.',
|
||||
'isImportant': false,
|
||||
'isStarred': true,
|
||||
'tags': ['frontend', 'doc'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 15,
|
||||
'title': 'Send PPT 🎁',
|
||||
'desc': 'Dragée gummi bears tiramisu brownie cookie. Jelly beans pudding marzipan fruitcake muffin. Wafer gummi bears lollipop pudding lollipop biscuit.',
|
||||
'isImportant': true,
|
||||
'isStarred': true,
|
||||
'tags': ['backend', 'doc'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 18,
|
||||
'title': 'Skype Tommy',
|
||||
'desc': 'Tart oat cake sesame snaps lollipop croissant cake biscuit.',
|
||||
'isImportant': false,
|
||||
'isStarred': false,
|
||||
'tags': ['bug'],
|
||||
'isCompleted': true,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 20,
|
||||
'title': 'Pick up Natasha 😁',
|
||||
'desc': 'Sweet roll toffee dragée cotton candy jelly beans halvah gingerbread jelly-o. Ice cream bear claw sugar plum powder.',
|
||||
'isImportant': true,
|
||||
'isStarred': true,
|
||||
'tags': [],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 23,
|
||||
'title': 'Meet Jane ❤️',
|
||||
'desc': 'Toffee sugar plum oat cake tiramisu tart bonbon gingerbread cheesecake cake. ',
|
||||
'isImportant': true,
|
||||
'isStarred': true,
|
||||
'tags': ['frontend', 'backend', 'doc'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
},
|
||||
{
|
||||
'id': 25,
|
||||
'title': 'Promot Products',
|
||||
'desc': 'Gummi bears bear claw cake tiramisu gummies tiramisu apple pie chocolate jujubes. ',
|
||||
'isImportant': true,
|
||||
'isStarred': false,
|
||||
'tags': [],
|
||||
'isCompleted': false,
|
||||
'isTrashed': true
|
||||
},
|
||||
{
|
||||
'id': 28,
|
||||
'title': 'Fix Project',
|
||||
'desc': 'Cookie fruitcake macaroon muffin apple pie chocolate bar toffee oat cake. Icing chocolate danish.',
|
||||
'isImportant': false,
|
||||
'isStarred': false,
|
||||
'tags': ['backend'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': true
|
||||
},
|
||||
{
|
||||
'id': 29,
|
||||
'title': 'Remove redundant files',
|
||||
'desc': 'Brownie jelly beans tootsie roll brownie marshmallow. Sesame snaps halvah marzipan chocolate cake. Icing bear claw pie apple pie.',
|
||||
'isImportant': false,
|
||||
'isStarred': false,
|
||||
'tags': [],
|
||||
'isCompleted': true,
|
||||
'isTrashed': true
|
||||
},
|
||||
{
|
||||
'id': 33,
|
||||
'title': 'Fix Responsiveness 💻',
|
||||
'desc': 'Jelly topping toffee bear claw. Sesame snaps lollipop macaroon croissant cheesecake pastry cupcake.',
|
||||
'isImportant': true,
|
||||
'isStarred': false,
|
||||
'tags': ['frontend'],
|
||||
'isCompleted': false,
|
||||
'isTrashed': false
|
||||
}
|
||||
],
|
||||
taskTags: [
|
||||
{
|
||||
id: 5,
|
||||
text: 'Frontend',
|
||||
value : 'frontend',
|
||||
color: 'primary'
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
text: 'Backend',
|
||||
value: 'backend',
|
||||
color: 'warning'
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
text: 'Doc',
|
||||
value: 'doc',
|
||||
color: 'success'
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
text: 'Bug',
|
||||
value: 'bug',
|
||||
color: 'danger'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// POST : Add new Tasks
|
||||
mock.onPost('/api/apps/todo/tasks/').reply((request) => {
|
||||
|
||||
// Get task from post data
|
||||
const task = JSON.parse(request.data).task
|
||||
|
||||
const length = data.tasks.length
|
||||
let lastIndex = 0
|
||||
if (length) {
|
||||
lastIndex = data.tasks[length - 1].id
|
||||
}
|
||||
task.id = lastIndex + 1
|
||||
|
||||
data.tasks.push(task)
|
||||
|
||||
return [201, {id: task.id}]
|
||||
})
|
||||
|
||||
// GET: Fetch Todos
|
||||
mock.onGet('api/apps/todo/tasks').reply((request) => {
|
||||
|
||||
const filter = request.params.filter
|
||||
|
||||
const filteredTasks = data.tasks.filter((task) => {
|
||||
|
||||
// If filter == all
|
||||
if (filter === 'all') return !task.isTrashed
|
||||
|
||||
// If filter == starred
|
||||
if (filter === 'starred') return !task.isTrashed && task.isStarred
|
||||
|
||||
// If filter == important
|
||||
if (filter === 'important') return !task.isTrashed && task.isImportant
|
||||
|
||||
// If filter == completed
|
||||
if (filter === 'completed') return !task.isTrashed && task.isCompleted
|
||||
|
||||
// If filter == trashed
|
||||
if (filter === 'trashed') return task.isTrashed
|
||||
|
||||
else return task.tags.includes(filter)
|
||||
|
||||
})
|
||||
|
||||
|
||||
return [200, JSON.parse(JSON.stringify(filteredTasks)).reverse()]
|
||||
})
|
||||
|
||||
// GET: Fetch tags
|
||||
mock.onGet('api/apps/todo/tags').reply(() => {
|
||||
return [200, JSON.parse(JSON.stringify(data.taskTags))]
|
||||
})
|
||||
|
||||
// POST: Update Task
|
||||
mock.onPost(/\/api\/apps\/todo\/task\/\d+/).reply((request) => {
|
||||
|
||||
const taskId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const task = data.tasks.find((task) => task.id == taskId)
|
||||
// task.title = JSON.parse(request.data).task.title
|
||||
Object.assign(task, JSON.parse(request.data).task)
|
||||
|
||||
return [200, task]
|
||||
})
|
||||
@@ -0,0 +1,279 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
subscribers_gained: {
|
||||
analyticsData: [
|
||||
{
|
||||
device: 'فعال',
|
||||
icon: 'UserIcon',
|
||||
color: 'primary',
|
||||
sessionsPercentage: 58.6,
|
||||
comparedResultPercentage: -2
|
||||
},
|
||||
{
|
||||
device: 'نیمه فعال',
|
||||
icon: 'UserMinusIcon',
|
||||
color: 'warning',
|
||||
sessionsPercentage: 34.9,
|
||||
comparedResultPercentage: 8
|
||||
},
|
||||
{
|
||||
device: 'غیر فعال',
|
||||
icon: 'UserXIcon',
|
||||
color: 'danger',
|
||||
sessionsPercentage: 6.5,
|
||||
comparedResultPercentage: -5
|
||||
}
|
||||
],
|
||||
series: [58.6, 34.9, 6.5]
|
||||
},
|
||||
productsOrders: {
|
||||
analyticsData: [
|
||||
{
|
||||
'orderType': 'تمام شده',
|
||||
'counts': 23043,
|
||||
'color': 'primary'
|
||||
},
|
||||
{
|
||||
'orderType': 'در حال پردازش',
|
||||
'counts': 14658,
|
||||
'color': 'warning'
|
||||
},
|
||||
{
|
||||
'orderType': 'لغو شده ',
|
||||
'counts': 4758,
|
||||
'color': 'danger'
|
||||
}
|
||||
],
|
||||
series: [70, 52, 26]
|
||||
},
|
||||
customers: {
|
||||
analyticsData: [
|
||||
{
|
||||
'customerType': 'New',
|
||||
'counts': 890,
|
||||
'color': 'primary'
|
||||
},
|
||||
{
|
||||
'customerType': 'Returning',
|
||||
'counts': 258,
|
||||
'color': 'warning'
|
||||
},
|
||||
{
|
||||
'customerType': 'Referrals ',
|
||||
'counts': 149,
|
||||
'color': 'danger'
|
||||
}
|
||||
],
|
||||
series: [690, 258, 149]
|
||||
},
|
||||
salesRadar: {
|
||||
series: [
|
||||
{
|
||||
name: 'Visits',
|
||||
data: [90, 50, 86, 40, 100, 20]
|
||||
},
|
||||
{
|
||||
name: 'Sales',
|
||||
data: [70, 75, 70, 76, 20, 85]
|
||||
}
|
||||
]
|
||||
},
|
||||
supportTracker: {
|
||||
analyticsData: {
|
||||
openTickets: 163,
|
||||
meta: {
|
||||
'New Tickets': 29,
|
||||
'Open Tickets': 63,
|
||||
'Response Time': '1d'
|
||||
}
|
||||
},
|
||||
series: [83]
|
||||
},
|
||||
revenueComparisonLine: {
|
||||
analyticsData: {
|
||||
thisMonth: 86589,
|
||||
lastMonth: 73683
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'ماه جاری',
|
||||
data: [45000, 47000, 44800, 47500, 45500, 48000, 46500, 48600]
|
||||
},
|
||||
{
|
||||
name: 'ماه گذشته',
|
||||
data: [46000, 48000, 45500, 46600, 44500, 46500, 45000, 47000]
|
||||
}
|
||||
]
|
||||
},
|
||||
goalOverviewRadialBar: {
|
||||
analyticsData: {
|
||||
completed: 786617,
|
||||
inProgress: 13561
|
||||
},
|
||||
series: [83]
|
||||
},
|
||||
salesBarSession: {
|
||||
series: [
|
||||
{
|
||||
name: 'Sessions',
|
||||
data: [75, 125, 225, 175, 125, 75, 25]
|
||||
}
|
||||
],
|
||||
analyticsData: {
|
||||
session: 2700,
|
||||
comparison : {
|
||||
str: 'Last 7 Days',
|
||||
result: +5.2
|
||||
}
|
||||
}
|
||||
},
|
||||
todoToday: {
|
||||
date: 'Sat, 16 Feb',
|
||||
numCompletedTasks: 2,
|
||||
totalTasks: 10,
|
||||
tasksToday: [
|
||||
{
|
||||
id: 3,
|
||||
task: 'Refactor button component',
|
||||
date: '16 Feb 2019'
|
||||
},
|
||||
{
|
||||
id: 70,
|
||||
task: 'Submit report to admin',
|
||||
date: '16 Feb 2019'
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
task: 'Prepare presentation',
|
||||
date: '16 Feb 2019'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
task: 'Calculate monthly income',
|
||||
date: '16 Feb 2019'
|
||||
}
|
||||
]
|
||||
},
|
||||
salesLine: {
|
||||
series: [
|
||||
{
|
||||
name: 'Sales',
|
||||
data: [140, 180, 150, 205, 160, 295, 125, 255, 205, 305, 240, 295]
|
||||
}
|
||||
]
|
||||
},
|
||||
funding: {
|
||||
currBalance: 22597,
|
||||
depostis: 20065,
|
||||
comparison: {
|
||||
resultPerc: 5.2,
|
||||
pastData: 956
|
||||
},
|
||||
meta: {
|
||||
earned: {
|
||||
val: 56156,
|
||||
progress: 50
|
||||
},
|
||||
duration: {
|
||||
val: '2 Year',
|
||||
progress: 50
|
||||
}
|
||||
}
|
||||
},
|
||||
browserAnalytics: [
|
||||
{
|
||||
id: 1,
|
||||
name: 'Google Chrome',
|
||||
ratio: 73,
|
||||
time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
|
||||
comparedResult: '800'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: 'Opera',
|
||||
ratio: 8,
|
||||
time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
|
||||
comparedResult: '-200'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: 'Firefox',
|
||||
ratio: 19,
|
||||
time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
|
||||
comparedResult: '100'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: 'Internet Explorer',
|
||||
ratio: 27,
|
||||
time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
|
||||
comparedResult: '-450'
|
||||
}
|
||||
],
|
||||
clientRetention: {
|
||||
series: [
|
||||
{
|
||||
name: 'تومان',
|
||||
data: [175, 125, 225, 175, 160, 189, 206, 134, 159, 216, 148, 123]
|
||||
},
|
||||
{
|
||||
name: 'گرم',
|
||||
data: [144, 155, 141, 167, 122, 143, 158, 107, 126, 131, 140, 137]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mock.onGet('/api/card/card-analytics/session-by-device').reply(() => {
|
||||
return [200, data.subscribers_gained]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/products-orders').reply(() => {
|
||||
return [200, data.productsOrders]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/customers').reply(() => {
|
||||
return [200, data.customers]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/sales/radar').reply(() => {
|
||||
return [200, data.salesRadar]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/support-tracker').reply(() => {
|
||||
return [200, data.supportTracker]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/revenue-comparison').reply(() => {
|
||||
return [200, data.revenueComparisonLine]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/goal-overview').reply(() => {
|
||||
return [200, data.goalOverviewRadialBar]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/sales/bar').reply(() => {
|
||||
return [200, data.salesBarSession]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/todo/today').reply(() => {
|
||||
return [200, data.todoToday]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/sales/line').reply(() => {
|
||||
return [200, data.salesLine]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/funding').reply(() => {
|
||||
return [200, data.funding]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/browser-analytics').reply(() => {
|
||||
return [200, data.browserAnalytics]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-analytics/client-retention').reply(() => {
|
||||
return [200, data.clientRetention]
|
||||
})
|
||||
@@ -0,0 +1,188 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
pixinvent_product_1: {
|
||||
img: require('@/assets/images/pages/content-img-1.jpg'),
|
||||
title: 'Vuexy Admin',
|
||||
subtitle: 'By Pixinvent Creative Studio',
|
||||
subtitle_2: 'Elite Author'
|
||||
},
|
||||
pixinvent_product_sales_1: {
|
||||
img: require('@/assets/images/pages/content-img-2.jpg'),
|
||||
title: 'Vuexy Admin',
|
||||
subtitle: 'By Pixinvent Creative Studio',
|
||||
footer_text_left_value: '$ 4785.78',
|
||||
footer_text_left_label: 'Income',
|
||||
footer_text_right_value: '12 June 2019',
|
||||
footer_text_right_label: 'Release Date'
|
||||
},
|
||||
pixinvent_product_goal_1: {
|
||||
img: require('@/assets/images/pages/content-img-3.jpg'),
|
||||
title: 'Vuexy Admin',
|
||||
progress_done_per: 75,
|
||||
current_progress: '$ 5975',
|
||||
progress_goal: '$ 8000',
|
||||
btn_left_text: 'Add More',
|
||||
btn_right_text: 'Remove'
|
||||
},
|
||||
user_detail_89: {
|
||||
userImg: require('@/assets/images/portrait/small/avatar-s-12.jpg'),
|
||||
name: 'Zoila Legore',
|
||||
profession: 'Backend Dev',
|
||||
btn_1_text: 'Follow',
|
||||
btn_2_text: 'Message',
|
||||
footer_text_1_icon: 'StarIcon',
|
||||
footer_text_1: '4.9',
|
||||
footer_text_2_icon: 'BriefcaseIcon',
|
||||
footer_text_2: '37 Projects'
|
||||
},
|
||||
user_detail_58: {
|
||||
userImg: require('@/assets/images/portrait/small/avatar-s-12.jpg'),
|
||||
name: 'Wilhelmina Jamal',
|
||||
profession: 'Frontend Dev',
|
||||
user_meta_1_title: 568,
|
||||
user_meta_1_label: 'Uploads',
|
||||
user_meta_2_title: '78.6K',
|
||||
user_meta_2_label: 'Followers',
|
||||
user_meta_3_title: 112,
|
||||
user_meta_3_label: 'Following',
|
||||
btn_text: 'Follow'
|
||||
},
|
||||
user_detail_16: {
|
||||
userImg: require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
name: 'Jonell Binion',
|
||||
profession: 'Designer',
|
||||
progress_done_per: 72,
|
||||
current_progress: '720 Points',
|
||||
progress_goal: '1000',
|
||||
btn_left_text: 'Follow',
|
||||
btn_right_text: 'Message'
|
||||
},
|
||||
place_detail_18: {
|
||||
overlay_img: require('@/assets/images/pages/card-image-6.jpg'),
|
||||
title: 'Beautiful Overlay',
|
||||
text: 'Cake sesame snaps cupcake gingerbread danish I love gingerbread. Apple pie pie jujubes chupa chups muffin halvah lollipop.'
|
||||
},
|
||||
place_weather_76: {
|
||||
overlay_img: require('@/assets/images/pages/card-image-5.jpg'),
|
||||
place_name: 'New York',
|
||||
weather: 'Snowy',
|
||||
weather_icon: 'CloudSnowIcon',
|
||||
temperature: -6,
|
||||
meta: [
|
||||
{
|
||||
label: 'Precipitation',
|
||||
value: '48%'
|
||||
},
|
||||
{
|
||||
label: 'Humidity',
|
||||
value: '60%'
|
||||
},
|
||||
{
|
||||
label: 'Wind',
|
||||
value: '4823 km/h'
|
||||
}
|
||||
]
|
||||
},
|
||||
chatLog: [
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
msg: 'Cake sesame snaps cupcake gingerbread',
|
||||
isSent: false
|
||||
},
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
msg: 'Apple pie pie jujubes chupa chups muffin',
|
||||
isSent: true
|
||||
},
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
msg: 'Chocolate cake',
|
||||
isSent: false
|
||||
},
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
msg: 'Donut sweet pie oat cake dragée fruitcake',
|
||||
isSent: true
|
||||
},
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
msg: 'Liquorice chocolate bar jelly beans icing',
|
||||
isSent: false
|
||||
},
|
||||
{
|
||||
senderImg: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
msg: 'Pudding candy',
|
||||
isSent: true
|
||||
}
|
||||
],
|
||||
item_reviews_12: {
|
||||
title: 'Vuexy Admin',
|
||||
subtitle: 'by Pixinvent Creative Studio',
|
||||
img: require('@/assets/images/pages/content-img-4.jpg'),
|
||||
meta: {
|
||||
likes: 368,
|
||||
comments: 341,
|
||||
dislikes: 53
|
||||
}
|
||||
},
|
||||
player_options: {
|
||||
height: '460',
|
||||
fluid: true,
|
||||
autoplay: false,
|
||||
muted: true,
|
||||
language: 'en',
|
||||
playbackRates: [0.7, 1.0, 1.5, 2.0],
|
||||
sources: [
|
||||
{
|
||||
type: 'video/mp4',
|
||||
src: 'http://vjs.zencdn.net/v/oceans.mp4'
|
||||
}
|
||||
],
|
||||
poster: 'https://goo.gl/xcCsDd'
|
||||
}
|
||||
}
|
||||
|
||||
mock.onGet('/api/users/pixinvent/product/1').reply(() => {
|
||||
return [200, data.pixinvent_product_1]
|
||||
})
|
||||
|
||||
mock.onGet('/api/users/pixinvent/product/sales/1').reply(() => {
|
||||
return [200, data.pixinvent_product_sales_1]
|
||||
})
|
||||
|
||||
mock.onGet('/api/users/pixinvent/product/goals/1').reply(() => {
|
||||
return [200, data.pixinvent_product_goal_1]
|
||||
})
|
||||
|
||||
mock.onGet('/api/users/89').reply(() => {
|
||||
return [200, data.user_detail_89]
|
||||
})
|
||||
|
||||
mock.onGet('/api/users/58').reply(() => {
|
||||
return [200, data.user_detail_58]
|
||||
})
|
||||
|
||||
mock.onGet('/api/users/16').reply(() => {
|
||||
return [200, data.user_detail_16]
|
||||
})
|
||||
|
||||
mock.onGet('/api/place/18').reply(() => {
|
||||
return [200, data.place_detail_18]
|
||||
})
|
||||
|
||||
mock.onGet('/api/place/76/weather').reply(() => {
|
||||
return [200, data.place_weather_76]
|
||||
})
|
||||
|
||||
mock.onGet('/api/item/12/review').reply(() => {
|
||||
return [200, data.item_reviews_12]
|
||||
})
|
||||
|
||||
mock.onGet('/api/chat/demo-1/log').reply(() => {
|
||||
return [200, data.chatLog]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-basic/player-option').reply(() => {
|
||||
return [200, data.player_options]
|
||||
})
|
||||
@@ -0,0 +1,101 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
subscribers_gained: {
|
||||
series: [
|
||||
{
|
||||
name: 'فرد',
|
||||
data: [28, 40, 36, 52, 38, 60, 55]
|
||||
}
|
||||
],
|
||||
analyticsData: {
|
||||
subscribers: 92600
|
||||
}
|
||||
},
|
||||
revenueGenerated: {
|
||||
series: [
|
||||
{
|
||||
name: 'هزار',
|
||||
data: [350, 275, 400, 300, 350, 300, 450]
|
||||
}
|
||||
],
|
||||
analyticsData: {
|
||||
revenue: 97500
|
||||
}
|
||||
},
|
||||
quarterlySales: {
|
||||
series: [
|
||||
{
|
||||
name: 'گرم',
|
||||
data: [10, 15, 7, 12, 3, 16]
|
||||
}
|
||||
],
|
||||
analyticsData: {
|
||||
sales: '3600 گرم'
|
||||
}
|
||||
},
|
||||
ordersRecevied: {
|
||||
series: [
|
||||
{
|
||||
name: 'سفارش',
|
||||
data: [10, 15, 8, 15, 7, 12, 8]
|
||||
}
|
||||
],
|
||||
analyticsData: {
|
||||
orders: 97500
|
||||
}
|
||||
},
|
||||
siteTraffic: {
|
||||
series: [
|
||||
{
|
||||
name: 'Traffic Rate',
|
||||
data: [150, 200, 125, 225, 200, 250]
|
||||
}
|
||||
]
|
||||
},
|
||||
activeUsers: {
|
||||
series: [
|
||||
{
|
||||
name: 'Active Users',
|
||||
data: [750, 1000, 900, 1250, 1000, 1200, 1100]
|
||||
}
|
||||
]
|
||||
},
|
||||
newsletter: {
|
||||
series: [
|
||||
{
|
||||
name: 'Newsletter',
|
||||
data: [365, 390, 365, 400, 375, 400]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mock.onGet('/api/card/card-statistics/subscribers').reply(() => {
|
||||
return [200, data.subscribers_gained]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/revenue').reply(() => {
|
||||
return [200, data.revenueGenerated]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/sales').reply(() => {
|
||||
return [200, data.quarterlySales]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/orders').reply(() => {
|
||||
return [200, data.ordersRecevied]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/site-traffic').reply(() => {
|
||||
return [200, data.siteTraffic]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/active-users').reply(() => {
|
||||
return [200, data.activeUsers]
|
||||
})
|
||||
|
||||
mock.onGet('/api/card/card-statistics/newsletter').reply(() => {
|
||||
return [200, data.newsletter]
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
import './card-basic.js'
|
||||
import './card-statistics.js'
|
||||
import './card-analytics.js'
|
||||
@@ -0,0 +1,950 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
products: [
|
||||
{
|
||||
'id': 1,
|
||||
'category': 'computers',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Apple Watch series 4 GPS',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 97,
|
||||
'price': 69.99
|
||||
},
|
||||
{
|
||||
'id': 2,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Beats HeadPhones',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 83,
|
||||
'price': 69.99
|
||||
},
|
||||
{
|
||||
'id': 3,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 57,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 4,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 65,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 5,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Altec Lansing - Portable Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 87,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 6,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 55,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 7,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Altec Lansing - Mini H2O Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 99,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 8,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 91,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 9,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Altec Lansing - Mini H2O Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 52,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 10,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Altec Lansing - Mini H2O Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 64,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 11,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 93,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 12,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 75,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 13,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 88,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 14,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Altec Lansing - Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 86,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 15,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Aluratek - Bluetooth Audio Receiver',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 62,
|
||||
'price': 29.99
|
||||
},
|
||||
{
|
||||
'id': 16,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Aluratek - Bluetooth Audio Transmitter',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 51,
|
||||
'price': 29.99
|
||||
},
|
||||
{
|
||||
'id': 17,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Aluratek - iStream Bluetooth Audio Receiver',
|
||||
'order_status': 'pending',
|
||||
'popularity': 51,
|
||||
'price': 29.99
|
||||
},
|
||||
{
|
||||
'id': 18,
|
||||
'category': 'computers',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Antec - Nano Diamond Thermal Compound',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 65,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 19,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Antec - SmartBean Bluetooth Adapter',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 63,
|
||||
'price': 39.99
|
||||
},
|
||||
{
|
||||
'id': 20,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Basis - Peak Fitness and Sleep Tracker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 72,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 21,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Basis - Peak Fitness and Sleep Tracker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 77,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 22,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Beats by Dr. Dre - 3\' USB-to-Micro USB Cable',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 65,
|
||||
'price': 19.99
|
||||
},
|
||||
{
|
||||
'id': 23,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Beats by Dr. Dre - Bike Mount for Pill Speakers',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 60,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 24,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Beats by Dr. Dre - Support Stand for Speakers',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 59,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 25,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Beats by Dr. Dre - Support Stand for Pill Speakers',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 87,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 26,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Beats by Dr. Dre - Support Stand for Pill Speakers',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 95,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 27,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Beats by Dr. Dre - Support Stand for Speakers',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 98,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 28,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Beats by Dr. Dre - Support Stand',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 75,
|
||||
'price': 49.99
|
||||
},
|
||||
{
|
||||
'id': 29,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Beats by Dr. Dre - Pill 2.0 Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 81,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 30,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Beats by Dr. Dre - Pill 2.0 Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 91,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 31,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Beats by Dr. Dre - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 79,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 32,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Beats by Dr. Dre - Portable Speaker + Headphones',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 95,
|
||||
'price': 699.99
|
||||
},
|
||||
{
|
||||
'id': 33,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Beats by Dr. Dre - Pill 2.0 Portable Stereo Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 90,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 34,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Bose® - SoundLink® III Cover',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 81,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 35,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Bose® - Bose® SoundLink® III Cover',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 81,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 36,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Bose® - SoundLink® III Cover',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 69,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 37,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - SoundLink® Mini Soft Cover',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 95,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 38,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Bose® - SoundLink® Color Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 100,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 39,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Bose® - SoundLink® Color Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 89,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 40,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Bose® - SoundLink® Color Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 75,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 41,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Bose® - SoundLink® Color Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 54,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 42,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Bose® - SoundLink® Color Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 98,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 43,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - SoundLink® Color Carry Case',
|
||||
'order_status': 'pending',
|
||||
'popularity': 95,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 44,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Bose® - SoundLink® III Cover',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 76,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 45,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Bose® - SoundLink® III Cover',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 98,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 46,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Bose® - SoundLink® III Cover',
|
||||
'order_status': 'pending',
|
||||
'popularity': 70,
|
||||
'price': 34.99
|
||||
},
|
||||
{
|
||||
'id': 47,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Bose® - Mini Bluetooth Speaker II',
|
||||
'order_status': 'pending',
|
||||
'popularity': 62,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 48,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Bose® - Bluetooth Speaker II',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 63,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 49,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Bose® - SoundLink® Mini Bluetooth Speaker Soft Cover',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 90,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 50,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Bose® - Bluetooth Speaker Soft Cover',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 98,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 51,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - Bluetooth Speaker Soft Cover',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 55,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 52,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 53,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 53,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - SoundLink® Mini Bluetooth Speaker Soft Cover',
|
||||
'order_status': 'pending',
|
||||
'popularity': 82,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 54,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Bose® - Bluetooth Speaker Travel Bag',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 78,
|
||||
'price': 44.99
|
||||
},
|
||||
{
|
||||
'id': 55,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Bose® - SoundLink® Mini Soft Cover',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 81,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 56,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Bose® - SoundLink® Mini Soft Cover',
|
||||
'order_status': 'pending',
|
||||
'popularity': 94,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 57,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Bose® - Bluetooth Speaker III',
|
||||
'order_status': 'pending',
|
||||
'popularity': 97,
|
||||
'price': 299.99
|
||||
},
|
||||
{
|
||||
'id': 58,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Bose® - SoundLink® Soft Cover',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 89,
|
||||
'price': 24.99
|
||||
},
|
||||
{
|
||||
'id': 59,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Bose® - Bluetooth Music Adapter',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 53,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 60,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Bowers & Wilkins - Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 79,
|
||||
'price': 349.98
|
||||
},
|
||||
{
|
||||
'id': 61,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'BRAVEN - Balance Portable Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 82,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 62,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'BRAVEN - Balance Portable Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 80,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 63,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'BRAVEN - Outdoor Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 86,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 64,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'BRAVEN - BRV-X Outdoor Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 61,
|
||||
'price': 199.99
|
||||
},
|
||||
{
|
||||
'id': 65,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'BRAVEN - Portable Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 85,
|
||||
'price': 299.99
|
||||
},
|
||||
{
|
||||
'id': 66,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'BRAVEN - Portable Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 81,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 67,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'BRAVEN - Wireless Bluetooth Speaker',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 50,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 68,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'BRAVEN - Wireless Bluetooth Speaker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 93,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 69,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'BRAVEN - Wireless Bluetooth Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 51,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 70,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Craig - Tower Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 77,
|
||||
'price': 69.99
|
||||
},
|
||||
{
|
||||
'id': 71,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Craig - Portable Wireless Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 89,
|
||||
'price': 29.99
|
||||
},
|
||||
{
|
||||
'id': 72,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Definitive Technology - Wireless Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 81,
|
||||
'price': 399.98
|
||||
},
|
||||
{
|
||||
'id': 73,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Definitive Technology - Wireless Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 76,
|
||||
'price': 699.98
|
||||
},
|
||||
{
|
||||
'id': 74,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/08.png',
|
||||
'name': 'Denon - Wireless Speaker',
|
||||
'order_status': 'pending',
|
||||
'popularity': 88,
|
||||
'price': 399.98
|
||||
},
|
||||
{
|
||||
'id': 75,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Denon - HEOS 7 Wireless Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 100,
|
||||
'price': 599.98
|
||||
},
|
||||
{
|
||||
'id': 76,
|
||||
'category': 'audio',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'ECOXGEAR - Waterproof Bluetooth Speaker',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 52,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 77,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Fitbit - Charge HR Activity Tracker + Heart Rate (Large)',
|
||||
'order_status': 'pending',
|
||||
'popularity': 66,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 78,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Fitbit - Charge HR Activity Tracker + Heart Rate (Large)',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 66,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 79,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Fitbit - Activity Tracker + Heart Rate (Large)',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 96,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 80,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Fitbit - Charge HR Activity Tracker + Heart Rate (Small)',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 92,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 81,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Fitbit - Charge HR Activity Tracker + Heart Rate (Small)',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 82,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 82,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Fitbit - Activity Tracker + Heart Rate (Small)',
|
||||
'order_status': 'pending',
|
||||
'popularity': 100,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 83,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/01.png',
|
||||
'name': 'Fitbit - Activity Tracker + Sleep Wristband',
|
||||
'order_status': 'pending',
|
||||
'popularity': 100,
|
||||
'price': 149.99
|
||||
},
|
||||
{
|
||||
'id': 84,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Fitbit - Activity Tracker (Large)',
|
||||
'order_status': 'pending',
|
||||
'popularity': 52,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 85,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Fitbit - Charge Wireless Activity Tracker (Large)',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 51,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 86,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/04.png',
|
||||
'name': 'Fitbit - Charge Wireless Activity Tracker (Large)',
|
||||
'order_status': 'pending',
|
||||
'popularity': 80,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 87,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/02.png',
|
||||
'name': 'Fitbit - Charge Wireless Activity Tracker (Small)',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 99,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 88,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Fitbit - Activity Tracker (Small)',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 75,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 89,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Fitbit - Charge Wireless Activity Tracker (Small)',
|
||||
'order_status': 'pending',
|
||||
'popularity': 80,
|
||||
'price': 129.99
|
||||
},
|
||||
{
|
||||
'id': 90,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Fitbit - Charging Cable for Activity Trackers',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 50,
|
||||
'price': 19.99
|
||||
},
|
||||
{
|
||||
'id': 91,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Fitbit - Clip for Activity and Sleep Trackers',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 57,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 92,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Fitbit - Clip for Wireless Activity and Sleep Trackers',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 80,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 93,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Fitbit - Clip for Zip Wireless Activity Trackers',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 78,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 94,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/05.png',
|
||||
'name': 'Fitbit - Flex 1" USB Charging Cable',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 81,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 95,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Fitbit - Flex 1" USB Charging Cable',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 51,
|
||||
'price': 14.99
|
||||
},
|
||||
{
|
||||
'id': 96,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/03.png',
|
||||
'name': 'Fitbit - Flex Clasp for Activity Trackers',
|
||||
'order_status': 'canceled',
|
||||
'popularity': 56,
|
||||
'price': 4.99
|
||||
},
|
||||
{
|
||||
'id': 97,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/07.png',
|
||||
'name': 'Fitbit - Sleep Wristband',
|
||||
'order_status': 'on_hold',
|
||||
'popularity': 95,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 98,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Fitbit - Sleep Tracker Wristband',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 85,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 99,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/09.png',
|
||||
'name': 'Fitbit - Flex Wireless Activity',
|
||||
'order_status': 'pending',
|
||||
'popularity': 50,
|
||||
'price': 99.99
|
||||
},
|
||||
{
|
||||
'id': 100,
|
||||
'category': 'fitness',
|
||||
'img': 'https://pixinvent.com/demo/vuexy-vuejs-admin-dashboard-template/products/06.png',
|
||||
'name': 'Fitbit - Activity Tracker',
|
||||
'order_status': 'delivered',
|
||||
'popularity': 72,
|
||||
'price': 99.99
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
mock.onGet('/api/data-list/products').reply(() => {
|
||||
return [200, JSON.parse(JSON.stringify(data.products)).reverse()]
|
||||
})
|
||||
|
||||
// POST : Add new Item
|
||||
mock.onPost('/api/data-list/products/').reply((request) => {
|
||||
|
||||
// Get event from post data
|
||||
const item = JSON.parse(request.data).item
|
||||
|
||||
const length = data.products.length
|
||||
let lastIndex = 0
|
||||
if (length) {
|
||||
lastIndex = data.products[length - 1].id
|
||||
}
|
||||
item.id = lastIndex + 1
|
||||
|
||||
data.products.push(item)
|
||||
|
||||
return [201, {id: item.id}]
|
||||
})
|
||||
|
||||
// Update Product
|
||||
mock.onPost(/\/api\/data-list\/products\/\d+/).reply((request) => {
|
||||
|
||||
const itemId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const item = data.products.find((item) => item.id == itemId)
|
||||
Object.assign(item, JSON.parse(request.data).item)
|
||||
|
||||
return [200, item]
|
||||
})
|
||||
|
||||
// DELETE: Remove Item
|
||||
mock.onDelete(/\/api\/data-list\/products\/\d+/).reply((request) => {
|
||||
|
||||
const itemId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const itemIndex = data.products.findIndex((p) => p.id == itemId)
|
||||
data.products.splice(itemIndex, 1)
|
||||
return [200]
|
||||
})
|
||||
@@ -0,0 +1,123 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
dispatchedOrders: [
|
||||
{
|
||||
orderNo: 879985,
|
||||
status: 'تحویل داده شده',
|
||||
statusColor: 'success',
|
||||
operator: 'علی منتظر',
|
||||
operatorImg: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
usersLiked: [
|
||||
{
|
||||
name: 'Vennie Mostowy',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-5.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Elicia Rieske',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-7.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Julee Rossignol',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-10.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Darcey Nooner',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-8.jpg')
|
||||
}
|
||||
],
|
||||
location: 'علی ارزانی',
|
||||
distance: '250000',
|
||||
distPercent: 80,
|
||||
startDate: '1399-01-29 10:25',
|
||||
estDelDate: '28/07/2018'
|
||||
},
|
||||
{
|
||||
orderNo: 156897,
|
||||
status: 'در حال پردازش',
|
||||
statusColor: 'warning',
|
||||
operator: 'احمد رضا شایسته',
|
||||
operatorImg: require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
usersLiked: [
|
||||
{
|
||||
name: 'Trina Lynes',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-1.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Lilian Nenez',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-2.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Alberto Glotzbach',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-3.jpg')
|
||||
}
|
||||
],
|
||||
location: 'علی ارزانی',
|
||||
distance: '250000',
|
||||
distPercent: 60,
|
||||
startDate: '1399-01-29 10:25',
|
||||
estDelDate: '28/07/2018'
|
||||
},
|
||||
{
|
||||
orderNo: 568975,
|
||||
status: 'تحویل داده شده',
|
||||
statusColor: 'success',
|
||||
operator: 'محمد عباسی',
|
||||
operatorImg: require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
usersLiked: [
|
||||
{
|
||||
name: 'Lai Lewandowski',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-6.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Elicia Rieske',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-7.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Darcey Nooner',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-8.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Julee Rossignol',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-10.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Jeffrey Gerondale',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-9.jpg')
|
||||
}
|
||||
],
|
||||
location: 'محمد رضا شعبانی',
|
||||
distance: '300000',
|
||||
distPercent: 70,
|
||||
startDate: '1399-01-29 10:25',
|
||||
estDelDate: '28/07/2018'
|
||||
},
|
||||
{
|
||||
orderNo: 245689,
|
||||
status: 'لغو شده',
|
||||
statusColor: 'danger',
|
||||
operator: 'علی منتظر',
|
||||
operatorImg: require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
usersLiked: [
|
||||
{
|
||||
name: 'Vennie Mostowy',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-5.jpg')
|
||||
},
|
||||
{
|
||||
name: 'Elicia Rieske',
|
||||
img: require('@/assets/images/portrait/small/avatar-s-7.jpg')
|
||||
}
|
||||
],
|
||||
location: 'محمد رضا شعبانی',
|
||||
distance: '300000',
|
||||
distPercent: 95,
|
||||
startDate: '1399-01-29 10:25',
|
||||
estDelDate: '28/07/2018'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
mock.onGet('/api/table/dispatched-orders').reply(() => {
|
||||
return [200, data.dispatchedOrders]
|
||||
})
|
||||
@@ -0,0 +1,706 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
|
||||
const data = {
|
||||
users: [
|
||||
{
|
||||
'id': 268,
|
||||
'username': 'adoptionism744',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
'email': 'angelo@sashington.com',
|
||||
'name': 'علی',
|
||||
'fname': 'منتظر',
|
||||
'dob': '28 January 1998',
|
||||
'gender': 'male',
|
||||
'country': 'Bolivia',
|
||||
'role': 'admin',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales',
|
||||
'company': 'WinDon Technologies Pvt Ltd',
|
||||
'mobile': '+65958951757',
|
||||
'website': 'https://rowboat.com/insititious/Angelo',
|
||||
'languages_known': ['English', 'Arabic'],
|
||||
'contact_options': ['email', 'message', 'phone'],
|
||||
'location': {
|
||||
'add_line_1': 'A-65, Belvedere Streets',
|
||||
'add_line_2': '',
|
||||
'post_code': '1868',
|
||||
'city': 'New York',
|
||||
'state': 'New York',
|
||||
'country': 'United States'
|
||||
},
|
||||
'social_links': {
|
||||
'twitter': 'https://twitter.com/adoptionism744',
|
||||
'facebook': 'https://www.facebook.com/adoptionism664',
|
||||
'instagram': 'https://www.instagram.com/adopt-ionism744/',
|
||||
'github': 'https://github.com/madop818',
|
||||
'codepen': 'https://codepen.io/adoptism243',
|
||||
'slack': '@adoptionism744'
|
||||
},
|
||||
'permissions': {
|
||||
'users': {
|
||||
'read': true,
|
||||
'write': false,
|
||||
'create': false,
|
||||
'delete': false
|
||||
},
|
||||
'posts': {
|
||||
'read': true,
|
||||
'write': true,
|
||||
'create': true,
|
||||
'delete': true
|
||||
},
|
||||
'comments': {
|
||||
'read': true,
|
||||
'write': false,
|
||||
'create': true,
|
||||
'delete': false
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
'id': 269,
|
||||
'username': 'demodulation463',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
'email': 'rubi@ortwein.com',
|
||||
'name': 'Rubi Ortwein',
|
||||
'country': 'Syria',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': false,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 270,
|
||||
'username': 'undivorced341',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
'email': 'donnette@charania.com',
|
||||
'name': 'Donnette Charania',
|
||||
'country': 'Iraq',
|
||||
'role': 'staff',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 271,
|
||||
'username': 'bumbo426',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-12.jpg'),
|
||||
'email': 'ardith@duffett.com',
|
||||
'name': 'Ardith Duffett',
|
||||
'country': 'Estonia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': false,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 272,
|
||||
'username': 'ectodactylism214',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-16.jpg'),
|
||||
'email': 'antone@berman.com',
|
||||
'name': 'Antone Berman',
|
||||
'country': 'India',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 273,
|
||||
'username': 'panathenaic825',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'email': 'maryann@gour.com',
|
||||
'name': 'Maryann Gour',
|
||||
'country': 'Solomon Islands',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 274,
|
||||
'username': 'reptilious612',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-7.jpg'),
|
||||
'email': 'holli@vanduyne.com',
|
||||
'name': 'Holli Vanduyne',
|
||||
'country': 'Lebanon',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 275,
|
||||
'username': 'candid910',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-26.jpg'),
|
||||
'email': 'juanita@sartoris.com',
|
||||
'name': 'Juanita Sartoris',
|
||||
'country': 'Papua New Guinea',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 276,
|
||||
'username': 'ferrotungsten928',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-20.jpg'),
|
||||
'email': 'lia@morga.com',
|
||||
'name': 'Lia Morga',
|
||||
'country': 'Malaysia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 277,
|
||||
'username': 'fibered345',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-14.jpg'),
|
||||
'email': 'theo@quatrevingt.com',
|
||||
'name': 'Theo Quatrevingt',
|
||||
'country': 'Nepal',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 278,
|
||||
'username': 'nonenclosure246',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-10.jpg'),
|
||||
'email': 'lynwood@flud.com',
|
||||
'name': 'Lynwood Flud',
|
||||
'country': 'Russia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 279,
|
||||
'username': 'uncandied531',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-13.jpg'),
|
||||
'email': 'kaitlin@kahola.com',
|
||||
'name': 'Kaitlin Kahola',
|
||||
'country': 'Latvia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 280,
|
||||
'username': 'errancy403',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-4.jpg'),
|
||||
'email': 'alvin@car.com',
|
||||
'name': 'Alvin Car',
|
||||
'country': 'Yemen',
|
||||
'role': 'admin',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 281,
|
||||
'username': 'renillidae759',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-16.jpg'),
|
||||
'email': 'justin@jacquelin.com',
|
||||
'name': 'Justin Jacquelin',
|
||||
'country': 'Turkmenistan',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 282,
|
||||
'username': 'jellylike89',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-20.jpg'),
|
||||
'email': 'chloe@tague.com',
|
||||
'name': 'Chloe Tague',
|
||||
'country': 'Pakistan',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 283,
|
||||
'username': 'ocular772',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'email': 'zola@tauarez.com',
|
||||
'name': 'Zola Tauarez',
|
||||
'country': 'Dominica',
|
||||
'role': 'admin',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 284,
|
||||
'username': 'oxgang923',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-11.jpg'),
|
||||
'email': 'wm@cieszynski.com',
|
||||
'name': 'Wm Cieszynski',
|
||||
'country': 'South Korea',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 285,
|
||||
'username': 'ideationally882',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-1.jpg'),
|
||||
'email': 'hope@mobus.com',
|
||||
'name': 'Hope Mobus',
|
||||
'country': 'United States of America',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 286,
|
||||
'username': 'cynomorphous587',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-25.jpg'),
|
||||
'email': 'lee@wernimont.com',
|
||||
'name': 'Lee Wernimont',
|
||||
'country': 'South Africa',
|
||||
'role': 'admin',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 287,
|
||||
'username': 'windtight501',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-3.jpg'),
|
||||
'email': 'myesha@denman.com',
|
||||
'name': 'Myesha Denman',
|
||||
'country': 'Cyprus',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 288,
|
||||
'username': 'strongylate147',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-21.jpg'),
|
||||
'email': 'cornell@roszell.com',
|
||||
'name': 'Cornell Roszell',
|
||||
'country': 'Algeria',
|
||||
'role': 'admin',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 289,
|
||||
'username': 'reblade348',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'email': 'vernon@ogrodowicz.com',
|
||||
'name': 'Vernon Ogrodowicz',
|
||||
'country': 'Botswana',
|
||||
'role': 'admin',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 290,
|
||||
'username': 'trapping909',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-26.jpg'),
|
||||
'email': 'rosy@litza.com',
|
||||
'name': 'Rosy Litza',
|
||||
'country': 'Iran',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 291,
|
||||
'username': 'associatedness456',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-16.jpg'),
|
||||
'email': 'carl@lano.com',
|
||||
'name': 'Carl Lano',
|
||||
'country': 'Japan',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 292,
|
||||
'username': 'deformable333',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
'email': 'jamika@overlee.com',
|
||||
'name': 'Jamika Overlee',
|
||||
'country': 'Colombia',
|
||||
'role': 'admin',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 293,
|
||||
'username': 'abaptiston684',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-10.jpg'),
|
||||
'email': 'lyle@pytko.com',
|
||||
'name': 'Lyle Pytko',
|
||||
'country': 'Somalia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 294,
|
||||
'username': 'neglector719',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-20.jpg'),
|
||||
'email': 'latoria@josef.com',
|
||||
'name': 'Latoria Josef',
|
||||
'country': 'Lithuania',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 295,
|
||||
'username': 'perameloid596',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'email': 'tennille@draft.com',
|
||||
'name': 'Tennille Draft',
|
||||
'country': 'Somalia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 296,
|
||||
'username': 'fetoplacental529',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-20.jpg'),
|
||||
'email': 'bernadette@ludovici.com',
|
||||
'name': 'Bernadette Ludovici',
|
||||
'country': 'Cameroon',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 297,
|
||||
'username': 'interdiffusion271',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-8.jpg'),
|
||||
'email': 'mui@melching.com',
|
||||
'name': 'Mui Melching',
|
||||
'country': 'Iran',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 298,
|
||||
'username': 'vernacularize342',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'email': 'mitsue@houlahan.com',
|
||||
'name': 'Mitsue Houlahan',
|
||||
'country': 'Malawi',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 299,
|
||||
'username': 'sassenach8',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'email': 'elsa@neubert.com',
|
||||
'name': 'Elsa Neubert',
|
||||
'country': 'Togo',
|
||||
'role': 'staff',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 300,
|
||||
'username': 'diplantidian91',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-19.jpg'),
|
||||
'email': 'kandice@mizelle.com',
|
||||
'name': 'Kandice Mizelle',
|
||||
'country': 'Greece',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 301,
|
||||
'username': 'precognizant796',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-22.jpg'),
|
||||
'email': 'damian@hayzlett.com',
|
||||
'name': 'Damian Hayzlett',
|
||||
'country': 'St. Lucia',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 302,
|
||||
'username': 'submaster902',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-16.jpg'),
|
||||
'email': 'aundrea@stempel.com',
|
||||
'name': 'Aundrea Stempel',
|
||||
'country': 'Cyprus',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 303,
|
||||
'username': 'ladytide97',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-21.jpg'),
|
||||
'email': 'shiloh@spielmaker.com',
|
||||
'name': 'Shiloh Spielmaker',
|
||||
'country': 'Palestine',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 304,
|
||||
'username': 'prayingly678',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-24.jpg'),
|
||||
'email': 'terese@dyreson.com',
|
||||
'name': 'Terese Dyreson',
|
||||
'country': 'Sao Tome and Principe',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 305,
|
||||
'username': 'unclotted302',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'email': 'vashti@kilton.com',
|
||||
'name': 'Vashti Kilton',
|
||||
'country': 'Portugal',
|
||||
'role': 'user',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 306,
|
||||
'username': 'unfascinating985',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-19.jpg'),
|
||||
'email': 'carter@mendes.com',
|
||||
'name': 'Carter Mendes',
|
||||
'country': 'Armenia',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 307,
|
||||
'username': 'gardenwise712',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-24.jpg'),
|
||||
'email': 'helene@madden.com',
|
||||
'name': 'Helene Madden',
|
||||
'country': 'Finland',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 308,
|
||||
'username': 'interagree870',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-13.jpg'),
|
||||
'email': 'ashton@calderone.com',
|
||||
'name': 'Ashton Calderone',
|
||||
'country': 'Italy',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 309,
|
||||
'username': 'brutification848',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-14.jpg'),
|
||||
'email': 'robert@lyster.com',
|
||||
'name': 'Robert Lyster',
|
||||
'country': 'Turkey',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 310,
|
||||
'username': 'unhypocritically536',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-22.jpg'),
|
||||
'email': 'delma@mewbourn.com',
|
||||
'name': 'Delma Mewbourn',
|
||||
'country': 'Honduras',
|
||||
'role': 'staff',
|
||||
'status': 'deactivated',
|
||||
'is_verified': false,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 311,
|
||||
'username': 'tarentine951',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-17.jpg'),
|
||||
'email': 'ja@alaibilla.com',
|
||||
'name': 'Ja Alaibilla',
|
||||
'country': 'Italy',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 312,
|
||||
'username': 'mountainlike2',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-22.jpg'),
|
||||
'email': 'delinda@rosentrance.com',
|
||||
'name': 'Delinda Rosentrance',
|
||||
'country': 'Guinea',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 313,
|
||||
'username': 'zoetic150',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-18.jpg'),
|
||||
'email': 'danae@demeter.com',
|
||||
'name': 'Danae Demeter',
|
||||
'country': 'Gambia',
|
||||
'role': 'user',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 314,
|
||||
'username': 'addlepate37',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-14.jpg'),
|
||||
'email': 'kattie@joffrion.com',
|
||||
'name': 'Kattie Joffrion',
|
||||
'country': 'Albania',
|
||||
'role': 'user',
|
||||
'status': 'blocked',
|
||||
'is_verified': true,
|
||||
'department': 'management'
|
||||
},
|
||||
{
|
||||
'id': 315,
|
||||
'username': 'pollinate51',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-19.jpg'),
|
||||
'email': 'in@stjohns.com',
|
||||
'name': 'In Stjohns',
|
||||
'country': 'North Korea',
|
||||
'role': 'user',
|
||||
'status': 'active',
|
||||
'is_verified': false,
|
||||
'department': 'sales'
|
||||
},
|
||||
{
|
||||
'id': 316,
|
||||
'username': 'tournefortian626',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-2.jpg'),
|
||||
'email': 'van@laferney.com',
|
||||
'name': 'Van Laferney',
|
||||
'country': 'Finland',
|
||||
'role': 'staff',
|
||||
'status': 'active',
|
||||
'is_verified': true,
|
||||
'department': 'development'
|
||||
},
|
||||
{
|
||||
'id': 317,
|
||||
'username': 'aspersively497',
|
||||
'avatar': require('@/assets/images/portrait/small/avatar-s-6.jpg'),
|
||||
'email': 'sylvia@maharrey.com',
|
||||
'name': 'Sylvia Maharrey',
|
||||
'country': 'Turkmenistan',
|
||||
'role': 'staff',
|
||||
'status': 'deactivated',
|
||||
'is_verified': true,
|
||||
'department': 'sales'
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
mock.onGet('/api/user-management/users').reply(() => {
|
||||
return [200, JSON.parse(JSON.stringify(data.users)).reverse()]
|
||||
})
|
||||
|
||||
// GET: Fetch Single User Details
|
||||
mock.onGet(/\/api\/user-management\/users\/\d+/).reply((request) => {
|
||||
|
||||
const userId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const user = data.users.find((user) => user.id == userId)
|
||||
|
||||
return user ? [200, JSON.parse(JSON.stringify(user))] : [404]
|
||||
})
|
||||
|
||||
// // POST : Add new Item
|
||||
// mock.onPost("/api/data-list/products/").reply((request) => {
|
||||
|
||||
// // Get event from post data
|
||||
// let item = JSON.parse(request.data).item
|
||||
|
||||
// const length = data.products.length
|
||||
// let lastIndex = 0
|
||||
// if(length){
|
||||
// lastIndex = data.products[length - 1].id
|
||||
// }
|
||||
// item.id = lastIndex + 1
|
||||
|
||||
// data.products.push(item)
|
||||
|
||||
// return [201, {id: item.id}]
|
||||
// })
|
||||
|
||||
// // Update Product
|
||||
// mock.onPost(/\/api\/data-list\/products\/\d+/).reply((request) => {
|
||||
|
||||
// const itemId = request.url.substring(request.url.lastIndexOf("/")+1)
|
||||
|
||||
// let item = data.products.find((item) => item.id == itemId)
|
||||
// Object.assign(item, JSON.parse(request.data).item)
|
||||
|
||||
// return [200, item]
|
||||
// })
|
||||
|
||||
// // DELETE: Remove Item
|
||||
mock.onDelete(/\/api\/user-management\/users\/\d+/).reply((request) => {
|
||||
|
||||
const userId = request.url.substring(request.url.lastIndexOf('/') + 1)
|
||||
|
||||
const itemIndex = data.users.findIndex((p) => p.id == userId)
|
||||
data.users.splice(itemIndex, 1)
|
||||
return [200]
|
||||
})
|
||||
@@ -0,0 +1,135 @@
|
||||
import mock from '@/fake-db/mock.js'
|
||||
import jwt from 'jsonwebtoken'
|
||||
|
||||
const data = {
|
||||
checkpointReward: {
|
||||
userName: 'John',
|
||||
progress: '57.6%'
|
||||
},
|
||||
users: [
|
||||
{
|
||||
uid: 34,
|
||||
displayName: 'Howard Potts',
|
||||
password: 'adminadmin',
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
email: 'admin@admin.com',
|
||||
phoneNumber: null
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
const jwtConfig = {
|
||||
'secret' : 'dd5f3089-40c3-403d-af14-d0c228b05cb4',
|
||||
'expireTime': 8000
|
||||
}
|
||||
|
||||
|
||||
mock.onPost('/api/auth/login').reply((request) => {
|
||||
const {email, password} = JSON.parse(request.data)
|
||||
|
||||
let error = 'Something went wrong'
|
||||
|
||||
const user = data.users.find(user => user.email === email && user.password === password)
|
||||
|
||||
if (user) {
|
||||
|
||||
try {
|
||||
|
||||
const accessToken = jwt.sign({id: user.uid}, jwtConfig.secret, {expiresIn: jwtConfig.expireTime})
|
||||
|
||||
const userData = Object.assign({}, user, {providerId: 'jwt'})
|
||||
|
||||
delete userData.password
|
||||
|
||||
const response = {
|
||||
userData,
|
||||
accessToken
|
||||
}
|
||||
|
||||
return [200, response]
|
||||
|
||||
} catch (e) {
|
||||
error = e
|
||||
}
|
||||
} else {
|
||||
error = 'Email Or Password Invalid'
|
||||
}
|
||||
|
||||
return [200, {error}]
|
||||
|
||||
|
||||
})
|
||||
|
||||
mock.onPost('/api/auth/register').reply((request) => {
|
||||
const {displayName, email, password} = JSON.parse(request.data)
|
||||
const isEmailAlreadyInUse = data.users.find((user) => user.email === email)
|
||||
const error = {
|
||||
email : isEmailAlreadyInUse ? 'This email is already in use.' : null,
|
||||
displayName: displayName === '' ? 'Please enter your name.' : null
|
||||
}
|
||||
|
||||
if (!error.displayName && !error.email) {
|
||||
|
||||
const userData = {
|
||||
email,
|
||||
password,
|
||||
displayName,
|
||||
photoURL: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
|
||||
phoneNumber: null
|
||||
}
|
||||
|
||||
// Add user id
|
||||
const length = data.users.length
|
||||
let lastIndex = 0
|
||||
if (length) {
|
||||
lastIndex = data.users[length - 1].uid
|
||||
}
|
||||
userData.uid = lastIndex + 1
|
||||
|
||||
data.users.push(userData)
|
||||
|
||||
const accessToken = jwt.sign({id: userData.uid}, jwtConfig.secret, {expiresIn: jwtConfig.expireTime})
|
||||
|
||||
const user = Object.assign({}, userData)
|
||||
delete user['password']
|
||||
const response = {
|
||||
userData: user,
|
||||
accessToken
|
||||
}
|
||||
|
||||
return [200, response]
|
||||
} else {
|
||||
return [200, {error}]
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
mock.onPost('/api/auth/refresh-token').reply((request) => {
|
||||
|
||||
const {accessToken} = JSON.parse(request.data)
|
||||
|
||||
try {
|
||||
const {id} = jwt.verify(accessToken, jwtConfig.secret)
|
||||
|
||||
const userData = Object.assign({}, data.users.find(user => user.uid === id))
|
||||
|
||||
const newAccessToken = jwt.sign({id: userData.uid}, jwtConfig.secret, {expiresIn: jwtConfig.expiresIn})
|
||||
|
||||
delete userData['password']
|
||||
const response = {
|
||||
userData,
|
||||
accessToken: newAccessToken
|
||||
}
|
||||
|
||||
return [200, response]
|
||||
} catch (e) {
|
||||
const error = 'Invalid access token'
|
||||
return [401, {error}]
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
mock.onGet('/api/user/checkpoint-reward').reply(() => {
|
||||
return [200, data.checkpointReward]
|
||||
})
|
||||
Reference in New Issue
Block a user