gemercheung преди 1 година
родител
ревизия
37b69a504d
променени са 4 файла, в които са добавени 54 реда и са изтрити 24 реда
  1. 5 0
      src/request/config.ts
  2. 3 4
      src/store/cameraVersion.ts
  3. 38 15
      src/view/cameraVersion/edit.vue
  4. 8 5
      src/view/cameraVersion/index.vue

+ 5 - 0
src/request/config.ts

@@ -25,6 +25,8 @@ import {
   userReg,
   getCaseScriptInfoUrl,
   getCaseScriptSaveOrUpdateUrl,
+  cameraVersionUpload,
+  cameraVersionAppUpload,
 } from "./urls";
 
 // 不需要登录就能请求的接口
@@ -51,6 +53,9 @@ export const fileUrls = [
   uploadFile,
   insertCaseFile,
   saveCaseFileInfo,
+  cameraVersionUpload,
+  cameraVersionAppUpload
+
 ];
 // 需要限定卫GET请求方式的url
 export const GetUrls = [getRoleList, getCompanyList];

+ 3 - 4
src/store/cameraVersion.ts

@@ -25,10 +25,9 @@ export type CameraVersionType = PaggingReq<{
 }>
 
 export const getCameraVersionList = (params: CameraVersionType) => {
-
-  return axios.post(cameraVersionList, params) as unknown as PaggingRes<{}>;
+  return axios.post(cameraVersionList, params) as unknown as PaggingRes<CameraVersionEntity[]>;
 }
 
-export const uploadFile = async (file: File) => {
-  return (await axios.post<string>(cameraVersionUpload, { file })).data;
+export const addCameraVersion = async (params: CameraVersionType) => {
+  return (await axios.post<string>(cameraVersionUpload, { ...params })).data;
 };

+ 38 - 15
src/view/cameraVersion/edit.vue

@@ -1,19 +1,24 @@
 <template>
-  <el-form ref="form" label-width="120px" class="cameraVersion-from">
+  <el-form
+    :model="data"
+    ref="form"
+    label-width="120px"
+    class="cameraVersion-from"
+  >
     <el-form-item label="设备类型" class="mandatory">
       {{ cameraTypeDesc[data.type] }}
     </el-form-item>
     <el-form-item label="版本号" class="mandatory">
       <el-input
         maxlength="30"
-        v-model="data.version"
+        v-model.trim="data.version"
         placeholder="请输入最新版本号"
       ></el-input>
     </el-form-item>
-    <el-form-item label="最低版本号" class="mandatory">
+    <el-form-item label="最低版本号">
       <el-input
         maxlength="30"
-        v-model="data.minVersion"
+        v-model.trim="data.minVersion"
         placeholder="请输入最低版本(低于此版本号强制更新)"
       ></el-input>
     </el-form-item>
@@ -23,7 +28,7 @@
         maxlength="200"
         type="textarea"
         :autosize="{ minRows: 4, maxRows: 10 }"
-        v-model="data.description"
+        v-model.trim="data.description"
         placeholder="请输入版本更新说明"
       ></el-input>
     </el-form-item>
@@ -43,9 +48,9 @@
         <el-button type="primary" :disabled="!!data.file">
           <el-icon><Upload /></el-icon>上传
         </el-button>
-        <!-- <template v-slot:tip>
-          <div class="el-upload__tip">注:可上传{{ size }}以内的{{ formatDesc }}</div>
-        </template> -->
+        <template v-slot:tip>
+          <div class="el-upload__tip">注:可上传{{ size }}以内的文件</div>
+        </template>
         <!-- <template v-slot:file="{ file }: { file: UploadFile }">
           <div class="file" @click.stop="previewFile()">
             <div>
@@ -62,14 +67,14 @@
 
 <script setup lang="ts">
 import { computed, ref, watchEffect } from "vue";
-// import { ElMessage } from "element-plus";
 import { QuiskExpose } from "@/helper/mount";
 import { CameraVersionEntity } from "@/store/cameraVersion";
 import { useUpload } from "@/hook/upload";
 import { maxFileSize } from "@/constant/caseFile";
 import { CameraType } from "@/store/camera";
 import { cameraTypeDesc } from "@/constant/camera";
-import { uploadFile } from "@/store/cameraVersion";
+import { addCameraVersion, CameraVersionType } from "@/store/cameraVersion";
+import { ElMessage } from "element-plus";
 
 const cameraTypes = [CameraType.SWKJ, CameraType.SWSS1, CameraType.SWSS2];
 const props = defineProps<{
@@ -84,14 +89,16 @@ const data = ref<CameraVersionEntity>({
   file: undefined,
 });
 
+const form = ref();
+
 const isAdd = computed(() => !props.entity?.id);
 
 const httpsApi = async ({ file }) => {
   console.log("httpsApi", file);
-  let fileUrl = await uploadFile(file);
-
-  file.url = fileUrl;
-  console.log("httpsApi", file, fileUrl);
+  // let fileUrl = await uploadFile(file);
+  data.value.file = file;
+  // file.url = fileUrl;
+  // console.log("httpsApi", file, fileUrl);
 };
 
 const { size, fileList, upload, removeFile, previewFile, file, accept } =
@@ -100,7 +107,23 @@ const { size, fileList, upload, removeFile, previewFile, file, accept } =
     formats: [".jpg", ".jpeg"],
   });
 defineExpose<QuiskExpose>({
-  async submit() {},
+  async submit() {
+    if (!data.value.version) {
+      ElMessage.error("版本号不能为空!");
+      throw "版本号不能为空!";
+    }
+    if (!data.value.file) {
+      ElMessage.error("文件不能为空!");
+      throw "文件不能为空!";
+    }
+    if (!data.value.description) {
+      ElMessage.error("版本更新说明不能为空!");
+      throw "版本更新说明不能为空!";
+    }
+    const res = await addCameraVersion(data.value as any as CameraVersionType);
+    console.log("res", res);
+    ElMessage.success("添加成功!");
+  },
 });
 </script>
 

+ 8 - 5
src/view/cameraVersion/index.vue

@@ -22,21 +22,22 @@
         >新增</el-button
       >
     </div>
+    {{ pageHook }}
     <el-table
       :data="tableData"
       tooltip-effect="dark"
       style="width: 100%"
       size="large"
     >
-      <el-table-column label="版本号" prop="deptName"></el-table-column>
+      <el-table-column label="版本号" prop="version"></el-table-column>
       <el-table-column
         label="版本更新说明"
-        prop="deptLevelStr"
+        prop="description"
       ></el-table-column>
-      <el-table-column label="最低版本号" prop="deptLevelStr"></el-table-column>
+      <el-table-column label="最低版本号" prop="minVersion"></el-table-column>
       <el-table-column label="创建人" prop="deptLevelStr"></el-table-column>
-      <el-table-column label="创建时间" prop="deptLevelStr"></el-table-column>
-      <el-table-column label="状态" prop="deptLevelStr"></el-table-column>
+      <el-table-column label="创建时间" prop="createTime"></el-table-column>
+      <el-table-column label="状态" prop="status"></el-table-column>
     </el-table>
     <com-pagination
       @size-change="pageHook.pagging.changPageSize"
@@ -68,4 +69,6 @@ const addHandler = async () => {
   (await addCameraVersion({ type: pageHook.pagging.state.query.type })) &&
     pageHook.pagging.refresh();
 };
+
+
 </script>