在uniapp中使用amis

amis在uniapp的使用

我司在实际项目开发中使用的是uniapp的cli脚手架搭建的项目,自己手写的动态表单,在开发完第一版之后,发现自己维护这个动态表单比较费劲,于是引入了amis。


前言

本文章主要记录在项目中引入amis,以及使用中遇到的一些问题,以及如何解决的。当然其中也有一些没有填上的坑,这个等后续有了解决方案在更新,或者大家有好的方案可以留言,一起进步。


一、amis介绍?

本文中当然不会花费经理去介绍amis了,详细的介绍请移至amis官网

关于在vue项目中如何使用amis,参考官网给出的示例https://github.com/aisuda/vue2-amis-demo

废话不多说,直接上手。

二、在uni中安装引入

1.安装

安装依赖项

// 必须的, 这个包是必须要安装的
yarn add amis
//or
npm install amis
yarn add qs
// or 
npm install qs

安装完成之后,在项目中引入amis

import "amis/sdk/sdk.js"; // 核心包 必须引入
import "amis/sdk/rest.js"; // 城市下拉组件用到的数据,可根据情况引入
import "amis/sdk/cropperjs.js"; // 图片裁切需要用到的,可根据情况引入
import "amis/sdk/json-view.js"; // 开启debug用到的,可根据情况引入
import "amis/sdk/sdk.css"; // 默认的css主题,可根据实际情况引入不同主题
import "amis/sdk/iconfont.css";
input输入框样式不生效

等你引入完上面的依赖之后,就会发现,input框的样式不生效。排查一圈之后,发现是上面引入的css文件中,所有的input关键字 在编译后变成了uni-input。 显然,这是uni干的。
如何解决呢?
我修改了babel的配置文件,发现不生效。别的方案呢,没有找到,于是,在项目的publish/index.html的文件中,再次引入一遍skd.css。当然这个css文件再node_modules中,index文件肯定是获取不到的。于是我在 node_nodules下找到amis/sdk/sdk.css。复制粘贴到src/static目录下。

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"/>
        <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
        <meta http-equiv="Pragma" content="no-cache" />
        <meta http-equiv="Expires" content="0" />
        <title><%= htmlWebpackPlugin.options.title %></title>
        <link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />

		// 这段代码最重要 这里引入能保证input关键字不被转换
        <link rel="stylesheet" href="<%= BASE_URL %>static/sdk.css" />
    </head>

    <body>
        <noscript>
            <strong>Please enable JavaScript to continue.</strong>
        </noscript>
        <div id="app"></div>
        <!-- built files will be auto injected -->
    </body>
</html>

时间有限,有时间再补充

Amis Editor 是一个基于 Vue 的开源项目,它提供了一种简便的方式来在 Vue 应用中使用易于编辑和管理的界面。 首先,我们需要确保安装了 VueAmis Editor 的依赖库。可以通过在项目中添加相应的依赖项或使用包管理器(如npm或yarn)来安装这些依赖。 在 Vue 项目中使用 Amis Editor 的第一步是引入 AmisAmis Editor 的库文件。可以通过添加以下代码来实现: import Vue from 'vue'; import amis from 'amis'; import 'amis/lib/themes/cxd.css'; import 'amis-editor/dist/index.css'; import Editor from 'amis-editor'; Vue.use(amis); Vue.use(Editor); 然后,我们可以在 Vue 组件中使用 Amis Editor。例如,可以在一个 Vue 组件的 template 部分添加以下代码: <template> <amis-renderer :source="amisConfig" /> </template> <script> export default { data() { return { amisConfig: { type: 'page', title: 'Amis Editor Demo', body: { type: 'button', label: 'Click Me', actionType: 'dialog', dialog: { title: 'Dialog Title', body: { type: 'html', html: '<p>This is a dialog body</p>' } } } } }; } }; </script> 在上面的例子中,我们创建了一个简单的 Amis Editor 配置对象,用于渲染一个包含一个按钮的页面。当按钮被点击时,将弹出一个带有标题和内容的对话框。 通过设置不同的配置选项,我们可以创建更复杂的界面和交互逻辑。Amis Editor 提供了丰富的组件和属性,可以根据需要进行定制。 总之,Vue使用 Amis Editor 可以帮助开发者快速创建和管理易于编辑的界面,从而提高开发效率和用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值