zhanghua
2024-11-20 e1174c13f0d7e64bd6273f9d3378c88c6955bc06
src/views/index.vue
@@ -1,75 +1,101 @@
<template>
  <div class="p-2">
<!--    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">-->
<!--      <div class="mb-[10px]" v-show="showSearch">-->
<!--        <el-card shadow="hover">-->
<!--          <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">-->
    <!--    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">-->
    <!--      <div class="mb-[10px]" v-show="showSearch">-->
    <!--        <el-card shadow="hover">-->
    <!--          <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">-->
<!--            <el-form-item label="原名" prop="originalName">-->
<!--              <el-input v-model="queryParams.originalName" placeholder="请输入原名" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
<!--            </el-form-item>-->
    <!--            <el-form-item label="原名" prop="originalName">-->
    <!--              <el-input v-model="queryParams.originalName" placeholder="请输入原名" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
    <!--            </el-form-item>-->
<!--            <el-form-item>-->
<!--              <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>-->
<!--              <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
<!--            </el-form-item>-->
<!--          </el-form>-->
<!--        </el-card>-->
<!--      </div>-->
<!--    </transition>-->
    <!--            <el-form-item>-->
    <!--              <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>-->
    <!--              <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
    <!--            </el-form-item>-->
    <!--          </el-form>-->
    <!--        </el-card>-->
    <!--      </div>-->
    <!--    </transition>-->
    <el-card shadow="hover">
      <template #header>
        <el-row  style="text-align: center">
          <el-col>
          <el-input v-model="input1" placeholder="请输入提取码" style="width: 150px">
               </el-input>
            <el-button type="primary" @click="downloadFile">下载</el-button>
            <el-button type="primary" plain icon="Upload" @click="handleFile" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">上传文件</el-button>
        <el-row style="text-align: center">
          <el-col style="display:flex;justify-content: center;align-items: center;min-height: calc(100vh - 160px)">
            <div style="flex: 1;display: flex;flex-direction: column;justify-content: center;align-items: center" class="input-col">
              <el-input
                v-model="input1"
                placeholder="请输入提取码"
                style="min-height: 5rem;min-width: 21rem;font-size: 2rem;border-radius: 40px;max-width: 21rem;"
              >
              </el-input>
              <el-button
                style="min-height: 5rem;min-width: 21rem;font-size: 2rem;border-radius: 40px;margin-top: 2rem"
                type="primary"
                @click="downloadFile"
                >下载</el-button
              >
            </div>
            <div style="flex: 1;margin-top: 6rem" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">
              <el-button
                style="min-height: 5rem;min-width: 21rem;font-size: 2rem;border-radius: 40px;flex: 1;margin-top: 2rem"
                type="primary"
                icon="Upload"
                @click="handleFile"
                v-if="isContains(useUserStore().permissions, 'system:oss:upload')"
                >上传文件</el-button
              >
            </div>
          </el-col>
<!--          <el-col :span="1.5">-->
<!--            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-if="isContains(useUserStore().permissions, 'system:oss:remove')">-->
<!--              删除-->
<!--            </el-button>-->
<!--          </el-col>-->
<!--          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
          <!--          <el-col :span="1.5">-->
          <!--            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-if="isContains(useUserStore().permissions, 'system:oss:remove')">-->
          <!--              删除-->
          <!--            </el-button>-->
          <!--          </el-col>-->
          <!--          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
        </el-row>
      </template>
<!--      <el-table-->
<!--        v-loading="loading"-->
<!--        :data="ossList"-->
<!--        @selection-change="handleSelectionChange"-->
<!--        :header-cell-class-name="handleHeaderClass"-->
<!--        @header-click="handleHeaderCLick"-->
<!--        v-if="showTable"-->
<!--      >-->
<!--        <el-table-column type="index"  />-->
<!--&lt;!&ndash;        <el-table-column type="selection" width="55" align="center" />&ndash;&gt;-->
<!--        <el-table-column label="原名" align="center" prop="originalName" />-->
<!--        <el-table-column label="上传时间" align="center" prop="createTime" />-->
<!--        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!--          <template #default="scope">-->
<!--            <el-tooltip content="查看提取码" placement="top">-->
<!--              <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:view')"></el-button>-->
<!--            </el-tooltip>-->
<!--            <el-tooltip content="下载" placement="top">-->
<!--              <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:download')"></el-button>-->
<!--            </el-tooltip>-->
<!--            <el-tooltip content="删除" placement="top">-->
<!--              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>-->
<!--            </el-tooltip>-->
<!--          </template>-->
<!--        </el-table-column>-->
<!--      </el-table>-->
      <!--      <el-table-->
      <!--        v-loading="loading"-->
      <!--        :data="ossList"-->
      <!--        @selection-change="handleSelectionChange"-->
      <!--        :header-cell-class-name="handleHeaderClass"-->
      <!--        @header-click="handleHeaderCLick"-->
      <!--        v-if="showTable"-->
      <!--      >-->
      <!--        <el-table-column type="index"  />-->
      <!--&lt;!&ndash;        <el-table-column type="selection" width="55" align="center" />&ndash;&gt;-->
      <!--        <el-table-column label="原名" align="center" prop="originalName" />-->
      <!--        <el-table-column label="上传时间" align="center" prop="createTime" />-->
      <!--        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
      <!--          <template #default="scope">-->
      <!--            <el-tooltip content="查看提取码" placement="top">-->
      <!--              <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:view')"></el-button>-->
      <!--            </el-tooltip>-->
      <!--            <el-tooltip content="下载" placement="top">-->
      <!--              <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:download')"></el-button>-->
      <!--            </el-tooltip>-->
      <!--            <el-tooltip content="删除" placement="top">-->
      <!--              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>-->
      <!--            </el-tooltip>-->
      <!--          </template>-->
      <!--        </el-table-column>-->
      <!--      </el-table>-->
<!--      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />-->
      <!--      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />-->
    </el-card>
    <!-- 添加或修改OSS对象存储对话框 -->
    <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
      <el-form ref="ossFormRef" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="文件名">
          <fileUpload ref="childFile" @closePopup="getList();lookPawsd($event)"  v-model="form.file"  v-if="type === 0" />
          <fileUpload
            ref="childFile"
            @closePopup="getList();lookPawsd($event)"
            @openPopup="lookPawsd($event)"
            v-model="form.file"
            v-if="type === 0"
          />
          <imageUpload v-model="form.file" v-if="type === 1" />
          <video-upload v-model="form.file" v-if="type === 2" />
        </el-form-item>
@@ -82,19 +108,49 @@
      </template>
    </el-dialog>
    <el-dialog :title="titleDownload" v-model="visibleCode" width="500px" append-to-body>
      <p style="color: red">提取码将会在24小时后失效请尽快下载!</p>
      <span v-show="titleDownload=='查看提取码'">{{testtxt}}</span>
      <el-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload=='输入提取码'"  v-model="pasTxt" v-if="isContains(useUserStore().permissions, 'system:oss:download')" placeholder="请输入文件提取码"></el-input>
      <el-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload=='请输入提取码'"  v-model="pasTxt"  placeholder="请输入文件提取码"></el-input>
<!--      <el-button link type="primary"   v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button>-->
<!--      <el-button link type="primary"   v-show="titleDownload=='请输入提取码'"  icon="Delete" @click="delFile()" >删除</el-button>-->
      <div style="width: 100%;text-align: center">
        <p style="color: red; font-size: 20px">提取码将会在24小时后失效请尽快下载!</p>
        <span v-show="titleDownload=='查看提取码'" style="font-size: 80px;">{{testtxt}}</span>
      </div>
      <el-input
        style="margin: 10px 0"
        ref="inputRef"
        :style="inputSty"
        v-show="titleDownload=='输入提取码'"
        v-model="pasTxt"
        v-if="isContains(useUserStore().permissions, 'system:oss:download')"
        placeholder="请输入文件提取码"
      ></el-input>
      <el-input
        style="margin: 10px 0"
        ref="inputRef"
        :style="inputSty"
        v-show="titleDownload=='请输入提取码'"
        v-model="pasTxt"
        placeholder="请输入文件提取码"
      ></el-input>
      <!--      <el-button link type="primary"   v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button>-->
      <!--      <el-button link type="primary"   v-show="titleDownload=='请输入提取码'"  icon="Delete" @click="delFile()" >删除</el-button>-->
      <template #footer>
        <div class="dialog-footer">
          <el-button link type="primary"   v-show="titleDownload=='输入提取码'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">下载</el-button>
          <el-button link type="primary"   v-show="titleDownload=='请输入提取码'"  icon="Delete" @click="delFile()" >删除</el-button>
          <el-button  type="primary" @click="visibleCode = false">确 定</el-button>
          <el-button
            link
            type="primary"
            v-show="titleDownload=='输入提取码'"
            icon="Download"
            @click="handleDownloadFile()"
            v-if="isContains(useUserStore().permissions, 'system:oss:download')"
            >下载</el-button
          >
          <el-button link type="primary" v-show="titleDownload=='请输入提取码'" icon="Delete" @click="delFile()">删除</el-button>
          <el-button type="primary" @click="visibleCode = false">确 定</el-button>
        </div>
      </template>
    </el-dialog>
    <el-dialog v-model="dialogVisible" title="" width="37%" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
      <span @closePopup1="lookPawsd1()">
        <el-progress type="dashboard" :percentage="percentage2" style="display: flex;justify-content: center" :color="colors" />
      </span>
    </el-dialog>
  </div>
