b71bd7c5创建于 2024年5月20日历史提交
<template>
  <q-page class="q-py-xl q-mx-auto bg-grey-4" style="overflow: auto">
    <div id="tuning-list-form" style="display: block">
      <q-card class="q-mx-auto tuning-middle">
        <q-tabs
          v-model="listTab"
          class="text-grey"
          active-color="primary"
          indicator-color="primary"
          align="justify"
        >
          <q-tab name="all" label="all" @click="getFileList('all')" default />
          <q-tab name="running" label="running" @click="getFileList('running')" />
          <q-tab name="finished" label="finished" @click="getFileList('finished')" />
          <q-tab name="error" label="error" @click="getFileList('error')" />
        </q-tabs>

        <q-separator />

        <q-tab-panels v-model="listTab" animated>
          <q-tab-panel name="all">
            <div class="text-h6 q-px-lg q-pb-lg q-pt-sm" style="min-height: 800px">

              <q-list bordered class="rounded-borders q-my-md" v-for="(file, index) in files" :key="index" style="display: -webkit-inline-box">

                <q-item clickable v-ripple class="q-px-lg" @click="initialTuningDetails(file)" style="width: 1420px">
                  <q-item-section>
                    <q-item-label lines="1">{{ file.name }}</q-item-label>
                    <q-item-label caption lines="2">
                      <span class="text-weight-bold"></span>
                      ip: {{ file.info }}
                    </q-item-label>
                  </q-item-section>

                  <q-item-section side class="q-mx-xl text-subtitle1 text-weight-medium">
                    {{ file.status }}
                  </q-item-section>

                  <q-item-section side class="text-subtitle1 text-weight-medium">
                    {{ file.date }}
                  </q-item-section>
                </q-item>

                <q-btn-dropdown flat dense dropdown-icon="more_vert" style="margin-top: 8px">
                  <q-item clickable v-close-popup class="text-subtitle1 text-weight-medium" @click="rename(file)" style="">
                    <q-item-section side class="text-subtitle1 text-weight-medium">
                      <q-item-label>Rename</q-item-label>
                    </q-item-section>
                  </q-item>
                </q-btn-dropdown>

                <!-- Go to Details button here -->
                <q-btn flat dense label="Go to Details" @click="goToTuningDetails(file.id)" style="margin-top: 8px" />

              </q-list>
            </div>
          </q-tab-panel>

          <q-tab-panel name="running">
            <div class="text-h6 q-px-lg q-pb-lg q-pt-sm" style="min-height: 800px">
              <q-list bordered class="rounded-borders q-my-md" v-for="(file, index) in files" :key="index" style="display: -webkit-inline-box">

                <q-item clickable v-ripple class="q-px-lg" @click="initialTuningDetails(file)" style="width: 1420px">
                  <q-item-section>
                    <q-item-label lines="1" >{{ file.name }}</q-item-label>
                    <q-item-label caption lines="2">
                      <span class="text-weight-bold"></span>
                      ip: {{ file.info }}
                    </q-item-label>
                  </q-item-section>

                  <q-item-section side class="q-mx-xl text-subtitle1 text-weight-medium">
                    {{ file.status }}
                  </q-item-section>

                  <q-item-section side class="text-subtitle1 text-weight-medium">
                    {{ file.date }}
                  </q-item-section>
                </q-item>

                <q-btn-dropdown flat dense dropdown-icon="more_vert" style="margin-top: 8px">
                  <q-item clickable v-close-popup class="text-subtitle1 text-weight-medium" @click="rename(file)" style="">
                    <q-item-section side class="text-subtitle1 text-weight-medium">
                      <q-item-label>Rename</q-item-label>
                    </q-item-section>
                  </q-item>
                </q-btn-dropdown>
              </q-list>
            </div>
          </q-tab-panel>

          <q-tab-panel name="finished">
            <div class="text-h6 q-px-lg q-pb-lg q-pt-sm" style="min-height: 800px">
              <q-list bordered class="rounded-borders q-my-md" v-for="(file, index) in files" :key="index" style="display: -webkit-inline-box">

                <q-item clickable v-ripple class="q-px-lg" @click="initialTuningDetails(file)" style="width: 1420px">
                  <q-item-section>
                    <q-item-label lines="1">{{ file.name }}</q-item-label>
                    <q-item-label caption lines="2">
                      <span class="text-weight-bold"></span>
                      ip: {{ file.info }}
                    </q-item-label>
                  </q-item-section>

                  <q-item-section side class="q-mx-xl text-subtitle1 text-weight-medium">
                    {{ file.status }}
                  </q-item-section>

                  <q-item-section side class="text-subtitle1 text-weight-medium">
                    {{ file.date }}
                  </q-item-section>
                </q-item>

                <q-btn-dropdown flat dense dropdown-icon="more_vert" style="margin-top: 8px">
                  <q-item clickable v-close-popup class="text-subtitle1 text-weight-medium" @click="rename(file)" style="">
                    <q-item-section side class="text-subtitle1 text-weight-medium">
                      <q-item-label>Rename</q-item-label>
                    </q-item-section>
                  </q-item>
                </q-btn-dropdown>
              </q-list>
            </div>
          </q-tab-panel>

          <q-tab-panel name="error">
            <div class="text-h6 q-px-lg q-pb-lg q-pt-sm" style="min-height: 800px">
              <q-list bordered class="rounded-borders q-my-md" v-for="(file, index) in files" :key="index" style="display: -webkit-inline-box">

                <q-item clickable v-ripple class="q-px-lg" @click="initialTuningDetails(file)" style="width: 1420px">
                  <q-item-section>
                    <q-item-label lines="1">{{ file.name }}</q-item-label>
                    <q-item-label caption lines="2">
                      <span class="text-weight-bold"></span>
                      ip: {{ file.info }}
                    </q-item-label>
                  </q-item-section>

                  <q-item-section side class="q-mx-xl text-subtitle1 text-weight-medium">
                    {{ file.status }}
                  </q-item-section>

                  <q-item-section side class="text-subtitle1 text-weight-medium">
                    {{ file.date }}
                  </q-item-section>
                </q-item>

                <q-btn-dropdown flat dense dropdown-icon="more_vert" style="margin-top: 8px">
                  <q-item clickable v-close-popup class="text-subtitle1 text-weight-medium" @click="rename(file)" style="">
                    <q-item-section side class="text-subtitle1 text-weight-medium">
                      <q-item-label>Rename</q-item-label>
                    </q-item-section>
                  </q-item>
                </q-btn-dropdown>
              </q-list>
            </div>
          </q-tab-panel>
        </q-tab-panels>
      </q-card>
    </div>
    <div id="rename-popup-window" style="height: 350px; width: 450px; z-index: 1; display: none" class="bg-grey-3 fixed-center">
      <q-btn flat round color="primary" icon="close" class="absolute-top-right" @click="closeRenamePopUp"/>
      <div id="chart-container" style="height: 250px; width: 350px; margin: 30px">
        <q-form
          @submit="onSubmitRename"
          class="q-ma-lg q-py-lg"
        >
 
          <h6 style="margin: 0">Current Name: </h6>
          <q-input
            filled
            v-model="currFileName"
            label="current file name *"
            readonly 
          /><br>
          <h6 style="margin: 0">New Name: </h6>
          <q-input
            filled
            v-model="newFileName"
            label="new file name *"
          />
          <div id="rename-error-empty" class="text-caption" style="color: red; display: none">Error: New name cannot be empty</div>
          <div id="rename-error-duplicate" class="text-caption" style="color: red; display: none">Error: New name already exist</div>
          <div id="rename-error-same" class="text-caption" style="color: red; display: none">Error: New name cannot same as current name</div>
          <div>
            <q-btn label="Submit" style="float:right; margin-top: 15px" type="submit" color="primary"/>
          </div>
        </q-form>
      </div>
    </div>
  </q-page>
</template>

<script>
import Tuning from '../static/js/tuning'

export default {
  ...Tuning
}
</script>

<style>
@import '../css/tuning.css'
</style>

<style lang="sass">
.thead-sticky tr > *,
.tfoot-sticky tr > *
  position: sticky
  opacity: 1
  z-index: 1
  background: black
  color: white

.thead-sticky tr:last-child > *
  top: 0

.tfoot-sticky tr:first-child > *
  bottom: 0
</style>