Bläddra i källkod

优化异常率页面显示;新增游戏版本更新播报

倚楼听风雨 3 år sedan
förälder
incheckning
88f0cc0ec4

+ 15 - 1
src/api/fileManager.js

@@ -2,7 +2,7 @@
  * @Author: 倚楼听风雨 18408246387@163.com
  * @Date: 2023-01-09 16:01:45
  * @LastEditors: 倚楼听风雨 18408246387@163.com
- * @LastEditTime: 2023-02-20 09:49:31
+ * @LastEditTime: 2023-02-24 14:28:05
  * @FilePath: \log-server-web\src\api\rentComputer.js
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -15,3 +15,17 @@ export const getAllTaskSimple = (data) => {
     data,
   });
 };
+export const addFileFolder = (data) => {
+  return service({
+    url: "/fileManager/addFileFolder",
+    method: "post",
+    data,
+  });
+};
+export const getFolderFileList = (data) => {
+  return service({
+    url: "/fileManager/getFolderFileList",
+    method: "post",
+    data,
+  });
+};

+ 38 - 4
src/view/dataStatistics/data_abnormal_rate.vue

@@ -6,8 +6,18 @@
           <el-form-item label="任务Id">
             <el-input v-model="searchInfo.task_id" placeholder="任务ID" />
           </el-form-item>
-          <el-form-item label="负责人">
+          <!-- <el-form-item label="负责人">
             <el-input v-model="searchInfo.director_name" placeholder="负责人" />
+          </el-form-item> -->
+          <el-form-item label="使用人">
+            <el-select v-model="searchInfo.director_name" size="small">
+              <el-option
+                v-for="item in directorOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
           </el-form-item>
           <el-form-item label="日期" prop="date">
             <el-date-picker
@@ -44,6 +54,7 @@
         stripe
         align="center"
         header-align="center"
+        height="700"
         size="mini"
         :default-sort="{ prop: 'task_id', order: 'ascending' }"
         v-loading="loading"
@@ -51,6 +62,13 @@
         <el-table-column type="index" label="#" min-width="10" fixed="left" />
         <el-table-column
           fixed="left"
+          prop="new_date"
+          label="日期"
+          min-width="80"
+          sortable
+        />
+        <el-table-column
+          fixed="left"
           prop="task_id"
           label="任务ID"
           min-width="80"
@@ -241,7 +259,7 @@
             </el-table-column>
           </el-table-column>
         </el-table-column>
-        <el-table-column label="微信扫码" align="center">
+        <!-- <el-table-column label="微信扫码" align="center">
           <el-table-column label="新增成功" align="center">
             <el-table-column
               prop="num_into_game,num_start_game"
@@ -260,7 +278,7 @@
               </template>
             </el-table-column>
           </el-table-column>
-        </el-table-column>
+        </el-table-column> -->
         <!-- <el-table-column
           fixed="right"
           label="操作"
@@ -302,6 +320,7 @@ export default {
 
 <script setup>
 import { queryAbnormalRate } from "@/api/data_abnormal_rate";
+import { getDirectorList } from "@/api/responsiblePerson";
 import { useUserStore } from "@/pinia/modules/user";
 import { toSQLLine } from "@/utils/stringFun";
 import { ref } from "vue";
@@ -316,6 +335,7 @@ let spanArr = [];
 const searchInfo = ref({});
 const userStore = useUserStore();
 const loading = ref(false);
+const directorOptions = ref();
 
 const disabledDate = (time) => {
   return time.getTime() > Date.now();
@@ -368,7 +388,21 @@ const getSpanArr = (data) => {
     }
   }
 };
-
+//获取下拉框list
+const getSelectList = async () => {
+  //游戏负责人列表===============================
+  const directorRes = await getDirectorList();
+  let directorList = [
+    // { value: "ALL", label: "所有机器" },
+    // { value: "", label: "未使用" },
+  ];
+  const data3 = directorRes.data.list;
+  data3.forEach((e) => {
+    directorList.push({ value: e.name, label: e.name });
+  });
+  directorOptions.value = directorList;
+};
+getSelectList();
 // 分页
 const handleSizeChange = (val) => {
   pageSize.value = val;

+ 113 - 234
src/view/fileManager/qiniuTransfer.vue

@@ -77,10 +77,11 @@
     <div class="gva-btn-list">
       <div class="row center">
         <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item :to="{ path: '/' }">根目录</el-breadcrumb-item>
-          <el-breadcrumb-item>游戏任务相关</el-breadcrumb-item>
-          <el-breadcrumb-item>1000605_我是大东家酷派</el-breadcrumb-item>
-          <el-breadcrumb-item>脚本</el-breadcrumb-item>
+          <el-breadcrumb-item v-for="(breadcrumb, index) in breadcrumbList">
+            <a @click="clickBreadcrumb(breadcrumb, index)">{{
+              breadcrumb.name
+            }}</a>
+          </el-breadcrumb-item>
         </el-breadcrumb>
       </div>
     </div>
@@ -108,10 +109,10 @@
                     }}</span>
                   </div>
                 </div>
-                <i
+                <!-- <i
                   class="icon-file-selected"
                   @click="toggleSelect(file, file.id)"
-                ></i>
+                ></i> -->
                 <div class="file-name">
                   <span :title="file.name">{{ file.name }}</span>
                 </div>
@@ -334,7 +335,9 @@
         <el-button size="small" @click="fileFolderVisible = false"
           >取 消</el-button
         >
-        <el-button size="small" type="primary" @click="">确 定</el-button>
+        <el-button size="small" type="primary" @click="createFolder()"
+          >确 定</el-button
+        >
       </div>
     </template>
   </el-dialog>
