[组件封装]API式调用-封装一个审核意见的组件Comments

简介: [组件封装]API式调用-封装一个审核意见的组件Comments

<template>
  <my-dialog class="audit-dialog-wrapper" :title="title" :visible="visible" size="small" width="450px" @closed="closed">
    <div class="tips">
      <svg t="1667908308048" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4068" width="200" height="200">
        <path d="M512 1024c-281.6 0-512-230.4-512-512s230.4-512 512-512 512 230.4 512 512-230.4 512-512 512z m0-938.666667c-234.666667 0-426.666667 192-426.666667 426.666667s192 426.666667 426.666667 426.666667 426.666667-192 426.666667-426.666667-192-426.666667-426.666667-426.666667z m0 725.333334c-25.6 0-42.666667-17.066667-42.666667-42.666667v-298.666667c0-25.6 17.066667-42.666667 42.666667-42.666666s42.666667 17.066667 42.666667 42.666666v298.666667c0 21.333333-17.066667 42.666667-42.666667 42.666667z m0-567.466667c25.6 0 46.933333 21.333333 46.933333 46.933333s-21.333333 46.933333-46.933333 46.933334-46.933333-21.333333-46.933333-46.933334 21.333333-46.933333 46.933333-46.933333z" p-id="4069" />
      </svg>
      <span> 请填写审核意见</span>
    </div>
    <el-input v-model="content" type="textarea" :autosize="{ minRows: 3, maxRows: 6 }" :rows="3" placeholder="请输入" />
    <span slot="footer" class="dialog-footer">
      <my-button type="close" title="取消" @click="closed" />
      <my-button type="submit" title="确认" @click="submit" />
    </span>
  </my-dialog>
</template>
<script>
export default {
  data() {
    return {
      content: '',
      visible: false,
      title: '审核意见'
    }
  },
  methods: {
    closed() {
      this.content = ''
      this.visible = false
    },
    submit() {}
  }
}
</script>

<style lang="scss" scoped>
.audit-dialog-wrapper {
  ::v-deep .el-dialog__body {
    padding-top: 0 !important;
    min-height:100px!important;
  }
}
.tips {
  cursor: pointer;
  display: flex;
  align-items: center;
  padding: 10px 0;
  svg {
    height: 16px;
    width: 16px;
    display: inline-block;
    fill: #e6a23c;
  }
  span {
    color: #e6a23c;
    margin-left: 5px;
    letter-spacing: 1px;
  }
}
</style>

Comments.js

import Vue from 'vue'
import Comments from './index.vue'
const CommentsConstructor = Vue.extend(Comments)
const instance = new CommentsConstructor({
  el: document.createElement('div')
})
const comments = function(title, content = '') {
  return new Promise((resolve, reject) => {
    instance.visible = true
    instance.content = content
    instance.title = title || '审核意见'
    document.body.appendChild(instance.$el)
    instance.submit = function() {
      resolve(instance.content)
      instance.closed()
    }
    instance.closed = function() {
      instance.content = ''
      instance.visible = false
      reject()
    }
  })
}
export default comments

引入

import comments from '@/components/Comments/index.js' // comments
Vue.prototype.$comments = comments

调用

this.$comments("测试").then(res=>{
  //res为内容
})
相关文章
|
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优化组件逻辑复用和状态管理,提升开发效率和代码可维护性。
|
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数据的访问和基类的统一封装处理
|
5月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理