Examples of code I've written in PHP, Javascript, SCSS, etc.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

101 linhas
2.6 KiB

  1. <template>
  2. <div>
  3. <section class="pending-pane">
  4. <div class="actions"><a class="new-order" href="#new-order">New</a><a
  5. class="new-order" href="#credits">Add Credits</a></div>
  6. <h4>Pending Orders</h4>
  7. <ul>
  8. <template v-bind:key='order.id' v-for="order in orders">
  9. <div class="pending-item" v-if="order.status == 'pending'">
  10. <div class="pending-heading">
  11. <li @click="togglePending($event)">{{order.service.name}} ({{order.updated_at}})</li>
  12. <img class="chevron" src="../../images/chevron-down.svg" alt="">
  13. </div>
  14. <div class="pending-content">
  15. <p>ID: {{order.id}}<br>URL: {{order.url}}<br>Quantity:
  16. {{order.quantity}}<br>Note: {{order.note}}</p>
  17. </div>
  18. </div>
  19. </template>
  20. </ul>
  21. </section>
  22. <div class="info-grey"><p>Orders are typically completed within 1-5
  23. days.</p><div></div></div>
  24. <section class="history-pane">
  25. <h4>Order History</h4>
  26. <div class="table-scroller">
  27. <table>
  28. <thead><th>Date</th><th>ID</th><th>Name</th><th>Status</th>
  29. <th>Quantity</th></thead>
  30. <tbody>
  31. <tr v-bind:key='order.id' v-for='order in
  32. orders.slice(historyPage*10-10, historyPage*10)'>
  33. <td>{{order.updated_at}}</td>
  34. <td>{{order.id}}</td>
  35. <td>{{order.service.name}}</td>
  36. <td :class="order.status"
  37. class="status"><span>{{order.status.charAt(0).toUpperCase() +
  38. order.status.slice(1)}}</span></td>
  39. <td>{{order.quantity}}</td>
  40. <td> <eye @click="select(order)"></eye> </td>
  41. </tr>
  42. </tbody>
  43. </table>
  44. </div>
  45. <img @click="moveHistory(false)" class="nav-btn left"
  46. src="../../images/arrow-left-circle-fill.svg" alt=""/>
  47. <p class="nav-legend">{{historyPage}}/{{Math.ceil(orders.length/10)}}</p>
  48. <img @click="moveHistory(true)" class="nav-btn right"
  49. src="../../images/arrow-right-circle-fill.svg" alt=""/>
  50. </section>
  51. <order-item v-if="selected" @close="close" :selected="selected"
  52. :token="token" @change-url="(url) => selected.url = url"></order-item>
  53. </div>
  54. </template>
  55. <script>
  56. import Eye from '../icons/eye-fill.vue'
  57. import OrderItem from './order-item.vue'
  58. function togglePending(event) {
  59. event.target.parentNode.parentNode.classList.toggle('selected')
  60. }
  61. function moveHistory(forward) {
  62. if (forward) {
  63. this.historyPage += 1
  64. } else {
  65. this.historyPage -= 1
  66. }
  67. if (this.historyPage < 1) {
  68. this.historyPage = 1
  69. return
  70. } else if (this.historyPage > this.orders.length/10+1) {
  71. this.historyPage -= 1
  72. return
  73. }
  74. }
  75. function close() {
  76. this.selected = null
  77. }
  78. function select(order) {
  79. this.selected = order
  80. }
  81. export default {
  82. components: {Eye, OrderItem},
  83. data() {return {historyPage: 1, selected: null}},
  84. methods: {
  85. togglePending, moveHistory, close, select
  86. },
  87. props: ['orders', 'token'],
  88. }
  89. </script>