@@ -353,7 +356,6 @@ import {
   listRentComputerShopList,
   listRentSetMealList,
   getRentComputerById,
-  addRentComputer,
   editRentComputer,
   deleteRentComputerById,
   deleteRentComputerByIds,
@@ -361,7 +363,11 @@ import {
   replaceNumRentComputer,
   rentingOutRentComputer,
 } from "@/api/rentComputer";
-import { getAllTaskSimple } from "@/api/fileManager";
+import {
+  getAllTaskSimple,
+  addFileFolder,
+  getFolderFileList,
+} from "@/api/fileManager";
 import { getDirectorList } from "@/api/responsiblePerson";
 import { useUserStore } from "@/pinia/modules/user";
 import { toSQLLine } from "@/utils/stringFun";
@@ -383,6 +389,7 @@ const formFolder = ref({
   parentId: 0,
 });
 const taskOptions = ref();
+const currentParentId = ref(0);
 //
 async function switchCreateFolder() {
   if (fileFolderVisible.value == false) {
@@ -400,7 +407,7 @@ async function switchCreateFolder() {
   const data = taskListRes.data.list;
   data.forEach((e) => {
     taskList.push({
-      value: e.task_id + "_" + e.task_name,
+      value: e.task_id + "|" + e.task_name,
       label: e.task_id + "_" + e.task_name,
     });
   });
@@ -422,6 +429,34 @@ function changeFolderType(e) {
 function changeTask(e) {
   formFolder.value.folder_name = e;
 }
+const createFolder = async () => {
+  var task = formFolder.value.task;
+  var taskArr = task.split("|");
+
+  const addFormFolder = {
+    name: formFolder.value.folder_name,
+    task_id: Number(taskArr[0]),
+    parent_id: Number(formFolder.value.parentId),
+  };
+
+  let res = await addFileFolder(addFormFolder);
+  console.log(res);
+  if (res.code === 0) {
+    ElMessage({
+      type: "success",
+      message: "文件夹创建成功!",
+    });
+    fileFolderVisible.value = false;
+    currentParentId.value = res.data.id;
+    breadcrumbList.value.push({ id: res.data.id, name: res.data.name });
+    initMaterialPage(currentParentId.value);
+  } else {
+    ElMessage({
+      type: "error",
+      message: res.message,
+    });
+  }
+};
 //===================
 const apis = ref([]);
 const form = ref({
@@ -497,21 +532,33 @@ const replaceNumForm = ref({
   shop_id: 0,
   shop_name: "",
 });
-let cardList = ref([]);
+let breadcrumbList = ref([
+  {
+    id: 0,
+    name: "根目录",
+  },
+]); // 面包屑
 let files = ref([]); // 文件数据列表
 const defultThumUrl = ref("src/assets/defultThumUrl.png"); // 默认文件夹的样式图片
 
+function clickBreadcrumb(breadcrumb, index) {
+  breadcrumbList.value = breadcrumbList.value.slice(0, index + 1);
+  currentParentId.value = breadcrumb.id;
+  this.initMaterialPage(currentParentId.value);
+}
 function dbClickOpenFile(file) {
   // 双击文件操作
 
   // 打开的是文件夹
-
-  this.initMaterialPage(this.id);
+  breadcrumbList.value.push({ id: file.id, name: file.name });
+  currentParentId.value = file.id;
+  this.initMaterialPage(currentParentId.value);
 }
 async function initMaterialPage(id = 0) {
+  searchInfo.value.parent_id = id;
   files.value = [];
   // 初始化获取素材管理分页(可以通过传递文件夹id来获取对应的文件列表,默认值0,获取的是根目录)
-  const table = await getRentComputerList({
+  const table = await getFolderFileList({
     page: page.value,
     pageSize: pageSize.value,
     ...searchInfo.value,
@@ -520,7 +567,8 @@ async function initMaterialPage(id = 0) {
     // tableData.value = table.data.list;
     for (let i = 0; i < table.data.list.length; i++) {
       var temp = {
-        name: table.data.list[i].pc_num,
+        id: table.data.list[i].id,
+        name: table.data.list[i].name,
       };
       files.value.push(temp);
     }
@@ -528,175 +576,6 @@ async function initMaterialPage(id = 0) {
 }
 initMaterialPage();
 
-// 计算租机到期时间
-const calculateRentDuration = async (scope) => {
-  scope.rent_end = new Date(
-    Date.parse(scope.rent_start) +
-      1 * 24 * 60 * 60 * 1000 * parseInt(scope.rent_duration)
-  );
-};
-// 计算退租剩余时间
-function calculateRentDay(scope) {
-  if (Date.parse(rent_end.value) < Date.parse(scope.rent_end)) {
-    scope.rent_end = rent_end.value;
-    ElMessage.error("退租时间不能大于到期时间");
-  }
-  scope.day = Math.ceil(
-    parseInt(
-      (Date.parse(rent_end.value) - Date.parse(scope.rent_end)) /
-        (24 * 60 * 60 * 1000) +
-        ""
-    )
-  );
-  // console.log(scope.day);
-}
-// 计算续费时间
-function calculateRenewDay(scope) {
-  if (Date.parse(rent_end.value) >= Date.parse(scope.rent_renew)) {
-    scope.rent_renew = rent_end.value;
-    ElMessage.error("续费时间不能小于到期时间");
-    visible_renew.value = false;
-  }
-  scope.day = Math.ceil(
-    parseInt(
-      (Date.parse(scope.rent_renew) - Date.parse(rent_end.value)) /
-        (24 * 60 * 60 * 1000) +
-        ""
-    )
-  );
-}
-// 拉起续费弹窗
-async function switchRenew(rowData) {
-  // console.log(rowData);
-  renewForm.value.pc_num = rowData.pc_num;
-  renewForm.value.pc_id = rowData.id;
-  renewForm.value.rent_renew = rowData.rent_end;
-  renewForm.value.day = 0;
-  rent_end.value = rowData.rent_end;
-  // console.log(renewForm);
-  if (visible_renew.value == false) {
-    visible_renew.value = true;
-  }
-}
-// 续费
-async function renew(rowData) {
-  let doForm = {
-    pc_num: rowData.pc_num,
-    pc_id: rowData.pc_id,
-    rent_renew: dayjs(new Date(rowData.rent_renew)).format(
-      "YYYY-MM-DD HH:mm:ss"
-    ),
-    day: rowData.day,
-  };
-  // renewRentComputer
-  const data = await renewRentComputer(doForm);
-  if (data.code == 0) {
-    visible_renew.value = false;
-    ElMessage.success(data.msg);
-    getTableData();
-  } else {
-    ElMessage.error(data.msg);
-  }
-}
-// 拉起退租弹窗
-async function switchRentingOut(rowData) {
-  cardList.value = [];
-  rentingOutForm.value.pc_num = rowData.pc_num;
-  rentingOutForm.value.pc_id = rowData.id;
-  rentingOutForm.value.rent_end = dayjs(new Date(rowData.rent_end)).format(
-    "YYYY-MM-DD HH:mm:ss"
-  );
-  rentingOutForm.value.day = 0;
-  rent_end.value = rowData.rent_end;
-  if (visible_rentingOut.value == false) {
-    visible_rentingOut.value = true;
-  }
-}
-function addCardMsg() {
-  let hasFlag = false;
-  for (let i = 0; i < cardList.value.length; i++) {
-    if (
-      cardList.value[i].pc_num == "" ||
-      cardList.value[i].add_day == undefined
-    ) {
-      hasFlag = true;
-      break;
-    }
-  }
-  if (hasFlag == true) {
-    ElMessage.error("有未填写项");
-  } else {
-    cardList.value.push({
-      pc_id: "",
-      add_day: null,
-    });
-  }
-}
-function deleteCardMsg(index) {
-  cardList.value.splice(index, 1);
-}
-// 退租
-async function rentingOut(rowData) {
-  var numDay = 0;
-  let AddList = [];
-  cardList.value.forEach((e) => {
-    numDay += e.add_day;
-    let temp = {
-      pc_num: e.pc_num,
-      add_day: Number(e.add_day),
-    };
-    AddList.push(temp);
-  });
-  if (numDay != rowData.day) {
-    ElMessage.error("匀时间天数错误!!!");
-    return;
-  }
-  let doForm = {
-    pc_id: rowData.pc_id,
-    rent_end: dayjs(new Date(rowData.rent_end)).format("YYYY-MM-DD HH:mm:ss"),
-    add_list: AddList,
-  };
-
-  const data = await rentingOutRentComputer(doForm);
-  // console.log(data)
-  if (data.code == 0) {
-    visible_rentingOut.value = false;
-    ElMessage.success(data.msg);
-    getTableData();
-  } else {
-    // ElMessage.error(data.msg);
-  }
-}
-// 拉起换编号弹窗
-async function switchReplaceNum(rowData) {
-  replaceNumForm.value.pc_num_old = rowData.pc_num;
-  replaceNumForm.value.shop_id = rowData.shop_id;
-  replaceNumForm.value.shop_name = rowData.shop_name;
-  if (visible_replaceNum.value == false) {
-    visible_replaceNum.value = true;
-  }
-}
-// 换编
-async function replaceNum(rowData) {
-  let doForm = {
-    pc_num_old: rowData.pc_num_old,
-    pc_num_new: rowData.pc_num_new,
-    shop_id: rowData.shop_id,
-  };
-  const data = await replaceNumRentComputer(doForm);
-  // console.log(data)
-  if (data.code == 0) {
-    visible_replaceNum.value = false;
-    ElMessage.success(data.msg);
-    getTableData();
-  } else {
-    // ElMessage.error(data.msg);
-  }
-}
-const downloadExcelTemplate = () => {
-  downloadTemplate("RentComputerTemplate.xlsx");
-};
-
 const getSpanArr = (data) => {
   spanArr = [];
   var pos = 0;
@@ -1018,45 +897,45 @@ const deleteMenu = async (id) => {
       });
     });
 };
-const enterDialog = async () => {
-  //   console.log(form.value);
-  menuForm.value.validate(async (valid) => {
-    if (valid) {
-      let res;
-      form.value.id = Number(form.value.id);
-      form.value.shop_id = Number(form.value.shop_id);
-      form.value.set_meal_id = Number(form.value.set_meal_id);
-      form.value.rent_duration = Number(form.value.rent_duration);
-      form.value.rent_start = formatDate(form.value.rent_start);
-      form.value.rent_end = formatDate(form.value.rent_end);
-      form.value.is_expire = Number(form.value.is_expire);
-      if (form.value.is_off_shelf == true) {
-        form.value.is_off_shelf = 1;
-      } else {
-        form.value.is_off_shelf = 0;
-      }
-      if (isEdit.value) {
-        res = await editRentComputer(form.value);
-      } else {
-        res = await addRentComputer(form.value);
-      }
-      if (res.code === 0) {
-        ElMessage({
-          type: "success",
-          message: isEdit.value ? "编辑成功" : "添加成功!",
-        });
-        getTableData();
-      } else {
-        ElMessage({
-          type: "error",
-          message: res.message,
-        });
-      }
-      initForm();
-      dialogFormVisible.value = false;
-    }
-  });
-};
+// const enterDialog = async () => {
+//   //   console.log(form.value);
+//   menuForm.value.validate(async (valid) => {
+//     if (valid) {
+//       let res;
+//       form.value.id = Number(form.value.id);
+//       form.value.shop_id = Number(form.value.shop_id);
+//       form.value.set_meal_id = Number(form.value.set_meal_id);
+//       form.value.rent_duration = Number(form.value.rent_duration);
+//       form.value.rent_start = formatDate(form.value.rent_start);
+//       form.value.rent_end = formatDate(form.value.rent_end);
+//       form.value.is_expire = Number(form.value.is_expire);
+//       if (form.value.is_off_shelf == true) {
+//         form.value.is_off_shelf = 1;
+//       } else {
+//         form.value.is_off_shelf = 0;
+//       }
+//       if (isEdit.value) {
+//         res = await editRentComputer(form.value);
+//       } else {
+//         res = await addRentComputer(form.value);
+//       }
+//       if (res.code === 0) {
+//         ElMessage({
+//           type: "success",
+//           message: isEdit.value ? "编辑成功" : "添加成功!",
+//         });
+//         getTableData();
+//       } else {
+//         ElMessage({
+//           type: "error",
+//           message: res.message,
+//         });
+//       }
+//       initForm();
+//       dialogFormVisible.value = false;
+//     }
+//   });
+// };
 </script>
 
 <style scoped lang="scss">
@@ -1110,30 +989,30 @@ const enterDialog = async () => {
       border: 1px solid #fff;
       box-sizing: border-box;
       position: relative;
-      height: 100px;
-      width: 80px;
+      height: 140px;
+      width: 200px;
       // background-color: green;
       margin: 5px;
       display: inline-block;
       cursor: pointer;
       .inner {
-        height: 60px;
-        width: 60px;
+        height: 100px;
+        width: 100px;
         // background-color: red;
         margin: 5px 10px;
         // padding: 10px 15px 10px 15px;
         .icon-folder {
           // 文件夹的样式
           display: inline-block;
-          width: 60px;
-          height: 60px;
+          width: 80px;
+          height: 80px;
           background-image: url(../../assets/svg/icon-file-close.svg);
           background-size: 100% 100%;
         }
         .icon-thumb {
           // 文件的样式
-          width: 60px;
-          height: 60px;
+          width: 80px;
+          height: 80px;
         }
       }
       .file-name {
@@ -1150,15 +1029,15 @@ const enterDialog = async () => {
       }
     }
     .hover-cover {
-      width: 60px;
-      height: 60px;
+      width: 100px;
+      height: 100px;
       position: absolute;
       left: 10px;
       top: 5px;
       background-color: rgb(0, 0, 0);
       opacity: 0;
       text-align: center;
-      line-height: 60px;
+      line-height: 100px;
       font-size: 12px;
     }
     .list-item:hover {

+ 2 - 5
src/view/rentComputer/rent_computer.vue

@@ -2,7 +2,7 @@
  * @Author: 倚楼听风雨 18408246387@163.com
  * @Date: 2022-11-16 17:16:17
  * @LastEditors: 倚楼听风雨 18408246387@163.com
- * @LastEditTime: 2023-02-20 11:58:25
+ * @LastEditTime: 2023-02-27 16:23:57
  * @FilePath: \log-server-web\src\view\logComputer\list_computer_distinct.vue
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -1109,10 +1109,7 @@ const getSelectList = async () => {
   });
   setMealOptions.value = setMealList;
   //游戏负责人列表===============================
-  const directorRes = await getDirectorList({
-    page: 1,
-    pageSize: 999,
-  });
+  const directorRes = await getDirectorList();
   let directorList = [
     { value: "ALL", label: "所有机器" },
     { value: "", label: "未使用" },