npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-como-form

v1.0.4

Published

基于element ui的from表单的封装,增强了表单的灵活性与强大性

Downloads

9

Readme

vue-como-form

  • 基于element ui的中后台表单组件,增加了的element ui的表单功能,功能强大,灵活、快捷

组件安装

npm install vue-como-form

组件引入

//在main.js中引入

import vueComoForm from 'vue-como-form';
import 'vue-como-form/vue-como-form.css';
Vue.use(vueComoForm);

组件效果

alt 效果图

使用示例

<template>
	<div class="add-form">
		<vue-como-form :config="formConfig" :attr="{labelWidth:'100px'}" @submit="onSubmit" ref="addForm">
		</vue-como-form>
	</div>
</template>
<script>

//依赖图片处理组件
import comoImage from 'vue-como-image';
//依赖编辑器组件

export default {
	name: 'add-form',
	components: {},
	data() {
		let that = this;
		return {
			formConfig:[
				[
					{type:'select',color:'#ff0000',label:'文章类型',value:1,name:'article_category',options:[
						{label:'分类一',selectvalue:1},{label:'<i class="el-icon-more-outline"></i> 测试分类',selectvalue:2}
					],span:8},
					{type:'input',color:'#ff0000',label:'文章标题',span:16,name:'title'},
				],
				{type:'textarea',label:'文章描述',attr:{rows:2},name:'article_desc'},
				[
					{type:'radio',label:'文章类型',value:0,name:'article_type',options:[
						{label:'<span style="color:#ff0000;">普通文章</span>',radiovalue:0},{label:'视频文章',radiovalue:1}
					],span:10,attr:{disabled:true}},
					{type:'number',label:'浏览数量',name:'article_views',span:7},
					{type:'input',label:'文章排序',span:7,name:'article_order'},
				],
				{type:'image',label:'轮播图片',placeholder:'请上传轮播图片',name:'article_image',attr:{
					httpRequest:that.handleUploadImage,showFileList:false,action:'',accept:'image/jpeg'
				}},
				{type:'file',label:'附件上传',name:'article_file',attr:{
					httpRequest:that.handleUploadFile}},
				[{type:'autocomplete',label:'审核意见',span:12,attr:{
						fetchSuggestions:that.fetchAuto
					},events:{select:that.selectHandler},name:'article_examine'},
				{type:'autocomplete',label:'审核意见1',span:12}],
				[
					{type:'checkbox',label:'文章标签',value:[1,2],options:[
						{label:'<span style="color:#02c367;">新闻</span>',checkvalue:1,disabled:true},{label:'娱乐',checkvalue:2},{label:'八卦',checkvalue:3}
					],span:12,name:'article_tags'},
					{type:'time',label:'定时时间',span:6,name:'article_time'},
					{type:'color',label:'标题颜色',span:6,name:'article_color'},
				],
				[
					{type:'switch',label:'是否显示',value:0,span:6,name:'is_show'},
					{type:'switch',label:'首页显示',value:1,name:'is_home',span:6},
					{type:'datetime',label:'发布时间',name:'create_time',span:12},
				],
				{type:'cascader',label:'三级联动',attr:{options:[]},name:'article_category_name'},
				{type:'editor',label:'文章内容',name:'content',upload:that.handleEditorUploadImage},
				{type:'hidden',label:'文章ID',value:123,name:'article_id'}
			]
		};
	},
	methods:{
		initialize:function() {
			let that = this;
		},
		/**
		 * [onSubmit 表单提交事件]
		 * @author    szjcomo
		 * @date   		2020-10-21
		 * @param  {[type]}     data [description]
		 * @return {[type]}          [description]
		 */
		onSubmit:function(data) {
			let that = this;
			console.log(data);
		},
		/**
		 * [fetchAuto 自动完成]
		 * @author    szjcomo
		 * @date   		2020-10-20
		 * @param  {[type]}     str      [description]
		 * @param  {Function}   callback [description]
		 * @return {[type]}              [description]
		 */
		fetchAuto:function(str,callback) {
			let search =  [
				{ "value": "三全鲜食(北新泾店)", "address": "长宁区新渔路144号" },
				{ "value": "Hot honey 首尔炸鸡(仙霞路)", "address": "上海市长宁区淞虹路661号" },
				{ "value": "新旺角茶餐厅", "address": "上海市普陀区真北路988号创邑金沙谷6号楼113" },
				{ "value": "泷千家(天山西路店)", "address": "天山西路438号" },
				{ "value": "胖仙女纸杯蛋糕(上海凌空店)", "address": "上海市长宁区金钟路968号1幢18号楼一层商铺18-101" },
				{ "value": "贡茶", "address": "上海市长宁区金钟路633号" },
				{ "value": "豪大大香鸡排超级奶爸", "address": "上海市嘉定区曹安公路曹安路1685号" },
				{ "value": "茶芝兰(奶茶,手抓饼)", "address": "上海市普陀区同普路1435号" },
				{ "value": "十二泷町", "address": "上海市北翟路1444弄81号B幢-107" },
				{ "value": "星移浓缩咖啡", "address": "上海市嘉定区新郁路817号" },
				{ "value": "阿姨奶茶/豪大大", "address": "嘉定区曹安路1611号" },
				{ "value": "新麦甜四季甜品炸鸡", "address": "嘉定区曹安公路2383弄55号" },
				{ "value": "Monica摩托主题咖啡店", "address": "嘉定区江桥镇曹安公路2409号1F,2383弄62号1F" },
				{ "value": "浮生若茶(凌空soho店)", "address": "上海长宁区金钟路968号9号楼地下一层" },
				{ "value": "NONO JUICE  鲜榨果汁", "address": "上海市长宁区天山西路119号" },
				{ "value": "CoCo都可(北新泾店)", "address": "上海市长宁区仙霞西路" },
				{ "value": "快乐柠檬(神州智慧店)", "address": "上海市长宁区天山西路567号1层R117号店铺" },
				{ "value": "Merci Paul cafe", "address": "上海市普陀区光复西路丹巴路28弄6号楼819" },
				{ "value": "猫山王(西郊百联店)", "address": "上海市长宁区仙霞西路88号第一层G05-F01-1-306" },
			];
			callback(search);
		},
		/**
		 * [handleEditorUploadImage 编辑器图片上传事件]
		 * @author    szjcomo
		 * @date   		2020-10-21
		 * @param  {[type]}     files    [description]
		 * @param  {Function}   callback [description]
		 * @return {[type]}              [description]
		 */
		handleEditorUploadImage:function(files,callback) {
			let that = this;
			files.forEach(async (file) => {
				let imageHandle = await comoImage.compress(file);
				callback(imageHandle.content);
			})
		},
		/**
		 * [handleUploadImage 图片上传功能]
		 * @author    szjcomo
		 * @date   		2020-10-21
		 * @param  {[type]}     params [description]
		 * @return {[type]}            [description]
		 */
		handleUploadImage:async function(params) {
			let that = this;
			let imageHandle = await comoImage.compress(params.file);
			params.data.value = imageHandle.content;
		},
		/**
		 * [handleUploadFile 执行文件上传]
		 * @author    szjcomo
		 * @date   		2020-10-21
		 * @param  {[type]}     params [description]
		 * @return {[type]}            [description]
		 */
		handleUploadFile:async function(params) {
			let that = this;
			let handle = await comoImage.file2Base64(params.file);
			params.data.value = handle;
		}
	},
	//此时,已经将编译好的模板,挂载到了页面指定的容器中显示
	mounted:function(){
		let that = this;
		that.initialize();
	},
}
</script>
<style scoped>
/*pass*/
</style>

