API函数式组件封装逻辑

简介: API函数式组件封装逻辑

API式业务逻辑

import Vue from 'vue'
import Examines from './index.vue'
const ExaminesConstructor = Vue.extend(Examines)
const instance = new ExaminesConstructor({
  el: document.createElement('div')
})
// 审核状态 审核通过默认1 不通过0
const examines = function(title, statue = "1,0") {
  return new Promise((resolve, reject) => {
    instance.visible = true
    instance.title = title || '审核'
    document.body.appendChild(instance.$el)
    //提交按钮的业务逻辑
    instance.submit = function(data) {
      const statueOptions = statue.split(',')
      if (data.data.statue === '1') {
        data.data.statue = statueOptions[0]
      } else {
        data.data.statue = statueOptions[1]
      }
      resolve(data)
      // instance.closed()
    }
    instance.closed = function() {
      instance.visible = false
      reject()
    }
  })
}
export default examines

具体的业务根据需求调整 可嵌入报表、表格、表单详情页等


模板页面【此处放置的是一个审核弹窗业务】

<template>
  <MyAudit v-model="visible" :dialog-title="title" @submit="submit" />
</template>
<script>
import MyAudit from '@/components/MyAudit' // 审核弹框
export default {
  components: { MyAudit },
  data() {
    return {
      content: '',
      visible: false,
      title: ''
    }
  },
  methods: {
    closed() {
      this.content = ''
      this.visible = false
    },
    submit() {},
  },
}
</script>

挂载函数


main.js

import examines from '@/components/Examines/index.js' // 审核
Vue.prototype.$examines = examines

函数调用【函数为Promise】

this.$examines('测试', {}).then(({{ data, fn }}) => {
  //回调数据data
  // 关闭函数 fn                             
})


例如:

    auditClick(row) {
      if (!row.acm099) return this.$message.warning('请先选择数据!')
      this.$examines('业务主管领导审核').then(({ data, fn }) => {
        const params = {
          acm099: row.acm099,
          aae016: data.statue === '0' ? '4a' : '4',
          aae013: row.aae013,
          oldaae016: '3,5a',
        }
        saveAccountingAudit(params).then((res) => {
          if (res.code === 0) {
            this.search()
            fn(res.message, 'success')
          } else {
            fn(res.message, 'error')
          }
        })
      })
    },
相关文章
|
3月前
|
缓存 测试技术 API
API的封装步骤流程
API封装流程是一个系统化的过程,旨在将内部功能转化为可复用的接口供外部调用。流程包括明确需求、设计接口、选择技术和工具、编写代码、测试、文档编写及部署维护。具体步骤为确定业务功能、数据来源;设计URL、请求方式、参数及响应格式;选择开发语言、框架和数据库技术;实现数据连接、业务逻辑、错误处理;进行功能、性能测试;编写详细文档;部署并持续维护。通过这些步骤,确保API稳定可靠,提高性能。
|
4月前
|
JavaScript 前端开发 IDE
[译] 用 Typescript + Composition API 重构 Vue 3 组件
[译] 用 Typescript + Composition API 重构 Vue 3 组件
[译] 用 Typescript + Composition API 重构 Vue 3 组件
|
28天前
|
前端开发 JavaScript API
探究 React Hooks:如何利用全新 API 优化组件逻辑复用与状态管理
本文深入探讨React Hooks的使用方法,通过全新API优化组件逻辑复用和状态管理,提升开发效率和代码可维护性。
|
6月前
|
JavaScript 前端开发 测试技术
【vue实战项目】通用管理系统:api封装、404页
【vue实战项目】通用管理系统:api封装、404页
44 3
|
3月前
|
API PHP
ThinkPHP 通用的API格式封装
本文介绍了在ThinkPHP框架中如何统一封装API返回格式的方法,包括创建状态码枚举类、编写统一格式化函数以及在BaseController和Error控制器中重写`__call`方法来处理不存在的方法或控制器调用,以实现统一的错误处理和返回格式。
ThinkPHP 通用的API格式封装
|
2月前
|
JavaScript 前端开发 API
探索Vue.js 3的组合式API:一种更灵活的组件状态管理方式
【10月更文挑战第5天】探索Vue.js 3的组合式API:一种更灵活的组件状态管理方式
|
2月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
2月前
|
前端开发 JavaScript API
React 组件 API
10月更文挑战第9天
21 0
|
5月前
|
开发框架 缓存 NoSQL
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
|
5月前
|
存储 开发框架 前端开发
基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理
基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理