Browse Source

fix:修改教材征订

全蛋 8 months ago
parent
commit
e6ab4a3455

+ 5 - 0
src/views/educational/textbookSubscription/components/changeHistory.vue

@@ -15,6 +15,11 @@
     bordered: true,
     bordered: true,
     immediate: false,
     immediate: false,
     columns: [
     columns: [
+      {
+        title: '变更Id',
+        dataIndex: 'wfTextbookSubscriptionItemId',
+        align: 'left',
+      },
       {
       {
         title: '变更类型',
         title: '变更类型',
         dataIndex: 'alterationType',
         dataIndex: 'alterationType',

+ 9 - 8
src/views/educational/textbookSubscription/components/changeTextBook.vue

@@ -21,7 +21,7 @@
   });
   });
   const [register, { closeModal, setModalProps }] = useModalInner((data) => {
   const [register, { closeModal, setModalProps }] = useModalInner((data) => {
     changeId.value = data.id;
     changeId.value = data.id;
-    dataSource.value = [data];
+    setTableData([data]);
     rawValue.studentSubscriptionNumber = data.studentSubscriptionNumber;
     rawValue.studentSubscriptionNumber = data.studentSubscriptionNumber;
     rawValue.teacherSubscriptionNumber = data.teacherSubscriptionNumber;
     rawValue.teacherSubscriptionNumber = data.teacherSubscriptionNumber;
   });
   });
@@ -69,6 +69,12 @@
       };
       };
     },
     },
   });
   });
+  const [indexTable, { setTableData, getDataSource }] = useTable({
+    title: '教材征订信息',
+    columns: changeColumns,
+    bordered: true,
+    pagination: false,
+  });
   const { createMessage } = useMessage();
   const { createMessage } = useMessage();
   const handleSubmit = () => {
   const handleSubmit = () => {
     dataSource.value = getSelectRows();
     dataSource.value = getSelectRows();
@@ -84,7 +90,7 @@
       return createMessage.warning('您未进行任何变更,请选择变更课程或者变更征订数量后提交');
       return createMessage.warning('您未进行任何变更,请选择变更课程或者变更征订数量后提交');
     }
     }
 
 