组件说明

组件属性

| 属性名 | 说明 | 类型 | 默认值 | | ------------ | ------------ |------------ | ------------ | | attr | form属性 | Object|详见 element ui 表单组件属性 | | config | 表单item项配置 |array| 详见示例 |

config 每一项参数说明

| 参数名 | 说明 | 类型 | 是否必传 | | ------------ | ------------ |------------ | ------------ | | type | 组件类型 示例上都有,其它的没有 | string|- Y | | name | 键名称 | string|- Y | | label | 标签名称 |string| - Y | | span | 当config 每一项是数组时必传,否则不用传(宽度) |int| - Y | | color | 标签颜色 (#666666) |string| - N | | value | 值 |array/string| - N | | attr | 各组件的具体属性,用什么组件请参考element ui组件属性 |object| - N |

组件事件

| 属性名 | 说明 | 参数 | | ------------ | ------------ | ------------ | | submit | 用户点击提交 |function(object) |

组件方法

| 属性名 | 说明 | 参数 | | ------------ | ------------ | ------------ | | getFormData | 获取表单数据 | - object |

更新记录

2020年10月21日

  • 首次完成表单组件的封装

2020年10月24日

  • 修复已知的bug

2020年10月26日

  • 增加下拦框、单选框、复选框的html渲染

2020年10月31日

  • el-select自动占满位置