|
- <template>
- <div>
- <section class="pending-pane">
- <div class="actions">
- <a class="new-order" href="#new-order">New</a
- ><a class="new-order" href="#credits">Add Credits</a>
- </div>
- <h4>Pending Orders</h4>
- <ul>
- <template v-bind:key="order.id" v-for="order in orders">
- <div class="pending-item" v-if="order.status == 'pending'">
- <div class="pending-heading">
- <li @click="togglePending($event)">
- {{ order.service.name }} ({{
- order.updated_at
- }})
- </li>
- <img
- class="chevron"
- src="../../images/chevron-down.svg"
- alt=""
- />
- </div>
- <div class="pending-content">
- <p>
- ID: {{ order.id }}<br />URL: {{ order.url
- }}<br />Quantity: {{ order.quantity
- }}<br />Note: {{ order.note }}
- </p>
- </div>
- </div>
- </template>
- </ul>
- </section>
- <div class="info-grey">
- <p>Orders are typically completed within 1-5 days.</p>
- <div></div>
- </div>
- <section class="history-pane">
- <h4>Order History</h4>
-
- <div class="table-scroller">
- <table>
- <thead>
- <th>Date</th>
- <th>ID</th>
- <th>Name</th>
- <th>Status</th>
- <th>Quantity</th>
- </thead>
- <tbody>
- <tr
- v-bind:key="order.id"
- v-for="order in orders.slice(
- historyPage * 10 - 10,
- historyPage * 10
- )"
- >
- <td>{{ order.updated_at }}</td>
- <td>{{ order.id }}</td>
- <td>{{ order.service.name }}</td>
- <td :class="order.status" class="status">
- <span>{{
- order.status.charAt(0).toUpperCase() +
- order.status.slice(1)
- }}</span>
- </td>
- <td>{{ order.quantity }}</td>
- <td><eye @click="select(order)"></eye></td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <img
- @click="moveHistory(false)"
- class="nav-btn left"
- src="../../images/arrow-left-circle-fill.svg"
- alt=""
- />
- <p class="nav-legend">
- {{ historyPage }}/{{ Math.ceil(orders.length / 10) }}
- </p>
- <img
- @click="moveHistory(true)"
- class="nav-btn right"
- src="../../images/arrow-right-circle-fill.svg"
- alt=""
- />
- </section>
-
- <order-item
- v-if="selected"
- @close="close"
- :selected="selected"
- :token="token"
- @change-url="(url) => (selected.url = url)"
- ></order-item>
- </div>
- </template>
-
- <script>
- import Eye from "../icons/eye-fill.vue";
- import OrderItem from "./order-item.vue";
-
- function togglePending(event) {
- event.target.parentNode.parentNode.classList.toggle("selected");
- }
-
- function moveHistory(forward) {
- if (forward) {
- this.historyPage += 1;
- } else {
- this.historyPage -= 1;
- }
- if (this.historyPage < 1) {
- this.historyPage = 1;
- return;
- } else if (this.historyPage > this.orders.length / 10 + 1) {
- this.historyPage -= 1;
- return;
- }
- }
-
- function close() {
- this.selected = null;
- }
-
- function select(order) {
- this.selected = order;
- }
-
- export default {
- components: { Eye, OrderItem },
- data() {
- return { historyPage: 1, selected: null };
- },
- methods: {
- togglePending,
- moveHistory,
- close,
- select,
- },
- props: ["orders", "token"],
- };
- </script>
|