-    const value = dataSource.value[0];
+    const value = getDataSource()[0];
     if (changeType.value === 1) {
     if (changeType.value === 1) {
       if (
       if (
         rawValue.studentSubscriptionNumber === value.studentSubscriptionNumber &&
         rawValue.studentSubscriptionNumber === value.studentSubscriptionNumber &&
@@ -128,12 +134,7 @@
     title="变更"
     title="变更"
   >
   >
     <a-button type="primary" @click="visible = true">选择变更课程</a-button>
     <a-button type="primary" @click="visible = true">选择变更课程</a-button>
-    <BasicTable
-      :bordered="true"
-      :pagination="false"
-      :data-source="dataSource"
-      :columns="changeColumns"
-    >
+    <BasicTable @register="indexTable">
       <template #studentSubscriptionNumber="{ record }">
       <template #studentSubscriptionNumber="{ record }">
         <a-input-number
         <a-input-number
           :default-value="0"
           :default-value="0"

+ 75 - 0
src/views/educational/textbookSubscription/components/classImport.vue

@@ -0,0 +1,75 @@
+<script setup lang="ts">
+  import BasicModal from '/@/components/Modal/src/BasicModal.vue';
+  import { useModal } from '/@/components/Modal';
+  import Upload from '/@/components/Form/src/components/Upload.vue';
+  import { ref } from 'vue';
+  import { postBaseClassCourseImport } from '/@/services/apis/BaseClassCourseController';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { baseDownloadFileUrl } from '/@/utils/file/download';
+  const [modalRegister, { closeModal }] = useModal();
+  const errMsg = ref('');
+  const folderId = ref('');
+  const { createMessage } = useMessage();
+  const data = ref('');
+  const handleUpdate = async (e) => {
+    data.value = e[0];
+  };
+  const handleSubmit = async () => {
+    try {
+      await postBaseClassCourseImport({ file: data.value }, 'none');
+      createMessage.success('导入成功');
+      folderId.value = '';
+      closeModal();
+    } catch (err: any) {
+      errMsg.value = err;
+    }
+  };
+  const handleCancel = () => {
+    folderId.value = '';
+    errMsg.value = '';
+    closeModal();
+  };
+  const handleDownLoad = async () => {
+    await baseDownloadFileUrl(
+      'https://zhxy.cqtlzjzx.com/minio/static/resources/%E7%8F%AD%E7%BA%A7%E8%AF%BE%E7%A8%8B%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx',
+      '班级课表导入模板.xlsx',
+    );
+  };
+</script>
+
+<template>
+  <BasicModal
+    @cancel="handleCancel"
+    @ok="handleSubmit"
+    @register="modalRegister"
+    destroyOnClose
+    v-bind="$attrs"
+    title="教材入库导入"
+  >
+    <div class="flex flex-col mt-[24px]">
+      <div class="flex flex-col">
+        <span class="text-[16px] text-[1000]">1、 下载导入模板</span>
+        <a-button type="primary" class="w-[110px] mt-[12px]" @click="handleDownLoad">
+          下载模板</a-button
+        >
+      </div>
+      <div class="mt-[12px]">
+        <span class="text-[16px] text-[1000]">2、 上传文件</span>
+        <Upload
+          class="mt-[12px]"
+          accept="xlsx,xls"
+          :maxNumber="1"
+          v-model:value="folderId"
+          :multiple="false"
+          @success="handleUpdate"
+        />
+      </div>
+      <span class="mt-[24px]">导入反馈:</span>
+      <div style="border: 1px solid #ccc; width: 100%; height: 300px; overflow: auto; color: red">
+        {{ errMsg }}
+      </div>
+    </div>
+  </BasicModal>
+</template>
+
+<style scoped lang="less"></style>

+ 5 - 4
src/views/educational/textbookSubscription/components/data.config.ts

@@ -167,18 +167,19 @@ export const textbookColumns: BasicColumn[] = [
   {
   {
     title: '作者(主编)',
     title: '作者(主编)',
     dataIndex: 'editorInChief',
     dataIndex: 'editorInChief',
-    width: 100,
-    align: 'left',
+    width: 150,
   },
   },
   {
   {
     title: '出版社',
     title: '出版社',
     dataIndex: 'publishingHouse',
     dataIndex: 'publishingHouse',
-    width: 100,
+    width: 150,
+    align: 'left',
   },
   },
   {
   {
     title: '版次',
     title: '版次',
     dataIndex: 'version',
     dataIndex: 'version',
-    width: 100,
+    align: 'left',
+    width: 150,
   },
   },
 
 
   {
   {

+ 22 - 5
src/views/educational/textbookSubscription/components/textBookPop.vue

@@ -1,8 +1,9 @@
 <script setup lang="ts">
 <script setup lang="ts">
+  import { useModal, useModalInner } from '/@/components/Modal';
   import BasicModal from '/@/components/Modal/src/BasicModal.vue';
   import BasicModal from '/@/components/Modal/src/BasicModal.vue';
-  import { useModalInner } from '/@/components/Modal';
   import BasicTable from '/@/components/Table/src/BasicTable.vue';
   import BasicTable from '/@/components/Table/src/BasicTable.vue';
   import { useTable } from '/@/components/Table';
   import { useTable } from '/@/components/Table';
+  import classImportVue from './classImport.vue';
   import { textbookColumns } from '/@/views/educational/textbookSubscription/components/data.config';
   import { textbookColumns } from '/@/views/educational/textbookSubscription/components/data.config';
   import {
   import {
     getWfTextbookSubscriptionInstockroomList,
     getWfTextbookSubscriptionInstockroomList,
@@ -15,6 +16,8 @@
     wfTextbookSubscriptionId.value = data.id;
     wfTextbookSubscriptionId.value = data.id;
     reload();
     reload();
   });
   });
+  const [modalRef, { openModal }] = useModal();
+
   const [tableReg, { getDataSource, reload }] = useTable({
   const [tableReg, { getDataSource, reload }] = useTable({
     title: '教材征订表',
     title: '教材征订表',
     api: getWfTextbookSubscriptionInstockroomList,
     api: getWfTextbookSubscriptionInstockroomList,
@@ -22,6 +25,7 @@
     immediate: false,
     immediate: false,
     showTableSetting: true,
     showTableSetting: true,
     bordered: true,
     bordered: true,
+    resizeHeightOffset: 200,
     beforeFetch: (params) => {
     beforeFetch: (params) => {
       return {
       return {
         wfTextbookSubscriptionId: wfTextbookSubscriptionId.value,
         wfTextbookSubscriptionId: wfTextbookSubscriptionId.value,
@@ -49,24 +53,36 @@
       setModalProps({
       setModalProps({
         confirmLoading: true,
         confirmLoading: true,
       });
       });
-      await postWfTextbookSubscriptionInstockroom(getDataSource(), 'none');
+      await postWfTextbookSubscriptionInstockroom(
+        getDataSource().filter((item) => item.inNum),
+        'none',
+      );
       createMessage.success('操作成功');
       createMessage.success('操作成功');
       closeModal();
       closeModal();
     } catch (e) {
     } catch (e) {
-      console.log(e);
+      createMessage.error('操作失败');
     } finally {
     } finally {
       setModalProps({
       setModalProps({
         confirmLoading: false,
         confirmLoading: false,
       });
       });
     }
     }
   };
   };
+  const handleExport = () => {
+    openModal(true);
+  };
 </script>
 </script>
 
 
 <template>
 <template>
-  <BasicModal @ok="handleSubmit" title="教材入库" default-fullscreen @register="register">
+  <BasicModal
+    @ok="handleSubmit"
+    title="教材入库"
+    v-bind="$attrs"
+    default-fullscreen
+    @register="register"
+  >
     <BasicTable @register="tableReg">
     <BasicTable @register="tableReg">
       <template #toolbar>
       <template #toolbar>
-        <a-button type="primary">导入</a-button>
+        <a-button type="primary" @click="handleExport">导入</a-button>
       </template>
       </template>
       <template #action="{ record }">
       <template #action="{ record }">
         <a-input-number
         <a-input-number
@@ -78,6 +94,7 @@
         />
         />
       </template>
       </template>
     </BasicTable>
     </BasicTable>
+    <classImportVue @register="modalRef" />
   </BasicModal>
   </BasicModal>
 </template>
 </template>