</template>
@@ -108,6 +164,7 @@
import usePermissionStore from "@/store/modules/permission";
import { isHttp } from "@/utils/validate";
import router from '@/router';
import { ref } from "vue";
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const ossList = ref<OssVO[]>([]);
@@ -123,6 +180,13 @@
const previewListResource = ref(true);
const dateRangeCreateTime = ref<[DateModelType, DateModelType]>(['', '']);
const visibleCode = ref(false);
const colors = [
  { color: '#f56c6c', percentage: 20 },
  { color: '#e6a23c', percentage: 40 },
  { color: '#5cb87a', percentage: 60 },
  { color: '#1989fa', percentage: 80 },
  { color: '#6f7ad3', percentage: 100 },
]
const dialog = reactive<DialogOption>({
  visible: false,
  title: ''
@@ -142,7 +206,8 @@
const ossFormRef = ref<ElFormInstance>();
const queryFormRef = ref<ElFormInstance>();
const dialogVisible = ref(false)
const percentage2 = ref(0)
const initFormData = {
  file: undefined,
}
@@ -267,6 +332,7 @@
/** 任务日志列表查询 */
/** 文件按钮操作 */
const handleFile = () => {
  percentage2.value = 0;
  reset();
  type.value = 0;
  dialog.visible = true;
@@ -291,13 +357,39 @@
  await childFile.value.handleCilck()
  dialog.visible = false;
}
const lookPawsd = async (row:any) => {
  console.log(row);
  // row.msg = ':/"123456'
      testtxt.value = row.msg.slice(2);
      titleDownload.value = '查看提取码'
      pasTxt.value = ''
      visibleCode.value = true
const state = reactive({
  mytime:0,//定义定时器
})
watch(percentage2, (new1,new2) => {
  console.log(new1,new2)
  if(new1 == 95){
    clearInterval(state.mytime);
    state.mytime = 0;
  }
})
const lookPawsd1 = async () => {
  dialogVisible.value = true;
}
const lookPawsd = async (row: any) => {
  console.log(row, row.ossId);
  clearInterval(state.mytime);
  state.mytime = 0;
  if(row == '123123'){
    dialogVisible.value = true;
    state.mytime = setInterval(() => {
      percentage2.value = (percentage2.value % 100) + 5
    }, 500)
  }
  else{
    dialogVisible.value = false;
    clearInterval(state.mytime);
    state.mytime = 0;
    testtxt.value = row.password;
    titleDownload.value = '查看提取码'
    pasTxt.value = ''
    visibleCode.value = true
  }
}
const handleCode = async (row: OssVO) => {
  console.log(row, row.ossId);
@@ -305,7 +397,7 @@
  await examineIds(row.ossId).then(res => {
    console.log(res);
    if (res.code == 200) {
      testtxt.value = res.msg;
      testtxt.value = res.data.password
      titleDownload.value = '查看提取码'
      pasTxt.value = ''
      // inputSty.value ={
@@ -459,5 +551,12 @@
  // 调用 getList() 方法
})
</script>
<style lang="scss" scoped>
.input-col{
  :deep(.el-input__wrapper) {
    border-radius: 40px!important;
    padding-left: 3rem;
  }
}
</style>