Commit 2fe3501a authored by 杨培's avatar 杨培

Vue upgrade to 2.0

parent 81e8656f
...@@ -99,9 +99,9 @@ AppAsset::addCss($this, '@web/assets/css/course_publish.css'); ...@@ -99,9 +99,9 @@ AppAsset::addCss($this, '@web/assets/css/course_publish.css');
</div> </div>
<input type="hidden" name="id" value="<?=$course->id?>" /> <input type="hidden" name="id" value="<?=$course->id?>" />
<input type="hidden" name="tmp" value="{{tmp}}" /> <input type="hidden" name="tmp" :value="tmp" />
<input type="hidden" name="vuid" value="@orig" v-model="vuid" /> <input type="hidden" name="vuid" :value="vuid" />
<input type="hidden" name="preview" value="@orig" v-model="previewKey" /> <input type="hidden" name="preview" :value="previewKey" />
<div class="btn-box text-center" style="border-top: 1px solid #e7e7e7; margin-top: 10px; "> <div class="btn-box text-center" style="border-top: 1px solid #e7e7e7; margin-top: 10px; ">
<button type="button" class="btn btn-nobg">取消</button> <button type="button" class="btn btn-nobg">取消</button>
......
...@@ -71,9 +71,9 @@ AppAsset::addCss($this, '@web/assets/css/course_publish.css'); ...@@ -71,9 +71,9 @@ AppAsset::addCss($this, '@web/assets/css/course_publish.css');
</div> </div>
</div> </div>
<input type="hidden" name="tmp" value="{{tmp}}" /> <input type="hidden" name="tmp" :value="tmp" />
<input type="hidden" name="vuid" value="{{vuid}}" /> <input type="hidden" name="vuid" :value="vuid" />
<input type="hidden" name="preview" value="{{previewKey}}" /> <input type="hidden" name="preview" :value="previewKey" />
<div class="btn-box text-center" style="border-top: 1px solid #e7e7e7; margin-top: 10px; "> <div class="btn-box text-center" style="border-top: 1px solid #e7e7e7; margin-top: 10px; ">
<button type="button" class="btn btn-nobg">取消</button> <button type="button" class="btn btn-nobg">取消</button>
......
...@@ -25,7 +25,7 @@ AppAsset::addCss($this, '@web/assets/css/teacher_form.css'); ...@@ -25,7 +25,7 @@ AppAsset::addCss($this, '@web/assets/css/teacher_form.css');
<textarea id="teacher-intro" name="intro" placeholder="请输入讲师介绍..."></textarea> <textarea id="teacher-intro" name="intro" placeholder="请输入讲师介绍..."></textarea>
</div> </div>
<input type="hidden" name="avatar" value="{{avatar}}"> <input type="hidden" name="avatar" :value="avatar">
<div class="btn-box"> <div class="btn-box">
<button type="submit" class="btn btn-nobg" @click="cancelClick">取消</button> <button type="submit" class="btn btn-nobg" @click="cancelClick">取消</button>
<button type="submit" class="btn btn-save m-l-10">保存</button> <button type="submit" class="btn btn-save m-l-10">保存</button>
......
...@@ -31,7 +31,7 @@ AppAsset::addCss($this, '@web/assets/css/teacher_form.css'); ...@@ -31,7 +31,7 @@ AppAsset::addCss($this, '@web/assets/css/teacher_form.css');
</div> </div>
<input type="hidden" name="id" value="<?=$teacher->id?>"> <input type="hidden" name="id" value="<?=$teacher->id?>">
<input type="hidden" name="avatar" value="{{avatar}}"> <input type="hidden" name="avatar" :value="avatar">
<div class="btn-box"> <div class="btn-box">
<button type="button" class="btn btn-nobg" @click="cancelClick">取消</button> <button type="button" class="btn btn-nobg" @click="cancelClick">取消</button>
<button type="submit" class="btn btn-save m-l-10">保存</button> <button type="submit" class="btn btn-save m-l-10">保存</button>
......
...@@ -33,7 +33,7 @@ export default { ...@@ -33,7 +33,7 @@ export default {
default: "" default: ""
} }
}, },
ready() { mounted() {
var self = this; var self = this;
this.text = defaultText; this.text = defaultText;
...@@ -76,7 +76,7 @@ export default { ...@@ -76,7 +76,7 @@ export default {
self.avatar = response.src + "-m.avatar"; self.avatar = response.src + "-m.avatar";
self.uploadState = false; self.uploadState = false;
self.$dispatch("avatar-uploaded", file.name, response); self.$emit("avatar-uploaded", file.name, response);
}, },
'Error': function(up, err) { 'Error': function(up, err) {
var msg = ""; var msg = "";
......
...@@ -29,7 +29,7 @@ export default{ ...@@ -29,7 +29,7 @@ export default{
uptoken: String, uptoken: String,
initImg: String initImg: String
}, },
ready() { mounted() {
var container = $(this.$el); var container = $(this.$el);
if (this.initImg) { if (this.initImg) {
...@@ -86,7 +86,7 @@ export default{ ...@@ -86,7 +86,7 @@ export default{
container.addClass("uploaded").find("img").remove(); container.addClass("uploaded").find("img").remove();
container.prepend('<img src="' + response.src + '-m.preview">'); container.prepend('<img src="' + response.src + '-m.preview">');
self.$dispatch("thumb-uploaded", file.name, response); self.$emit("thumb-uploaded", file.name, response);
}, },
'Error': function(up, err) { 'Error': function(up, err) {
var msg = ""; var msg = "";
...@@ -115,7 +115,7 @@ export default{ ...@@ -115,7 +115,7 @@ export default{
uploader.disableBrowse(false); uploader.disableBrowse(false);
} }
self.$dispatch("thumb-upload-state-change", val, old); self.$emit("thumb-upload-state-change", val, old);
}); });
uploader.init(); uploader.init();
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<i class="icon-play"></i> <i class="icon-play"></i>
<b>上传视频</b> <b>上传视频</b>
</div> </div>
<div class="upload-ready" v-else> <div class="upload-ready" v-show="state=='uploading' || state=='error' || state=='completed'">
<h3>{{videoName}}</h3> <h3>{{videoName}}</h3>
<div class="video-detail"> <div class="video-detail">
视频大小:{{videoSize}} 视频大小:{{videoSize}}
...@@ -50,10 +50,10 @@ export default { ...@@ -50,10 +50,10 @@ export default {
this.state = "ready"; this.state = "ready";
uploader.refresh(); uploader.refresh();
this.$dispatch("video-upload-cancel"); this.$emit("video-upload-cancel");
} }
}, },
ready() { mounted() {
var container = $(this.$el), var container = $(this.$el),
btn = container.find(".upload-video-btn"), btn = container.find(".upload-video-btn"),
ready = container.find(".upload-ready"); ready = container.find(".upload-ready");
...@@ -131,7 +131,7 @@ export default { ...@@ -131,7 +131,7 @@ export default {
var response = $.parseJSON(info.response); var response = $.parseJSON(info.response);
self.$dispatch("video-uploaded", file.name, response); self.$emit("video-uploaded", file.name, response);
}, },
'Error': function(up, err) { 'Error': function(up, err) {
var msg = ""; var msg = "";
...@@ -159,7 +159,7 @@ export default { ...@@ -159,7 +159,7 @@ export default {
uploader.disableBrowse(); uploader.disableBrowse();
} }
self.$dispatch("video-upload-state-change", val, old); self.$emit("video-upload-state-change", val, old);
}); });
uploader.init(); uploader.init();
......
<template xmlns:v-el="http://www.w3.org/1999/xhtml"> <template xmlns:v-el="http://www.w3.org/1999/xhtml">
<div class="checkbox"> <div class="checkbox">
<label v-for="(index, item) in teachers" :class="{'m-l-10':index!=0}"> <label v-for="(item, index) in teachers" :class="{'m-l-10':index!=0}">
<input name="teacher[]" type="checkbox" value="{{item.id}}" v-model="checkedTeachers">{{item.name}} <input name="teacher[]" type="checkbox" :value="item.id" v-model="checkedTeachers">{{item.name}}
</label> </label>
<div class="d-i-b" v-if="addFormShow"> <div class="d-i-b" v-if="addFormShow">
<input type="text" class="input-r-control reset-input" placeholder="请输入讲师名称" v-model="newName" v-el:nameInput> <input type="text" class="input-r-control reset-input" placeholder="请输入讲师名称" v-model="newName" ref="nameInput">
<button type="button" class="btn btn-nobg" @click="addTeacher">保存</button> <button type="button" class="btn btn-nobg" @click="addTeacher">保存</button>
<button type="button" class="btn btn-nobg" @click="addFormShow=false">取消</button> <button type="button" class="btn btn-nobg" @click="addFormShow=false">取消</button>
</div> </div>
...@@ -25,18 +25,21 @@ export default{ ...@@ -25,18 +25,21 @@ export default{
} }
}, },
props: { props: {
initTeachers: String initTeachers: {
type: String,
default: ""
}
}, },
methods: { methods: {
showAddForm() { showAddForm() {
this.addFormShow = true; this.addFormShow = true;
this.$nextTick(function() { this.$nextTick(function() {
this.$els.nameInput.focus(); this.$refs.nameInput.focus();
}); });
}, },
addTeacher(e) { addTeacher(e) {
if ($.trim(this.newName) == "") { if ($.trim(this.newName) == "") {
this.$els.nameInput.focus(); this.$refs.nameInput.focus();
return; return;
} }
...@@ -46,13 +49,13 @@ export default{ ...@@ -46,13 +49,13 @@ export default{
$.post("/teacher-manager/save", { $.post("/teacher-manager/save", {
name: self.newName name: self.newName
}, function(t) { }, function(t) {
if (!t.error) { if (t.status) {
self.loadTeacherList(); self.loadTeacherList();
self.newName = ""; self.newName = "";
self.addFormShow = false; self.addFormShow = false;
self.checkedTeachers.push(t.teacher_id.toString()); self.checkedTeachers.push(t.data.id);
} else { } else {
layer.alert("添加讲师失败!\n" + t.error, {icon:5, title:"上传失败"}); layer.alert("添加讲师失败!\n" + t.message, {icon:5, title:"添加失败"});
} }
}, "json"); }, "json");
}, },
...@@ -65,10 +68,10 @@ export default{ ...@@ -65,10 +68,10 @@ export default{
}, },
watch: { watch: {
checkedTeachers(val) { checkedTeachers(val) {
this.$dispatch("teacher-quick-list-checked", val); this.$emit("teacher-quick-list-checked", val);
} }
}, },
ready() { mounted() {
this.loadTeacherList(); this.loadTeacherList();
if (this.initTeachers) { if (this.initTeachers) {
......
...@@ -17,8 +17,8 @@ var form = document.forms["courseEdit"]; ...@@ -17,8 +17,8 @@ var form = document.forms["courseEdit"];
var vm = new Vue({ var vm = new Vue({
el: "#publishMain", el: "#publishMain",
data: { data: {
vuid: "", vuid: "@orig",
previewKey: "", previewKey: "@orig",
tmp: str.rand(20), tmp: str.rand(20),
dynamicVideo: null dynamicVideo: null
}, },
...@@ -33,7 +33,7 @@ var vm = new Vue({ ...@@ -33,7 +33,7 @@ var vm = new Vue({
this.vuid = ""; this.vuid = "";
} }
}, },
ready: function() { mounted: function() {
var self = this; var self = this;
this.$on("video-uploaded", function(name, data) { this.$on("video-uploaded", function(name, data) {
......
...@@ -26,13 +26,13 @@ var vm = new Vue({ ...@@ -26,13 +26,13 @@ var vm = new Vue({
thumbUpload: thumbUpload, thumbUpload: thumbUpload,
teachers: teacherQuickList teachers: teacherQuickList
}, },
ready: function() { mounted: function() {
var self = this; var self = this;
this.$on("video-uploaded", function(name, data) { this.$on("video-uploaded", function(name, data) {
self.vuid = data.uuid; self.vuid = data.uuid;
}); });
this.$on("video-upload-cancel", function() { this.$on("video-upload-cancel", function() {
self.vuid = ""; self.vuid = "";
}); });
......
...@@ -52,7 +52,7 @@ export default{ ...@@ -52,7 +52,7 @@ export default{
}, "json"); }, "json");
} }
}, },
ready() { mounted() {
var self = this; var self = this;
var form = this.$el; var form = this.$el;
......
...@@ -17,7 +17,7 @@ var vm = new Vue({ ...@@ -17,7 +17,7 @@ var vm = new Vue({
history.back(); history.back();
} }
}, },
ready: function() { mounted: function() {
var self = this; var self = this;
var form = document.forms["teacher"]; var form = document.forms["teacher"];
...@@ -62,7 +62,7 @@ var Simditor = require("../utils/simditor"); ...@@ -62,7 +62,7 @@ var Simditor = require("../utils/simditor");
//添加编辑器部分 //添加编辑器部分
var editor = new Simditor({ new Simditor({
textarea: $('#teacher-intro'), textarea: $('#teacher-intro'),
upload: false, upload: false,
tabIndent: true, tabIndent: true,
......
...@@ -27,9 +27,8 @@ ...@@ -27,9 +27,8 @@
"style-loader": "^0.13.0", "style-loader": "^0.13.0",
"url-loader": "^0.5.7", "url-loader": "^0.5.7",
"expose-loader": "^0.7.1", "expose-loader": "^0.7.1",
"vue-hot-reload-api": "^1.2.0", "vue-hot-reload-api": "^2.0.6",
"vue-html-loader": "^1.0.0", "vue-loader": "^10.0.0",
"vue-loader": "^8.0.0",
"expose": "^0.1.4", "expose": "^0.1.4",
"jsx-loader": "^0.13.2", "jsx-loader": "^0.13.2",
"file-loader": "^0.8.5", "file-loader": "^0.8.5",
...@@ -45,6 +44,6 @@ ...@@ -45,6 +44,6 @@
"moment": "^2.13.0", "moment": "^2.13.0",
"simditor": "^2.3.6", "simditor": "^2.3.6",
"video.js": "^5.11.9", "video.js": "^5.11.9",
"vue": "^1.0.8" "vue": "^2.0.8"
} }
} }
...@@ -92,7 +92,8 @@ var config = { ...@@ -92,7 +92,8 @@ var config = {
'plupload-js': lib_dir + '/plupload/plupload.full.min.js', 'plupload-js': lib_dir + '/plupload/plupload.full.min.js',
'qiniu-js': lib_dir + '/qiniu/qiniu.js', 'qiniu-js': lib_dir + '/qiniu/qiniu.js',
'helper': js_dir + '/helper/helper.js', 'helper': js_dir + '/helper/helper.js',
'helper-dir': js_dir + '/helper' 'helper-dir': js_dir + '/helper',
'vue$': 'vue/dist/vue.js'
} }
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment