Преглед на файлове

feat:合同导入时间校验时添加合同金额相关验证,添加工单相关表istop字段设置,

ly преди 11 месеца
родител
ревизия
973a6aa88f

+ 53 - 0
src/api/upgrade/contract.js

@@ -1,5 +1,9 @@
 import request from '@/utils/request'
 import { download } from '@/utils/request'
+import {ElLoading, ElMessage} from "element-plus";
+import {blobValidate, tansParams} from "@/utils/ruoyi";
+import errorCode from "@/utils/errorCode";
+import service from "@/utils/request";
 
 // request.defaults.baseURL = '/ezhizao-yzbh-crm'
 // 查询档案入库列表
@@ -95,6 +99,55 @@ export function checkInput(file) {
         }
     })
 }
+export function exportCheckExcel(data,type,filename) {
+    request.defaults.baseURL = '/ezhizao-yzbh-crm'
+    return request({
+        url: `/upgrade/crm/export`,
+        method: 'post',
+        data: {"data":data,"type":type},
+        responseType: 'blob'
+    }).then(async (data) => {
+        const isLogin = await blobValidate(data);
+        if (isLogin) {
+            const blob = new Blob([data]);
+            saveAs(blob, filename);
+        } else {
+            const resText = await data.text();
+            const rspObj = JSON.parse(resText);
+            const errMsg =
+                errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
+            ElMessage.error(errMsg);
+        }
+    })
+        .catch((r) => {
+            console.error(r);
+            ElMessage.error("下载文件出现错误,请联系管理员!");
+        });
+    // inputDownload(
+    //     "/upgrade/crm/export",
+    //     {
+    //         data,
+    //     },
+    //     `合同导出_${new Date().getTime()}.xlsx`
+    // )
+    // inputDownload(
+    //     "/upgrade/crm/export",
+    //     {
+    //         data:data,
+    //     },
+    //     `个税零申报信息_${new Date().getTime()}.xlsx`
+    // )
+}
+function inputDownload(url, params, filename, config) {
+    return service
+        .post(url, params, {
+            headers: { "Content-Type": "application/x-www-form-urlencoded" },
+            responseType: "blob",
+            timeout: 1000000,
+            ...config,
+        })
+
+}
 export function exportLoopTemplate() {
     request.defaults.baseURL = '/ezhizao-yzbh-crm'
     download(

+ 8 - 1
src/api/upgrade/workOrder.js

@@ -10,7 +10,14 @@ export function listWorkOrder(query) {
     params: query
   })
 }
-
+export function OrderDisable(query) {
+  request.defaults.baseURL = '/ezhizao-yzbh-crm'
+  return request({
+    url: '/business/upgrade/workorder/OrderDisable',
+    method: 'post',
+    data: query
+  })
+}
 // 查询工单管理列表
 export function indexList(query) {
   request.defaults.baseURL = '/ezhizao-yzbh-crm'

+ 26 - 9
src/views/business/upgrade/WorkOrderDialog.vue

@@ -1,8 +1,11 @@
 <template>
   <el-dialog id="workdialog" v-model="outerVisible" title="合同列表" width="800">
-    <span>导入的合同开始时间大于当前时间&nbsp;<br/>
-    注:当前导入的以下合同,其最小开始月大于当前时间,会在开始月之前无法将任务委托给工厂进行工作,请确认以下客户开始服务的时间是否正确。</span>
-      <el-table
+    <h1 style="font-weight: bold;">导入的合同开始时间大于当前时间</h1>
+    <span style="color: #F69600;">注:当前导入的以下合同,其最小开始月大于当前时间,会在开始月之前无法将任务委托给工厂进行工作,请确认以下客户开始服务的时间是否正确。</span>
+    <div style="display:flex; flex-direction: row-reverse;">
+      <el-button type="warning" size="small" icon="Download" @click="exportExcel('2')" >导出</el-button>
+    </div>
+    <el-table
           ref="singleTableRef"
           :data="data.startMonth"
           highlight-current-row
@@ -25,9 +28,12 @@
           </template>
         </el-table-column>
       </el-table>
-    <span>导入的合同结束时间小于当前时间&nbsp;<br/>
-    注:当前导入的以下合同,其最大结束月小于当前时间,会导致洪喜爱月开始该服务将无法委托给工厂工作,请确认一下客户是否都已经停止服务,如果未停止服务,需要补传续合同。</span>
-      <el-table
+    <h1 style="font-weight: bold;">导入的合同结束时间小于当前时间</h1>
+    <span style="color: #F69600;">注:当前导入的以下合同,其最大结束月小于当前时间,会导致下个月开始该服务将无法委托给工厂工作,请确认一下客户是否都已经停止服务,如果未停止服务,需要补传续合同。</span>
+    <div style="display:flex; flex-direction: row-reverse;">
+      <el-button type="warning" size="small" icon="Download" @click="exportExcel('1')" >导出</el-button>
+    </div>
+    <el-table
 
         :data="data.endMonth"
         highlight-current-row
@@ -63,8 +69,11 @@
   </el-dialog>
 </template>
 <script lang="ts" setup>
+import {
+  exportCheckExcel
+} from "@/api/upgrade/contract";
 import {getCurrentInstance, reactive, ref, toRefs} from 'vue'
-import {ElTable,ElButton} from "element-plus";
+import {ElTable, ElButton, ElMessage} from "element-plus";
 
 import { defineProps,defineEmits } from 'vue';
 
@@ -74,7 +83,7 @@ const formLabelWidth = '140px'
 const outerVisible = ref(false);
 const innerVisible = ref(false);
 const currentRow = ref();
-
+const type = ref();
 const checkNumber = ref(0);
 const { proxy } = getCurrentInstance();
 const form = reactive({
@@ -151,7 +160,15 @@ function sumbit() {
   }
   checkNumber.value = 0;
 }
-
+function exportExcel(type:string){
+  let filename;
+  if(type === "1"){
+    filename = "导入的合同结束时间小于当前时间.xlsx";
+  }else {
+    filename ="导入的合同结束时间大于当前时间.xlsx";
+  }
+  exportCheckExcel(data.value,type,filename)
+}
 
 const singleTableRef = ref<InstanceType<typeof ElTable>>()
 

+ 14 - 1
src/views/business/upgrade/noContractWorkOrder/index.vue

@@ -4,10 +4,16 @@
     <div class="list-btns-container">
 
     <div class="listbutton">
+      <div>
         <el-button type="primary" size="small"
                    icon="Download" @click="handleExport"
                    v-hasPermi="['business:upgrade:workOrder:export']">导出
         </el-button>
+      <el-button type="primary" size="small"
+                 @click="OrderDisableForm"
+                 v-hasPermi="['business:upgrade:workOrder:edit']">停用
+      </el-button>
+      </div>
         <el-button type="primary" size="small"
                    v-loading.fullscreen.lock="fullscreenLoading"
                    icon="Plus" @click="Upgrade"
@@ -182,7 +188,8 @@
     addWorkOrder,
     exportNoContract,
     completeUpgrade,
-    checkWorkOrder
+    checkWorkOrder,
+    OrderDisable
   } from "@/api/upgrade/workOrder";
   import { listCompany } from "@/api/business/crm/company";
   import AddCompanyDialog from "../AddCompanyDialog.vue";
@@ -255,6 +262,12 @@
       loading.value = false;
     });
   }
+ function OrderDisableForm(){
+   console.table(ids.value);
+   OrderDisable(ids.value).then((response) => {
+     proxy.$modal.msgSuccess('停用成功');
+   });
+ }
 
   /** 搜索按钮操作 */
   function handleQuery() {

+ 12 - 2
src/views/business/upgrade/order/importExcelDialog.vue

@@ -271,15 +271,25 @@ function handleBeforeUpload(file) {
   const formData = new FormData();
   formData.append("file", file);
   if(checksuccess.value === 0){
-
       checkInput(formData).then(res =>{
       fullLoading.value = false;
       inputData.value = res.data;
-      if(res.data != null){
+      if(res.data != null && res.msg !== "错误数据"){
         return Promise.resolve()
+      }else if(res.msg === "错误数据"){
+        return Promise.reject(res.data);
       }
     }).then(()=>{
         workOrderDialog.value.open()
+      }).catch((res)=>{
+        fullLoading.value = false;
+        proxy.$alert(
+            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+            res +
+            "</div>",
+            "导入结果",
+            { dangerouslyUseHTMLString: true }
+        );
       })
     return false;
   }