Browse Source

模版-字段修改/上传文件/下载文件

jingbb 6 months ago
parent
commit
9e4a93f991

+ 4 - 13
src/views/baseCode/Templates/BaseTemplates.data.ts

@@ -6,24 +6,15 @@ import { getWeekMonthQuarterYear } from '/@/utils';
 //列表数据
 export const columns: BasicColumn[] = [
    {
-    title: '状态(1-启用,0-停用)',
-    align:"center",
-    dataIndex: 'status'
-   },
-   {
-    title: '模板类型',
+    title: '模板类型(template type)',
     align:"center",
     dataIndex: 'templateType'
    },
    {
-    title: '模板名称',
-    align:"center",
-    dataIndex: 'templateName'
-   },
-   {
-    title: '模板地址',
+    title: '模板(template file)',
     align:"center",
-    dataIndex: 'templateFile'
+    dataIndex: 'templateFile',
+    slots: { customRender: 'templateFile' },
    },
 ];
 //查询数据

+ 54 - 103
src/views/baseCode/Templates/BaseTemplatesList.vue

@@ -4,28 +4,18 @@
    <BasicTable @register="registerTable" :rowSelection="rowSelection">
      <!--插槽:table标题-->
       <template #tableTitle>
-          <a-button type="primary" v-auth="'baseCode:base_templates:add'" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" v-auth="'baseCode:base_templates:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button type="primary" v-auth="'baseCode:base_templates:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button v-auth="'baseCode:base_templates:deleteBatch'">批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-        <!-- 高级查询 -->
-        <super-query :config="superQueryConfig" @search="handleSuperQuery" />
+      </template>
+      <template #templateFile="{ record }">
+        <a :href="baseUrl+record.templateFile">{{record.templateFile}}</a>
       </template>
        <!--操作栏-->
       <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+        <!-- <TableAction :actions="getTableAction(record)" /> -->
+        <span slot="upload" >
+          <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="uploadUrl"  @change="value => handleImportExcel(value, record)">
+            <a>上传</a>
+          </a-upload>
+          </span>
       </template>
       <!--字段回显插槽-->
       <template v-slot:bodyCell="{ column, record, index, text }">
@@ -42,15 +32,18 @@
   import {useModal} from '/@/components/Modal';
   import { useListPage } from '/@/hooks/system/useListPage'
   import BaseTemplatesModal from './components/BaseTemplatesModal.vue'
-  import {columns, searchFormSchema, superQuerySchema} from './BaseTemplates.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './BaseTemplates.api';
-  import { downloadFile } from '/@/utils/common/renderUtils';
-  import { useUserStore } from '/@/store/modules/user';
+  import {columns, searchFormSchema,} from './BaseTemplates.data';
+  import {list, getImportUrl,getExportUrl} from './BaseTemplates.api';
+  import { getToken } from '/@/utils/auth';
+  import { message } from 'ant-design-vue';
+  import { useGlobSetting } from '/@/hooks/setting';
+  import { defHttp } from '/@/utils/http/axios';
   const queryParam = reactive<any>({});
-  const checkedKeys = ref<Array<string | number>>([]);
-  const userStore = useUserStore();
+  const { domainUrl } = useGlobSetting();
+  const baseUrl = domainUrl + '/sys/common/static/';
   //注册model
-  const [registerModal, {openModal}] = useModal();
+  const [registerModal] = useModal();
+  const tokenHeader = { 'X-Access-Token': getToken() };
   //注册table数据
   const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
       tableProps:{
@@ -88,60 +81,6 @@
   })
 
   const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-  // 高级查询配置
-  const superQueryConfig = reactive(superQuerySchema);
-
-  /**
-   * 高级查询事件
-   */
-  function handleSuperQuery(params) {
-    Object.keys(params).map((k) => {
-      queryParam[k] = params[k];
-    });
-    reload();
-  }
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, handleSuccess);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
-   }
    /**
     * 成功回调
     */
@@ -154,33 +93,45 @@
   function getTableAction(record){
        return [
          {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-           auth: 'baseCode:base_templates:edit'
+           label: '上传',
+           scopedSlots: { customRender: 'upload' }
+          //  auth: 'baseCode:base_templates:edit'
          }
        ]
    }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-       return [
-         {
-           label: '详情',
-           onClick: handleDetail.bind(null, record),
-         }, {
-           label: '删除',
-           popConfirm: {
-             title: '是否确认删除',
-             confirm: handleDelete.bind(null, record),
-             placement: 'topLeft',
-           },
-           auth: 'baseCode:base_templates:delete'
-         }
-       ]
-   }
-
 
+   function handleImportExcel(info,record){
+        if (info.file.status !== 'uploading') {
+          // console.log(info.file, info.fileList);
+        }
+        if (info.file.status === 'done') {
+          if (info.file.response.success) {
+            var row = JSON.parse(JSON.stringify(record))
+            row.templateFile = info.file.response.message
+            editData(row)
+          } else {
+            message.error(`${info.file.name} ${info.file.response.message}.`);
+          }
+        } else if (info.file.status === 'error') {
+          message.error(`文件上传失败: ${info.file.msg} `);
+        }
+      }
+      function editData(record){
+        let params = record,
+        url = '/baseCode/baseTemplates/edit'
+        defHttp.post({url,params}, { isTransformResponse: false })
+        .then((res) => {
+            if (res.success) {
+               reload()
+               message.success('上传成功');
+            } else {
+               message.error(res.message);
+            }
+        })
+        .finally(() => {
+           
+        });
+      }
 </script>
 
 <style lang="less" scoped>