Browse Source

Merge branch 'master' of http://ipos.biz:3000/adminTk/Web

DOVER-GLOBAL\10090792 1 year ago
parent
commit
e2379814c2

+ 108 - 15
admin.ui.plus-master/src/api/admin/deviceAuthorization/softwarePackageManagementApi.ts

@@ -1,7 +1,9 @@
+import { AxiosResponse } from 'axios'
+
 import {ContentType, HttpClient, RequestParams} from "/@/api/admin/http-client";
 import {
   softwarePackageManagement_DtoResult,
-  softwarePackageManagement_PageInput, softwarePackageManagement_TableData
+  softwarePackageManagement_PageInput, softwarePackageManagement_TableData,softwarePackageManagement_SearchFilter
 } from "/@/api/admin/deviceAuthorization/softwarePackageManagementDto";
 import {oilSdkAuthorPageOutput, oilSdkTableModel} from "/@/api/admin/deviceAuthorization/oilSdkAuthorDto";
 
@@ -17,7 +19,28 @@ export class SoftwarePackageManagementApi<SecurityDataType = unknown> extends Ht
    * @request GET:
    * @secure
    */
-  getPageData = (query: softwarePackageManagement_PageInput) =>{
+
+  getPageData = (data: softwarePackageManagement_PageInput, params: RequestParams = {}) =>
+    this.request<softwarePackageManagement_TableData, any>({
+      path: `/api/app/software/get-page`,
+      method: 'POST',
+      body: data,
+      secure: true,
+      type: ContentType.Json,
+      format: 'json',
+      ...params,
+    })
+  getPageData2 = (query: softwarePackageManagement_PageInput) =>{
+    debugger
+   var dd = this.request<AxiosResponse, any>({
+      path: `/api/app/software/get-page`,
+      method: 'POST',
+      body: query,
+      secure: true,
+      type: ContentType.Json,
+      format: 'json',
+    })
+    debugger
     return new Promise(resolve => {
       setTimeout(() => {
         resolve({
@@ -28,7 +51,7 @@ export class SoftwarePackageManagementApi<SecurityDataType = unknown> extends Ht
             total: 100,
             list:[{
               guid: 1,
-              date: '2020-10-21',
+              date: '2020-11-22',
               softwareType: 0,
               equipmentType:0,
               softwareName: 'test',
@@ -96,9 +119,11 @@ export class SoftwarePackageManagementApi<SecurityDataType = unknown> extends Ht
    * @request GET:
    * @secure
    */
-  updateData = (data:softwarePackageManagement_TableData) => {
+ updateData = (data:softwarePackageManagement_TableData) => {
     return new Promise(resolve => {
+      // 设置定时器
       setTimeout(() => {
+        // 返回更新后的数据
         resolve({
           success: true,
           code: 200,
@@ -109,6 +134,36 @@ export class SoftwarePackageManagementApi<SecurityDataType = unknown> extends Ht
     })
   }
 
+  uploadFile = (
+    data: {
+      /** @format binary */
+      file: File
+    },
+    query?: {
+      /**
+       * 文件目录
+       * @default ""
+       */
+      fileDirectory?: string
+      /**
+       * 文件重命名
+       * @default true
+       */
+      fileReName?: boolean
+    },
+    params: RequestParams = {}
+  ) =>
+    this.request<softwarePackageManagement_DtoResult, any>({
+      path: `/api/app/software/upload-file`,
+      method: 'POST',
+      query: query,
+      body: data,
+      secure: true,
+      type: ContentType.FormData,
+      format: 'json',
+      ...params,
+    })
+
   /**
    * No description
    *
@@ -118,16 +173,54 @@ export class SoftwarePackageManagementApi<SecurityDataType = unknown> extends Ht
    * @request GET:
    * @secure
    */
-  addData = (data:softwarePackageManagement_TableData) => {
-    return new Promise(resolve => {
-      setTimeout(() => {
-        resolve({
-          success: true,
-          code: 200,
-          msg: '',
-          data: {}
-        })
-      },this.timer)
-    })
+  addData = (data:softwarePackageManagement_TableData) => 
+  this.request<AxiosResponse, any>({
+    path: `/api/app/software/upload-file`,
+    method: 'POST',
+    body: data,
+    secure: true,
+    type: ContentType.Json,
+    format: 'json',
+  })
+
+/**
+   * No description
+   *
+   * @tags
+   * @name getPageData
+   * @summary 分页查询
+   * @request GET:
+   * @secure
+   */
+/* DownloadFile = (data:softwarePackageManagement_TableData) => 
+this.request<AxiosResponse, any>({
+  path: `/api/app/software/download-file`,
+  method: 'GET',
+  body: data,
+  secure: true,
+  type: ContentType.Json,
+  format: 'json',
+}) */
+DownloadFile = async (data: softwarePackageManagement_TableData) => {
+  try {
+    const response = await this.request<AxiosResponse, any>({
+      path: `/api/app/software/download-file?guid=`+data.guid,
+      method: 'GET',
+      body: data,
+      secure: true,
+      type: ContentType.Json,
+      format: 'json',
+      responseType: 'blob', // 添加这一行
+    }); 
+    const filename =  data.fileName?.toString();
+    const blob = new Blob([response.data], { type: 'application/x-rar-compressed' });
+    const link = document.createElement('a');
+    debugger
+    link.href = URL.createObjectURL(blob);
+    link.download = filename; // 请替换为实际文件名
+    link.click();
+  } catch (error) {
+    console.error('下载失败:', error);
   }
+};
 }

+ 1 - 0
admin.ui.plus-master/src/api/admin/deviceAuthorization/softwarePackageManagementDto.ts

@@ -115,3 +115,4 @@ export interface softwarePackageManagement_PageInput {
   PageSize?: number
   Filter?: softwarePackageManagement_SearchFilter
 }
+

+ 2 - 1
admin.ui.plus-master/src/api/admin/http-client.ts

@@ -41,6 +41,7 @@ export interface FullRequestParams extends Omit<AxiosRequestConfig, 'data' | 'pa
   loadingOptions?: LoadingOptions
   /** 取消重复请求 */
   cancelRepeatRequest?: boolean
+  responseType?: 'blob' | 'json' | 'text'
 }
 
 export type RequestParams = Omit<FullRequestParams, 'body' | 'method' | 'query' | 'path'>
@@ -308,7 +309,7 @@ export class HttpClient<SecurityDataType = unknown> {
     loadingOptions = {},
     cancelRepeatRequest = false,
     ...params
-  }: FullRequestParams): Promise<T> => {
+  }: FullRequestParams  & { responseType?: 'blob' | 'json' | 'text' }): Promise<T> => {
     const secureParams =
       ((typeof secure === 'boolean' ? secure : this.secure) && this.securityWorker && (await this.securityWorker(this.securityData))) || {}
     const requestParams = this.mergeRequestParams(params, secureParams)

+ 6 - 3
admin.ui.plus-master/src/components/my-upload-file/index.vue

@@ -21,13 +21,14 @@
 </template>
 
 <script setup lang="ts">
-import {UploadFilled} from "@element-plus/icons-vue";
+import {Refresh, UploadFilled} from "@element-plus/icons-vue";
 import { useUserInfo } from '/@/stores/userInfo'
-import {ElMessage, UploadProps, UploadUserFile} from "element-plus";
+import {UploadInstance,ElMessage, UploadProps, UploadUserFile} from "element-plus";
 import {onMounted, ref, watch} from "vue";
 
 const useUserInfoStores = useUserInfo()
 
+const uploadRef = ref<UploadInstance>()
 
 //接受父组件的传值
 const props = defineProps({
@@ -79,7 +80,9 @@ onMounted(()=>{
   if(file.value.fileUrl) fileList.value = [{name:file.value.fileName,url:file.value.fileUrl} as UploadUserFile]
 })
 
-
+const onSure = async () => {
+  uploadRef.value!.submit()
+}
 
 </script>
 

+ 3 - 3
admin.ui.plus-master/src/i18n/index.ts

@@ -14,9 +14,9 @@ import { useThemeConfig } from '/@/stores/themeConfig'
  */
 
 // element plus 自带国际化
-import enLocale from 'element-plus/lib/locale/lang/en'
-import zhcnLocale from 'element-plus/lib/locale/lang/zh-cn'
-import zhtwLocale from 'element-plus/lib/locale/lang/zh-tw'
+import enLocale from 'element-plus/es/locale/lang/en'
+import zhcnLocale from 'element-plus/es/locale/lang/zh-cn'
+import zhtwLocale from 'element-plus/es/locale/lang/zh-tw'
 
 // 定义变量内容
 const messages = {}

+ 10 - 4
admin.ui.plus-master/src/views/admin/authorize/softwarePackageManagement/components/form-edit.vue

@@ -43,7 +43,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <MyUploadFile  :file="{fileUrl:formData.editData.downloadUrl,fileName:formData.editData.fileName}"  @onUpload="onUpload"/>
+        <MyUploadFile  v-model="formData.fileValue" ref="uploadFileRef" :file="{fileUrl:formData.editData.downloadUrl,fileName:formData.editData.fileName}"  @onUpload="onUpload"/>
       </el-form>
       <template #footer>
         <span class="dialog-footer">
@@ -62,6 +62,7 @@ import eventBus from "/@/utils/mitt";
 import {softwarePackageManagement_TableData} from "/@/api/admin/deviceAuthorization/softwarePackageManagementDto";
 import {useGlobalCacheStore} from "/@/stores/globalCacheStore";
 import {SoftwarePackageManagementApi} from "/@/api/admin/deviceAuthorization/softwarePackageManagementApi";
+import { de } from "element-plus/es/locale";
 
 const MyUploadFile = defineAsyncComponent(() => import('/@/components/my-upload-file/index.vue'))
 
@@ -87,6 +88,7 @@ const formData = reactive({
   buttonText:'',
   isShowDialog: false,
   editData:{} as softwarePackageManagement_TableData,
+  fileValue: null,
 })
 
 
@@ -144,19 +146,23 @@ watch(() => formData.isShowDialog,(newVal) => {
 const onUpload = (val) => {
   formData.editData.downloadUrl = val.fileUrl
   formData.editData.fileName = val.fileName
+  //MyUploadFile.value?.onSure();
 }
 
+const uploadFileRef = ref(null);
+
 const onSubmit =  () => {
+debugger
   formRef.value.validate(async (valid: boolean) =>{
-    if(!valid) return
+    //if(!valid) return
 
     formData.loading = true
     let res = {} as any
     console.log(formData.editData)
     if(formData.formType === Form.UPDATE){
-      res = await new SoftwarePackageManagementApi().updateData(formData.editData)
+      res = await new SoftwarePackageManagementApi().addData(formData.editData as softwarePackageManagement_TableData)
     }else if(formData.formType === Form.ADD){
-      res = await new SoftwarePackageManagementApi().updateData(formData.editData)
+      res = await new SoftwarePackageManagementApi().addData(formData.editData as softwarePackageManagement_TableData)
     }else {
       formData.loading = false
       return

+ 43 - 5
admin.ui.plus-master/src/views/admin/authorize/softwarePackageManagement/index.vue

@@ -71,6 +71,7 @@
               </template>
             </el-table-column>
             <el-table-column label="操作"  fixed="right" header-align="center" align="center" class="right-operation" width="140">
+             
               <template #default="{ row }" >
                 <el-link
                   class="my-el-link mr12 ml12"
@@ -138,6 +139,9 @@
               layout="total, sizes, prev, pager, next, jumper"
             />
           </div>
+          <template> 
+            <a ref="downloadLink" style="display: none;"></a>
+          </template>
         </el-card>
       </el-col>
     </el-row>
@@ -158,6 +162,7 @@ import {
 import type {pageInput} from "/@/api/admin/shareDto/shareDto";
 import eventBus from "/@/utils/mitt";
 import {SoftwarePackageManagementApi} from "/@/api/admin/deviceAuthorization/softwarePackageManagementApi";
+
 /**引入组件*/
 const EditDialog = defineAsyncComponent(() => import('./components/form-edit.vue'))
 const DownloadDialog = defineAsyncComponent(() => import('./components/table-download.vue'))
@@ -220,7 +225,7 @@ const softwareData = reactive({
   total: 0,
 } as softwarePackageManagement_AllDto)
 
-
+const downloadLink = ref()
 /**条件查询 */
 const onQuery = () => {
   init()
@@ -248,7 +253,8 @@ const flattenObject = (obj, parentKey = '') => {
 const init = async () => {
   softwareData.loading = true
   const query = flattenObject({ Filter: softwareData.Filter})
-  const res:any = await new SoftwarePackageManagementApi().getPageData({...softwareData.pageInput, ...query})
+  debugger
+  const res:any = await new SoftwarePackageManagementApi().getPageData({...softwareData.pageInput, Filter:softwareData.Filter})
   softwareData.tableModel = res?.data?.list ?? []
   softwareData.total = res?.data?.total ?? 0
   softwareData.loading = false
@@ -308,17 +314,48 @@ const editTableData = (row) => {
 
 /**发布*/
 const onRelease = (row) => {
-  alert('发布')
+  debugger
+  //downloadUrl
+  softwareData.loading = true;
+   (row  as softwarePackageManagement_TableData).state = 1
+  var RowData =  JSON.parse(JSON.stringify(row))
+  var res =  new SoftwarePackageManagementApi().addData(RowData as softwarePackageManagement_TableData)
+  softwareData.loading = false
 }
 
 /**下载*/
 const onDownload = (row) => {
-  alert('下载')
+  var RowData =  JSON.parse(JSON.stringify(row))
+  const params = RowData as softwarePackageManagement_TableData
+  //const link = downloadLink.value;
+  //const url = `http://localhost:8000/api/app/software/download-file`;
+  //link.href = url;
+  //link.click();
+  const filename =  params.fileName?.toString();
+  /* var res =  new SoftwarePackageManagementApi().DownloadFile(row as softwarePackageManagement_TableData) */
+  const fileUrl = import.meta.env.VITE_API_URL +'/api/app/software/download-file?guid='+params.guid; // 替换为实际文件URL
+                    fetch(fileUrl)
+                        .then(response => response.blob())
+                        .then(blob => {
+                            const link = document.createElement('a');
+                            link.href = URL.createObjectURL(blob);
+                            link.download = filename;
+                            link.click();
+                        })
+                        .catch(error => {
+                            console.error('下载失败:', error);
+                        });
+ // var res =  new SoftwarePackageManagementApi().DownloadFile(RowData as softwarePackageManagement_TableData)
+  
 }
 
 /**失效*/
 const onFailure = (row) => {
-  alert('失效')
+  softwareData.loading = true;
+   (row  as softwarePackageManagement_TableData).state = 2
+  var RowData =  JSON.parse(JSON.stringify(row))
+  var res =  new SoftwarePackageManagementApi().addData(RowData as softwarePackageManagement_TableData)
+  softwareData.loading = false
 }
 
 /**下载记录*/
@@ -353,6 +390,7 @@ const getColor = (val,row) => {
   return {}
 }
 
+
 </script>
 
 <style scoped lang="scss">