Ver Fonte

任务模块接口联调

hlp há 1 ano atrás
pai
commit
0e1f12500b

+ 12 - 5
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/ExportModal.vue

@@ -37,11 +37,13 @@
 
 <script lang="ts" setup>
 import { ref, watch } from 'vue';
-import { defalutExportForm, PRIORITY,ALL_USERS } from './api';
+import { defalutExportForm, PRIORITY, ALL_USERS } from './api';
 import { post } from '@/utils/request';
 import { Emits, Props } from './type';
+import { dayjs } from 'element-plus';
 const props = defineProps<Props>();
 const emits = defineEmits<Emits>();
+
 watch(() => props.visible, (val) => {
   if (val) {
     form.value = { ...defalutExportForm }
@@ -50,21 +52,26 @@ watch(() => props.visible, (val) => {
     })
   }
 })
+
+const formRef = ref();
+const form = ref<any>({})
+const executorValueData = ref<any>([])
+
 function closeVisible() {
   emits("close")
 }
 function submit() {
-  const { executorId, ...rest } = form.value;
+  const { executorId, startDate, endDate, ...rest } = form.value;
   const data = {
     ...rest,
+    startDate: startDate && dayjs(startDate).format('YYYY-MM-DD 00:00:00'),
+    endDate: endDate && dayjs(endDate).format('YYYY-MM-DD 23:59:59'),
     executorId: executorId.join(','),
   }
   emits("submit", data)
 }
 
-const formRef = ref();
-const form = ref<any>({})
-const executorValueData = ref<any>([])
+
 </script>
 
 <style lang="scss">

+ 7 - 4
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/ImportModal.vue

@@ -14,11 +14,11 @@
       </div>
     </template>
     <div class="text-lg p-5">
-      <div class="pb-5">1. 点击下载 <a href="" download class="text-[#79BBFF]">任务导入模板</a></div>
+      <div class="pb-5">1. 点击下载 <a @click="getTemplate()" class="text-[#79BBFF] cursor-pointer">任务导入模板</a></div>
       <div>2. 填写excel文件, 任务名称与优先级必填</div>
+
     </div>
-    <!-- <el-link type="primary" style="margin-left:5px;" :underline="false" href="./upload/任务导入模板.xlsx"
-      :download="'任务导入模板.xlsx'">任务导入模板</el-link> -->
+    <!--  -->
   </el-dialog>
 </template>
 <script lang="ts" setup>
@@ -27,7 +27,6 @@ import { Props, Emits } from "./type"
 
 const props = defineProps<Props>();
 const emits = defineEmits<Emits>();
