Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)
media-choice为媒体资源选择组件,基于KnockoutJs。支持图片、语音、视频、图文的选择以及预览,支持默认选择类型,支持是否禁用选择类型的更改。
使用示例:
<script id="media_idTemplate" type="text/html"><media-choice-button params="value: media_id"></media-choice-button></script><script id="newsTemplate" type="text/html"><media-choice-button params="value: media_id,mediaType:5,disabledChoice:true"></media-choice-button></script>
参数说明:
value:微信公众号媒体Id
mediaType:默认选择的媒体类型,其中(0:图片;1,语音;2,视频;5,图文)
disabledChoice:是否禁用选择
效果:
全部代码:
var instance = function (params, componentInfo) {var self = this;this.Name = ko.observable('请选择素材');this.Url = ko.observable('/Content/patterns/congruent_pentagon.png');this.Id = ko.observable('');//默认选择的类型this.MediaType = ko.observable('1');//是否禁用选择框this.DisabledChoice = ko.observable(false);//订阅 self.MediaType.subscribe(function (newValue) {console.debug(newValue);self.Name('请选择素材');self.Url('/Content/patterns/congruent_pentagon.png');self.Id('');});this.ShowChoiceWindow = function (data) {var type = self.MediaType();var url = '';switch (type) {//图文case "5":url = '/Site_News?resourceType=5&lightLayout=1';break;//图片case "0":url = '/Site_Resources?resourceType=0&lightLayout=1';break;//语音case "1":url = '/Site_Resources?resourceType=1&lightLayout=1';break;//视频case "2":url = '/Site_Resources?resourceType=2&lightLayout=1';break;}mwc.window.show('选择素材', url);}if (params && typeof (params.value()) == 'string') {params.value.subscribe(function (newValue) {self.Id(newValue);});if (params.value().length > 0) {self.Id(params.value());mwc.restApi.get({//请求地址url: '/Site_Resources/GetJsonDataByMediaId/' + self.Id(),//是否锁定UIisBlockUI: true,//可选,锁定元素 blockUI: componentInfo.element,//成功函数success: function (model) {console.debug(model);var data = model.FileBase;if (data == null) {return;}self.MediaType(model.ResourceType);//一定要放后面,不然因为触发了订阅事件而导致相关数据被清空 self.Name(data.Name);if (data.FrontCoverImageUrl)self.Url(data.FrontCoverImageUrl);elseself.Url(data.Url == null ? data.SiteUrl : data.Url);self.Id(data.MediaId);console.debug(ko.toJS(self));}});}if (params.mediaType) {self.MediaType(params.mediaType);}if (params.disabledChoice) {self.DisabledChoice(params.disabledChoice);}}window.choice = function (data) {params.value(data.MediaId);self.Id(data.MediaId);self.Name(data.Name);if (data.FrontCoverImageUrl) {self.Url(data.FrontCoverImageUrl);} elseself.Url(data.Url == null ? data.SiteUrl : data.Url);} }; var newschoiceViewModelInstance = {createViewModel: function (params, componentInfo) {return new instance(params, componentInfo);} }; //资源选择 ko.components.register('media-choice-button', {viewModel: newschoiceViewModelInstance,template: '' +'<div class="form-group">' +'<label class="col-sm-2 control-label">类型:</label>' +'<div class="col-sm-10">' +'<select class="form-control" data-bind="value:MediaType,disable:DisabledChoice" data-val="true" data-val-required="类型 字段是必需的。">' +'<option value="0">图片</option>' +'<option value="1">语音</option>' +'<option value="2">视频</option>' +'<option value="5">图文</option>' +'</select>' +'</div>' +'</div>' +'<div class="form-group">' +'<div class="col-sm-12">' +'<div>' +'<div class="panel panel-default" data-bind="click:ShowChoiceWindow">' +'<div class="panel-body" id="content">' +'<p data-bind="if:MediaType()==0">' +'<img style="width:150px;height:100px" data-bind="attr:{src:Url}" />' +'</p>' +'<p data-bind="if:MediaType()==1 && Id()!=\'\'">' +'<audio style="width:250px;height:100px" controls="controls" data-bind="attr:{src:Url}" />' +'</p>' +'<p data-bind="if:MediaType()==2 && Id()!=\'\'">' +'<video style="height:100px !important;width:250px !important" controls="controls" data-bind="attr:{src:Url}" />' +'</p>' +'<p data-bind="if:MediaType()==5">' +'<img style="width:150px;height:100px" data-bind="attr:{src:Url}" />' +'</p>' +'<div>' +'<p data-bind="text:Name">' + '</p>' +'</div>' +'<!-- ko if:Id()==\"\" && "1,2".indexOf(MediaType())!=-1 -->' +'<p>' +'<a class="btn btn-primary btn-block m-t" data-bind="click:$root.ShowChoiceWindow">'+ '<i class="fa fa-plus">' + '</i>选择素材</a>' +'</p>' +'<!-- /ko -->' +'</div>' +'</div>' +'</div>' +'</div>' +'</div>' });
Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)相关推荐
- MRCP 媒体资源控制协议
媒体资源控制协议(Media Resource Control Protocol, MRCP)是一种通讯协议,用于语音服务器向客户端提供各种语音服务(如语音识别和语音合成). MRCP并不定义会话连接 ...
- android图片视频图片封装,Android图片、视频资源选择库(支持图片/视频/仿微信拍照、拍视频)...
简介 Android媒体资源选择库(支持图片/视频/仿微信拍照.拍视频),非常简单使用,支持图库多选.单选.仿微信拍照拍视频.系统照相机拍照拍视频(v1.1.2).如需使用美颜滤镜.简单图片编辑,ff ...
- Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单
2019独角兽企业重金招聘Python工程师标准>>> 本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes ...
- Silverstack Lab for Mac(媒体资源数据管理工具)激活版
Silverstack Lab for Mac 激活版是一款媒体资源数据管理工具,一款集数据管理与每日拍摄小样于一体的工具,轻松应对素材管理与转码,可将现场拍摄与创建拍摄小样融为一体.Silverst ...
- 全媒体资源融合发布系统核心技术能力
1.总体技术能力: 1.成熟系统,能够切实满足用户在复杂网络应用环境下对于大访问量.资源安全性.系统稳定性.多级多部门管理.多终端应用等方面综合要求. 2.平台核心技术应为厂家自主原创,支持银河麒麟\ ...
- plex媒体播放器:Plex Media Player for Mac
Plex Media Player for Mac是一款非常不错的plex媒体播放器,具有强大的实时搜索功能,可让您快速找到所需的电影,表演或歌曲,为您提供了美丽的HTPC体验和轻松的桌面媒体播放器体 ...
- 企业新闻媒体资源有哪些类型?从哪里找?
互联网时代,人们获取信息的来源主要就是网络.企业想要将自己的品牌或是产品推广出去,互联网宣传是很重要的步骤. 企业新闻媒体发稿推广是打响品牌知名度.做好全网营销的第一步.新闻媒体宣传不仅仅性价比很高, ...
- 做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你
做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你 自媒体成为当今一个非常活跃的领域,因为自媒体不像传统媒体一样,只有官方才能够进行内容的生产和推送,自媒体让每个人都可能成为内容的创作者.随着 ...
- Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)
使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day078 Swing用户界面组件(四:选择组件)(复选框.单选钮.边框.组合框.滑动条) 前 ...
最新文章
- 【TensorFlow2.0】(6) 数据统计,范数、最值、求和、均值、最值位置、唯一值、张量比较
- 一个build.xml实例
- 如何才能识别市场趋势?[转]
- Qt使用UDp通信、套接字socket的成员函数bind()的作用
- form表单获取多选的值
- 从零开始学习Docker
- es6 Class 的静态方法
- linux基础-01-用户和目录、vim、归档和解压、系统启动流程、加密
- 入门学习asp.net mvc
- DIV高度自适应方法汇总-----摘自网友
- 二进制拆弹实验详解_Population Count算法-求二进制数中1的个数
- POSTFIX服务简介
- Centos7.7下编译安装 cmake
- Linux Cgroups详解(一)
- 惠普打印机换硒鼓(墨盒)
- js获取浏览器高度 宽度
- Unity商店下载存储地址
- 计算机网络总线型结构优,总线型拓扑结构优缺点是什么
- 重写Readable接口read()方法 传入Scanner导致的BufferOverflowException报错
- precision 为什么和recall成反比
热门文章
- 本地YUM源配置并设置成本地同步网络源,摆脱依赖包
- 监控服务器登录用户的操作脚本(linux下shell.sh)
- AI CC2018软件安装教程
- java类中定义索引器,C#面向对象基础——字段、属性和索引器
- 递归python首尾相同的子字符串_推荐Python语言多层嵌套list的递归处理方法
- C语言开发windows桌面程序,开发 windows 桌面软件,现在主流用什么技术?
- 2015快捷键在哪里设置_炒股软件的选择通达信软件的基本设置
- php 发送带附件的邮件,php发送带附件的电子邮件
- Linux下shell脚本之双色球摇号脚本
- 深入理解JVM虚拟机(七):虚拟机字节码执行引擎