requireFilter.keys().forEach(fileName => { // Get component config const filterModule = requireFilter(fileName) // Register filter globally Vue.filter(filterModule.default.name, filterModule.default.filter) })
module.exports = function(){ var cookieData = {}; if(typeof $.cookie('newVe')!='undefined'){ cookieData = JSON.parse($.cookie('newVe')); } Vue.filter('currencyDisplay', { read: function(val) { if(val=='T'){ return false }else{ return true } }, write: function(val, oldVal) { if(val){ return 'F' }else{ return 'T' } } }) new Vue({ el: '#app', data: cookieData, ready: function() { var that = this; $.ajax({ url: '/Manager/TaobaoLastroomOptionList', type: 'POST', contentType: "application/json", data:'{"hotelCode":"'+cookieData.hotelCode+'","hotelGroupCode":"'+cookieData.hotelGroupCode+'","rateplanCode":"'+'LASTROOM'+'"}', }) .done(function(data) { that.$set('ManualTaobaoLastroomOption', data.resultInfos); }) }, methods:{ sail:function(){ sendRoomOption(this) }, outAll:function(){ sendRoomOption(this) } } }) }
function fixFilters() { // 动态 filter Vue.filter('apply', function(value, name) { var filter = this.$options.filters[name] || Vue.options.filters[name] var args = [value].concat( [].slice.call(arguments, 2) ) if (filter) return filter.apply(this, args) return value }) }
module.exports = (function() { Vue.filter('slug', function(value) { return value.replace(' ', '-'); }); Vue.filter('deslug', function(value) { var v = value.split('-'); v[0] = v[0].charAt(0).toUpperCase() + v[0].slice(1); var str = ''; for (var i in v){ var s = v[i]; str += (s + ' '); } return str; }); Vue.filter('prettyBytes', function (num) { // jacked from: https://github.com/sindresorhus/pretty-bytes if (typeof num !== 'number' || isNaN(num)) { throw new TypeError('Expected a number'); } var exponent; var unit; var neg = num < 0; var units = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; if (neg) { num = -num; } if (num < 1) { return (neg ? '-' : '') + num + ' B'; } exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), units.length - 1); num = (num / Math.pow(1000, exponent)).toFixed(2) * 1; unit = units[exponent]; return (neg ? '-' : '') + num + ' ' + unit; }); })();
ink_filters.install = function(vue) { Vue.filter("time", function(val, isconcrete) { var ms = val * 1000; var s = nowms - ms; if (!isconcrete) { if (s < 86400000) { return "今天"; } if (s < 172800000) { return "昨天"; } if (s < 900000) { return "刚刚"; } } var dt = new Date(ms); return (dt.getMonth() + 1) + "月" + dt.getDate() + "日"; }) }
import Vue from 'vue'; import moment from 'moment'; import {i18n} from './lang'; import {enumText} from './enum'; // enumText Vue.filter('enumText', function (value, enumType) { return enumText(value, enumType); }); // datetime时间格式化 Vue.filter('dateTime', function (value, format = 'YYYY-MM-DD HH:mm:ss') { if (!value) return ''; return moment(value).format(format); }); // ellipsis Vue.filter('ellipsis', function (value, length=100, fill="...") { if (!value) return ''; if (String(value).length <= length) return value; return String(value).substr(0, length) + fill; }); // date时间格式化 Vue.filter('date', function (value, format = 'YYYY-MM-DD') { if (!value) return ''; return moment(value).format(format); });
// The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router from './router' import VueMarkdown from 'vue-markdown' import VueResource from 'vue-resource' Vue.config.productionTip = false Vue.use(VueResource) /* eslint-disable no-new */ Vue.component('vue-markdown', VueMarkdown) Vue.filter('timeStr', (dt) => { dt = new Date(dt) let year = dt.getFullYear() let month = dt.getMonth() + 1 let day = dt.getDate() return `${year}-${month}-${day}` }) new Vue({ el: '#app', router, template: '<App/>', components: { App } })
import App from './App' import './assets/styles/root.scss' import '../node_modules/animate.css/animate.min.css' Vue.use(VueRouter) // 图片懒加载 Vue.use(lazyload, { error: '/static/error.jpg', loading: '/static/loading.gif', try: 1 // default 1 }) // 自定义过滤器 Vue.filter('moment', function(value) { return moment(value) }) Vue.filter('commentDate', function(value) { return new Date(value * 1000).toLocaleString() }) // filter(Vue) // router const router = new VueRouter({ routes: Router.routes }) router.beforeEach((to, from, next) => { next() }) sync(store, router) // Start
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) var Router = new VueRouter({ hashbang: false, history: true, saveScrollPosition: true }) Router.map({ '/': { name : 'home', component: require('./views/home.vue') }, }) var filters = require('./filters'); for(var filter in filters) { Vue.filter(filter, filters[filter]); } Router.start(Vue.extend(require('./views/app.vue')), '#app')
define(function(require){ 'use strict' var Vue = require("Vue") var utils = require("utils") var Promise = require("Promise") var Dialog = require("Dialog") Vue.filter("netFault",function(code,list){ return list.filter(function(row){ return row.code===code }).map(function(row){ return row.name }).join("") }) /* 任务格式如下: { title : "查询用户终端状态是否正常", code : "checkUserDeviceStatu", statu : "question", methods : ["开机","关机"], method : "" } title:任务标题 code:任务编号 statu:任务状态 method:任务可能存在的操作 method:用户已经选择的操作 任务状态可能值枚举: init:初始化 pending:正在查询 question:正在等待用户交互 resolve:任务状态成功 failed:任务状态失败 新任务向flow数组压入一条数据,任务状态改变时只需要修改这条数据 */ return Vue.extend({ props : { locate : Object, form : Object }, data : function(){ return { flow : [],//存放任务队列 statu : "init",//存放全局状态 result : ""//存放全局任务结果 } }, compiled : function(){ this.address = this.$route.query.address var title = "自助报障" this.$dispatch("init",{ title : title }) this.init() }, methods : { //检查BSS状态 checkBssStatu : function(){ var task = { title : "检查BSS状态是否异常", code : "checkBssStatu", statu : "pending", methods : [], method : "" } this.flow.push(task) return utils.sleep(0.5) .then(function(){ //throw("您好!您的手机已欠费,请您及时进行充值") task.statu = "resolve" return 123 }) .catch(function(error){ task.statu = "failed" throw(error) }) }, //检查HSS状态 checkHssStatu : function(){ var task = { title : "检查HSS状态是否异常", code : "checkHssStatu", statu : "pending", methods : [], method : "" } this.flow.push(task) return utils.sleep(0.5) .then(function(){ //throw("您好!您的手机已欠费,请您及时进行充值") task.statu = "resolve" return 123 }) .catch(function(error){ task.statu = "failed" throw(error) }) }, //查询用户终端状态 checkUserDeviceStatu : function(){ var task = { title : "查询用户终端状态是否正常", code : "checkUserDeviceStatu", statu : "question", methods : ["开机","关机"], method : "" } this.flow.push(task) return utils.sleep(0.1) }, //根据用户选择启动流程 checkFlow : function(index){ this.statu = "pending" var task = { title : "loading", code : "checkFlow0", statu : "pending", methods : [], method : "" } this.flow.push(task) return utils.sleep(0.5) .then(function(){ task.statu = "question" task.title = "查询信号不好是否所有地点"+index task.methods = ["个别地点","所有地点"] }) .catch(function(error){ task.statu = "failed" this.throwCheckResult(error) }.bind(this)) }, //修改任务状态 toggleTaskMethod : function(method,task,index){ if(task.method===method)return false this.clearCheckResult() if(task.code==="checkUserDeviceStatu"){ this.clearChildTasks(index) if(method==="关机"){ task.statu = "failed" this.throwCheckResult("用户已关机") } if(method==="开机"){ task.statu = "resolve" this.clearCheckResult() this.checkFlow(index) } }else if(index===5){ //完成流程 this.statu = "resolve" task.statu = "resolve" }else{ this.clearChildTasks(index) task.statu = "resolve" this.checkFlow(index) } task.method = method }, //清除所有子任务 clearChildTasks : function(index){ var childLength = this.flow.length - index - 1 //清除所有子任务 if(childLength){ new Array(childLength).fill("0").forEach(function(){ this.flow.pop() }.bind(this)) } }, //清除检查结果 clearCheckResult : function(){ this.result = "" }, //抛出检查结果 throwCheckResult : function(result){ this.result = result }, init : function(){ this.form.pending = true this.checkBssStatu() .then(function(statu){ return this.checkHssStatu() }.bind(this)) .then(function(statu){ return this.checkUserDeviceStatu() }.bind(this)) .then(function(statu){ }.bind(this)) .catch(function(error){ this.throwCheckResult(error) }.bind(this)) .finally(function(){ this.form.pending = false }.bind(this)) }, back : function(){ history.go(-1) } }, template : utils.template(function(){/* <div> <style> .card .table-view-check{ border-top:1px solid #ddd; } .table-view-check li{ padding: 5px 10px; } .check-item{padding:5px 11px;color:#444;} .check-item .task-body{margin-left:20px} .check-item.resolve i{color:#5CB85C} .check-item.reject i{color:#999} .check-item.failed i{color:#D9534F} .check-item.warning i{color:#F0AD4E} .check-item .btn{margin:0 5px 0 0} </style> <div class="card"> <div style="padding:10px"> <p style="float:right"> <button class="btn" @click="back">更改查询条件</button> </p> <p>手机号码:{{form.callNumber}}</p> <p>网络类型:{{form.netType}}</p> <p>障碍现象:{{form.netFault|netFault form.causelist}}</p> <p>报障地址:{{form.locate.result}}</p> </div> <div class="flow"> <ul class="table-view table-view-check"> <li v-for="(index,task) in flow" class="table-view-cell check-item" :class="task.statu"> <div class="pull-left"> <i class="fa fa-question" v-if="'question'===task.statu"></i> <i class="fa fa-check" v-if="'resolve'===task.statu"></i> <i class="fa fa-close" v-if="'failed'===task.statu"></i> <i class="fa fa-spinner fa-spin" v-if="'pending'===task.statu"></i> </div> <div class="task-body"> <p>{{task.title}}</p> <div v-if="task.methods.length"> <button class="btn" v-for="method in task.methods" @click="toggleTaskMethod(method,task,index)"> {{method}} <i class="fa fa-check" v-if="method===task.method"></i> </button> </div> </div> </li> </ul> </div> </div> <div style="padding:10px" class="card" v-if="result"> <h4>检查结果</h4> <p>{{result}}</p> </div> <div style="padding:10px;text-align:right;" v-if="statu==='resolve'"> <button class="btn">在线归档</button> <button class="btn btn-positive">下一步</button> </div> </div> */}), components : { pending : require("Components/Common/Pending") } }) })
import 'babel-polyfill' import Vue from 'vue' import App from './components/App.vue' import store from './store' import { getAllMessages } from './store/actions' // Vue.config.debug = true Vue.filter('time',timestamp => { return new Date(timestamp).toLocaleTimeString() }) new Vue({ el:'#app', store, render:h => h(App) }) getAllMessages(store)
import router from './router' import { store } from './store' import DateFilter from './filters/dataf' import AlertCmp from './components/Shared/Alert.vue' import EditMeetingDetailsDialog from './components/Meeting/Edit/EditMeetingDetailsDialog.vue' import EditMeetingDataDialog from './components/Meeting/Edit/EditMeetingDataDialog.vue' import EditMeetingTimeDialog from './components/Meeting/Edit/EditMeetingTimeDialog.vue' import FullCalendar from 'vue-full-calendar' import vmodal from 'vue-js-modal' window.jQuery = window.$ = require('jquery') Vue.use(vmodal) Vue.use(Vuetify) Vue.config.productionTip = false Vue.use(FullCalendar) Vue.filter('dataf', DateFilter) Vue.component('app-alert', AlertCmp) Vue.component('app-edit-meeting-details-dialog', EditMeetingDetailsDialog) Vue.component('app-edit-meeting-data-dialog', EditMeetingDataDialog) Vue.component('app-edit-meeting-time-dialog', EditMeetingTimeDialog) /* eslint-disable no-new */ new Vue({ el: '#app', router, store, render: h => h(App), created () { firebase.initializeApp({ apiKey: 'AIzaSyCty7m0AIV4SsBhCGlx7ryaGctx6Ddd7fE', authDomain: 'amiscout-190313.firebaseapp.com',
import Vue from 'vue'; import { domain, fromNow } from './filters'; import App from './components/App.vue'; import AppCNHK from './components/AppCNHK.vue'; // register filters globally Vue.filter('domain', domain); Vue.filter('fromNow', fromNow); new Vue({ el: 'body', components: { App, // 普通电子票 AppCNHK // 中港通电子票 } });
return value }, sanitize: function (value) { return value.replace(/^[^a-z]+|[^\w-]+/gi, ""); }, parseObj: function (value) { var parts = value.split(';') if (parts.length > 1) { var type = parts[0] && parts[0].toString().charAt(0).toUpperCase() + parts[0].toString().slice(1); var name = parts[1] return name //return type + ': ' + name } else { return value } }, objLength: function (value) { return Object.keys(value).length }, prettyNewLine: function (value) { if (value == '-') { return '-' } return value.length > 0 ? value.split(',').join('\n') : '-' } }; for (var f in Filters) { Vue.filter(f, Filters[f]) }
Object.keys(filters).forEach(k => Vue.filter(k, filters[k]))
import markdown from './filters/markdown' import filesize from './filters/filesize' import firstname from './filters/firstname' /** * Configure Vue plugins */ Vue.use(Router) Vue.use(AsyncData) Vue.use(Draggable) // Vue.use(HTTP) /** * Configure Vue filters */ Vue.filter('slug', slug) Vue.filter('default', defaults) Vue.filter('markdown', markdown) Vue.filter('filesize', filesize) Vue.filter('firstname', firstname) Vue.filter('link_assets', assets) /** * Set development mode */ if (config.env === 'development') { Vue.config.debug = true } /** * Export `Vue`
Object.keys(filters).forEach(filterName => Vue.filter(filterName, filters[filterName]))
import Vue from 'vue' import VueResource from 'vue-resource' import VueTap from './plugins/vue-tap.js' import Moment from 'moment' Moment.locale('zh-cn') Vue.use(VueResource) Vue.use(VueTap) Vue.config.debug=true Vue.http.options.headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' } Vue.http.options.emulateJSON = true Vue.filter('moment', function(datetime) { return Moment(datetime).fromNow(); }); const app=Vue.extend(require("./app.vue")) new app({ el: '#app' })
import Vue from 'vue' import VueResource from 'vue-resource' import VueRouter from 'vue-router' import Init from '../views/Init.vue' import {configRouter} from './route-config' import {API_URL} from '../config' Vue.use(VueResource); Vue.use(VueRouter); // 2016/07/10 格式的时间 Vue.filter('date',date=>{ let d = new Date(date); let year = d.getFullYear(); let month = d.getMonth() > 8 ? d.getMonth() + 1 : '0' + (d.getMonth() + 1); let da = d.getDate() > 9 ? d.getDate() : '0' + d.getDate(); return year + '/' + month + '/' + da; }); // 2016/07/10 xx:xx:xx格式的时间 Vue.filter('dateWithSecond',date=>{ let d = new Date(date); let year = d.getFullYear(); let month = d.getMonth() > 8 ? d.getMonth() + 1 : '0' + (d.getMonth() + 1); let da = d.getDate() > 9 ? d.getDate() : '0' + d.getDate(); let hour = d.getHours() > 9 ? d.getHours() : '0' + d.getHours(); let min = d.getMinutes() > 9 ? d.getMinutes() : '0' + d.getMinutes(); let sec = d.getSeconds() > 9 ? d.getSeconds() : '0' + d.getSeconds(); return year + '-' + month + '-' + da + ' ' + hour + ':' + min + ':' + sec; }); Vue.http.headers.common['Authorization'] = sessionStorage.getItem('user'); //const app=Vue.extend({});
import Vue from 'vue'; import VueResource from 'vue-resource'; import {addClass} from './utils/filters.js'; import App from './components/App'; require('./styles/app.scss'); // open debug mode in dev mode /* eslint-disable no-undef */ if (__DEV__) { Vue.config.debug = true; } // use vue-resource to load async data Vue.use(VueResource); // add vue filter Vue.filter('addClass', addClass); /* eslint-disable no-new */ new Vue({ el: 'body', components: { 'app': App } });
import log4js from 'log4js' import * as VOns from './vue-onsen-components' import App from './App' import router from './router' import store from './store' import TwitterClient from './modules/twitter' Vue.config.productionTip = false Vue.prototype.$twitter = TwitterClient Vue.prototype.$logger = log4js.getLogger() Vue.prototype.$logger.level = 'info' Vue.use($ons) Object.values(VOns).forEach(comp => Vue.component(comp.name, comp)) Vue.use(FormTextarea) Vue.filter('toSSL', (value) => { if (!value) return '' return value.replace(/^http:/, 'https:') }) new Vue({ router, store, render: h => h(App), }).$mount('#app')
import Vue from 'vue'; import { sync } from 'vuex-router-sync'; // Filters import * as filters from './filters'; for (const k in filters) { Vue.filter(k, filters[k]); } // Injections import './components/commons'; import SlimkitBootstrapUiKit from 'simkit-bootstrap-ui-kit'; Vue.use(SlimkitBootstrapUiKit); import router from './router'; import store from './store'; sync(store, router); // Root component import App from './App'; new Vue({ router, store, el: '#app', render: h => h(App), });
Vue.use(VueResource); Vue.http.options.root = '/data/'; Vue.http.options.emulateJSON = true; // Router Vue.use(VueRouter); const router = new VueRouter({ hashbang: true, saveScrollPosition: true, suppressTransitionError: true }); routerConfig(router); router.start({}, 'body'); // Validator Vue.use(VueValidator); Vue.validator('username', val => !!val.trim().length || /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i.test(val) || /^(13[0-9]{9}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}|170[0-9]{8}|177[0-9]{8})$/i.test(val)); Vue.validator('email', val => /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i.test(val)); Vue.validator('phone', val => /^(13[0-9]{9}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}|170[0-9]{8}|177[0-9]{8})$/i.test(val)); Vue.validator('captcha_code', val => /^[\d]{6}$/i.test(val)); // Filters Vue.filter('date', filters.dateFilter); Vue.filter('category', filters.categoryFilter); Vue.filter('department', filters.departmentFilter); Vue.filter('city', filters.cityFilter);
import Vue from 'vue'; import VueResource from 'vue-resource'; import _ from 'underscore'; Vue.use(VueResource); Vue.config.debug = true; /** * Datetime filter */ Vue.filter('moment', function (value, format) { return moment(value).format(format); }); /** * TODO: Member search dropdown status message, image upload */ new Vue({ el: '#squad-form', data: { squad: { id: null, name: null, description: null, gameId: null, image: null, roster: [] }, games: _page.games,
Object.keys(filters).forEach(x => Vue.filter(x, filters[x])); // 注册filter
import Vue from 'vue'; import Container from './components/Container.vue' import './app.css'; Vue.filter('date', function (value) { return new Date(value).toLocaleString(); }) new Vue({ el: '#vue', data: { message: 'Hello Vue.js!' }, components: { 'container': Container } })
import timeago from 'timeago.js'; import axios from 'axios'; import Vue from 'vue'; import VueMaterial from 'vue-material'; import './assets/material.css'; import InstallerIssues from './components/InstallerIssues'; Vue.config.productionTip = false; Vue.use(VueMaterial); function formatTimeAgo(date) { if (!date) { return ''; } return timeago().format(new Date(date)); } Vue.filter('formatTimeAgo', formatTimeAgo); if (process.env.NODE_ENV === 'development') { axios.defaults.baseURL = 'http://localhost:8000'; } else { axios.defaults.baseURL = 'https://lutris.net'; } /* eslint-disable no-new */ new Vue({ el: '#issues', components: { InstallerIssues }, });
Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) })
Object.keys(filter).forEach(function(k) { Vue.filter(k, filter[k]) });
import Vue from 'vue' import moment from 'moment' Vue.filter('date-moment', { read(value) { if (value === null) return null const date = value.toDate() let year = '0000' + date.getFullYear() year = year.substring(year.length - 4) let month = '00' + (date.getMonth() + 1) month = month.substring(month.length - 2) let day = '00' + date.getDate() day = day.substring(day.length - 2) return year + '-' + month + '-' + day }, write(value) { return moment(value) }, })