-
 watch(() => props.saveLoading, (newValue) => {
   if (!fileInputRef.value) return
   fileInputRef.value.value = ""
@@ -39,6 +38,10 @@ watch(() => props.saveLoading, (newValue) => {
 
 const fileInputRef = ref<HTMLInputElement>();
 
+function getTemplate() {
+
+}
+
 function submit() {
   fileInputRef.value?.click()
 }

+ 7 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/api.ts

@@ -1,5 +1,4 @@
 import { EpPropMergeType } from "element-plus/es/utils";
-
 export const MOD = "/tasks";
 
 type StatusType = {
@@ -56,3 +55,10 @@ export const UPDATE_TASK_STATUS = `${MOD}/updateTaskStatus`; //更新任务状
 export const UPDATE_TASK = `${MOD}/updateTask`;//修改任务
 
 export const ALL_USERS = "/user/getSimpleActiveUserList"; //获取所有人
+
+export const GET_IMPORT_TEMPLATE = `${MOD}/getImportTemplate`;
+
+export const IMPORT_DATA = `${MOD}/importData`;//导入
+
+export const EXPORT_DATA = `${MOD}/exportData`;//按条件导出
+export const EXPORT_DATA_BY_TASK_ID = `${MOD}/exportDataByTaskIds`;//选中导出

+ 25 - 14
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue

@@ -155,16 +155,16 @@
 </template>
 
 <script lang="ts" setup>
-import { inject, onBeforeMount, onMounted, ref } from 'vue';
+import { inject, onBeforeMount, onMounted, ref, } from 'vue';
 import { useRouter } from 'vue-router';
 import { useStore } from '@/store';
-import { MOD, PRIORITY, STATUS, defaultSearchForm, PAGE_LIST, ADD_TASK, DELETE_TASKS, UPDATE_TASK, UPDATE_TASK_STATUS } from './api';
+import { MOD, PRIORITY, STATUS, defaultSearchForm, PAGE_LIST, ADD_TASK, DELETE_TASKS, UPDATE_TASK, UPDATE_TASK_STATUS, IMPORT_DATA, EXPORT_DATA, EXPORT_DATA_BY_TASK_ID } from './api';
 import { ElTable, dayjs } from 'element-plus';
 import TaskModal from '@/components/TaskModal/index.vue';
 import ImportModal from './ImportModal.vue';
 import ExportModal from './ExportModal.vue';
-import { get, post, uploadFile } from '@/utils/request';
-import { getFromValue, confirmAction } from '@/utils/tools';
+import { post, uploadFile } from '@/utils/request';
+import { getFromValue, confirmAction, downloadFile } from '@/utils/tools';
 import { pushMap } from './type';
 const router = useRouter()
 const { getFunctionList } = useStore()
@@ -215,6 +215,7 @@ const loading = ref<boolean>(false);
 const totalCount = ref<number>(0);
 const tableData = ref<any[]>([])
 function search() {
+  console.log("pageP", pagePermission.value);
   loading.value = true;
   const { startDate, endDate } = searchForm.value;
   let params = {
@@ -281,15 +282,13 @@ function closeImportModal() {
   importVisible.value = false;
 }
 function importExcel(data: any) {
-  console.log("需要提交的数据,importExcel", data);
-  return
   const formData = new FormData();
-  formData.append("file", data);
-  formData.append("projectId", "32277");
+  formData.append("multipartFile", data);
   importLoading.value = "2";
-  uploadFile("/document/uploadDocument", formData).then(_res => {
+  uploadFile(IMPORT_DATA, formData).then(_res => {
     globalPopup?.showSuccess("导入成功")
     importLoading.value = "3";
+    search();
   }).catch(err => {
     globalPopup?.showError(err)
     importLoading.value = "4";
@@ -300,26 +299,38 @@ const exportVisible = ref(false);
 const exportLoading = ref<saveLoadingType>("1");
 const btnLoading = ref(false);
 function exportTasks() {
-  const data = tableRef.value?.getSelectionRows()
+  const data: any[] = tableRef.value?.getSelectionRows()
   if (data.length === 0) {
     // TODO 
     exportVisible.value = true;
     return
   }
   btnLoading.value = true;
-  setTimeout(() => {
+  const taskIds = data.map((v: any) => v.id).join(",");
+  post(EXPORT_DATA_BY_TASK_ID, {
+    taskIds
+  }).then(({ data }) => {
+    downloadFile(data, "任务列表.xlsx");
     btnLoading.value = false;
-  }, 2000)
+  }).catch(err => {
+    btnLoading.value = false;
+    globalPopup?.showError(err)
+  })
 }
 function closeExportModal() {
   exportVisible.value = false;
 }
 function exportExcel(data: any) {
-  console.log("export", data);
   exportLoading.value = "2";
-  setTimeout(() => {
+  post(EXPORT_DATA, getFromValue(data)).then(({ data }) => {
+    downloadFile(data, "任务列表.xlsx");
     exportLoading.value = "3";
     exportVisible.value = false;
+  }).catch(err => {
+    globalPopup?.showError(err)
+  })
+  setTimeout(() => {
+
   }, 2000)
 }
 function editRow(row: any) {