提交 c581794f 编写于 作者: bo.dang's avatar bo.dang

新建直播

上级 d0eb26a6
...@@ -2878,7 +2878,8 @@ ...@@ -2878,7 +2878,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
...@@ -2899,12 +2900,14 @@ ...@@ -2899,12 +2900,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
...@@ -2919,17 +2922,20 @@ ...@@ -2919,17 +2922,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
...@@ -3046,7 +3052,8 @@ ...@@ -3046,7 +3052,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
...@@ -3058,6 +3065,7 @@ ...@@ -3058,6 +3065,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
...@@ -3072,6 +3080,7 @@ ...@@ -3072,6 +3080,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -3079,12 +3088,14 @@ ...@@ -3079,12 +3088,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
...@@ -3103,6 +3114,7 @@ ...@@ -3103,6 +3114,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
...@@ -3183,7 +3195,8 @@ ...@@ -3183,7 +3195,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
...@@ -3195,6 +3208,7 @@ ...@@ -3195,6 +3208,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -3280,7 +3294,8 @@ ...@@ -3280,7 +3294,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
...@@ -3316,6 +3331,7 @@ ...@@ -3316,6 +3331,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -3335,6 +3351,7 @@ ...@@ -3335,6 +3351,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
...@@ -3378,12 +3395,14 @@ ...@@ -3378,12 +3395,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
...@@ -4347,7 +4366,7 @@ ...@@ -4347,7 +4366,7 @@
"integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==", "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
"requires": { "requires": {
"canvg": "1.5.3", "canvg": "1.5.3",
"file-saver": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e", "file-saver": "github:eligrey/FileSaver.js#1.3.8",
"html2canvas": "1.0.0-alpha.12", "html2canvas": "1.0.0-alpha.12",
"omggif": "1.0.7", "omggif": "1.0.7",
"promise-polyfill": "8.1.0", "promise-polyfill": "8.1.0",
...@@ -9076,9 +9095,24 @@ ...@@ -9076,9 +9095,24 @@
"dev": true "dev": true
}, },
"vue-ueditor-wrap": { "vue-ueditor-wrap": {
"version": "2.4.1", "version": "2.4.2",
"resolved": "http://192.168.110.93:4873/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.1.tgz", "resolved": "https://registry.npmjs.org/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.2.tgz",
"integrity": "sha512-UjZz0I5Fy8ADrmvjCqTJm+XJVkf52hi6/yajcTyjqG20DTS2IVByFF26TI69by9PZApwbC+eHkV/lALcvEFgjw==" "integrity": "sha512-bZZdUmhT/n9QPdVwR10b8u2A9+Q2L6vyfr3Nls2EDKI3GmuWQwGqBwcgjBWbaM50twyHjXwAPXiKlUhn3JAFtA=="
},
"vuedraggable": {
"version": "2.23.2",
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz",
"integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==",
"requires": {
"sortablejs": "^1.10.1"
},
"dependencies": {
"sortablejs": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
}
}
}, },
"vuex": { "vuex": {
"version": "2.5.0", "version": "2.5.0",
......
...@@ -25,46 +25,53 @@ ...@@ -25,46 +25,53 @@
label-width="150px" label-width="150px"
label-suffix=":" label-suffix=":"
class="basic-form"> class="basic-form">
<el-form-item label="直播标题" prop="liveName"> <el-form-item label="直播标题" prop="name">
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.liveName" v-model="formData.name"
placeholder="请输入直播标题" placeholder="请输入直播标题"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
<span class="word-num">{{(formData.liveName).replace(/\s+/g,"").length}}/24</span> <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/24</span>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="是否公开" prop="isPublicFlag"> <el-form-item label="是否公开" prop="isPublicFlag">
<el-radio-group v-model="formData.isPublicFlag" size="small"> <el-radio-group v-model="formData.scope" size="small" @change="changePublicFlag">
<el-radio label="1">否(仅限圈内人观看)</el-radio> <el-radio label="1">否(仅限圈内人观看)</el-radio>
<el-radio label="2">是(任何人可观看)</el-radio> <el-radio label="2">是(任何人可观看)</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="直播开始时间" prop="liveStartTime">
<el-form-item label="是否收集用户信息" prop="isCollectFlag" v-if="isCollectShow">
<el-radio-group v-model="formData.infoCollect" size="small">
<el-radio label="0"></el-radio>
<el-radio label="1">是(收集姓名等信息)</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="直播开始时间" prop="openTime">
<el-col :span="6"> <el-col :span="6">
<el-date-picker <el-date-picker
v-model="formData.liveStartTime" v-model="formData.openTime"
size="small" size="small"
type="datetime" type="datetime"
placeholder="请选择直播开始时间" placeholder="请选择直播开始时间"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions0" :picker-options="pickerOptions0"
style="width: 100%;" style="width: 100%;"
:disabled="peopleLevel == 'L3'"
></el-date-picker> ></el-date-picker>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="直播简介:" prop="introduce"> <el-form-item label="直播简介:" prop="introduce">
<el-col :span="14"> <el-col :span="14">
<div style="color:#666666;font-size:10px;">直播图片可选择仅文字版,仅图片版或文字版+图片版</div> <div style="color:#666666;font-size:10px;">直播图片可选择仅文字版,仅图片版或文字版+图片版</div>
<el-input type="textarea" v-model="formData.introduce" placeholder="请输入直播简介" maxlength="30" rows="3" style="width:60%;"></el-input> <el-input type="textarea" v-model="formData.rtcIntroduces[0].content" placeholder="请输入直播简介" maxlength="30" rows="3" style="width:60%;"></el-input>
<div style="color:#666666;font-size:12px;">文字版</div> <div style="color:#666666;font-size:12px;">文字版</div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-upload <el-upload
v-model="formData.imgUrl3" v-model="formData.rtcIntroduces[1].content"
class="bg-uploader" class="bg-uploader"
action="#" action="#"
:show-file-list="false" :show-file-list="false"
...@@ -101,7 +108,7 @@ ...@@ -101,7 +108,7 @@
<div class="basic-item-icon"> <div class="basic-item-icon">
<el-form-item label="直播封面" class="required-label"> <el-form-item label="直播封面" class="required-label">
<el-upload <el-upload
v-model="formData.imgUrl1" v-model="formData.cover"
class="bg-uploader" class="bg-uploader"
action="#" action="#"
:show-file-list="false" :show-file-list="false"
...@@ -138,7 +145,7 @@ ...@@ -138,7 +145,7 @@
<div class="basic-item-icon"> <div class="basic-item-icon">
<el-form-item label="直播预告图" class="required-label"> <el-form-item label="直播预告图" class="required-label">
<el-upload <el-upload
v-model="formData.imgUrl2" v-model="formData.preImage"
class="bg-uploader" class="bg-uploader"
action="#" action="#"
:show-file-list="false" :show-file-list="false"
...@@ -174,46 +181,64 @@ ...@@ -174,46 +181,64 @@
</div> </div>
<el-form-item label="直播角色" prop="introduce"> <el-form-item label="直播角色" prop="introduce">
<div style="color:#666666;font-size:10px;">讲师(必填)</div> <div style="color:#666666;font-size:10px;">讲师(必填)</div>
<el-col :span="12"> <el-col :span="10">
<el-form-item label="姓名" prop="liveName"> <el-form-item label="姓名" prop="username1" label-width="60px;">
<el-input <el-input
size="small" size="small"
v-model="formData.hostName" v-model="formData.lectures[0].username"
placeholder="请输入姓名" placeholder="请输入姓名"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="13">
<el-form-item label="手机" prop="hostMobile"> <el-form-item label="手机" prop="phone1">
<el-input <el-input maxlength="11"
size="small" size="small"
v-model="formData.hostMobile" v-model="formData.mobile"
placeholder="请输入手机号" placeholder="请输入手机号"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="15">
<el-form-item label="姓名" prop="liveName"> <div style="color:#666666;font-size:10px;">嘉宾(选填)</div>
</el-col>
<div v-for="(item, index) in formData.guests" :key="index">
<el-col :span="10">
<el-form-item label="姓名" label-width="60px;">
<el-input <el-input
size="small" size="small"
v-model="formData.hostName" v-model="formData.guests[index].username"
placeholder="请输入姓名" placeholder="请输入姓名"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="13">
<el-form-item label="手机" prop="hostMobile"> <el-form-item label="手机">
<el-input <el-input maxlength="11"
size="small" size="small"
v-model="formData.hostMobile" v-model="formData.guests[index].phone"
placeholder="请输入手机号" placeholder="请输入手机号"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
 <img
@click="addGuest(index)"
class="edit-img"
src="../../assets/image/plus.png"
v-if="isPreview!=1"
/>
<img
@click="delGuest(index)"
v-if="index >= 1 && isPreview!=1"
class="edit-img"
src="../../assets/image/trash.png"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -224,6 +249,9 @@ ...@@ -224,6 +249,9 @@
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/breadcrumb.vue";
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util"; import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { checkMobile } from '../../utils/patients/checkValid';
let vm = null;
export default { export default {
components: { components: {
BreadCrumb BreadCrumb
...@@ -239,6 +267,16 @@ ...@@ -239,6 +267,16 @@
callback(); callback();
} }
}; };
// // 校验手机号
// let checkMobile = (rule, value, callback) => {
// var reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/; //验证规则
// const flag = reg.test(value);
// if(flag){
// callback()
// }else{
// callback(new Error(`请输入正确的手机号码`))
// }
// };
return{ return{
curmbFirst: '云鹊小圈', curmbFirst: '云鹊小圈',
curmbSecond: '直播管理', curmbSecond: '直播管理',
...@@ -247,10 +285,26 @@ ...@@ -247,10 +285,26 @@
//页面展示位置 //页面展示位置
stepData: [true, false, false], stepData: [true, false, false],
showStorage: true, showStorage: true,
isCollectShow: false,
formData: { formData: {
liveName: '', name: '',// 直播名称
liveStartTime: '', scope: 1,// 直播范围 1-非公开 2-公开
infoCollect: 1,// 是否采集用户信息 0-否 1-是
openTime: '',// 直播开始时间
isPublicFlag: false, isPublicFlag: false,
rtcIntroduces:[{
seqNo: 1,
content: '',
type: 1 // 文字
},
{
seqNo: 2,
content: '',
type: 2 // 图片
}
],
cover: '', // 直播封面url 直播第一帧图片
preImage: '', // 直播预告图url
imgUrl1: '', imgUrl1: '',
imgUrl1More: {}, imgUrl1More: {},
imgUrl2: '', imgUrl2: '',
...@@ -260,15 +314,35 @@ ...@@ -260,15 +314,35 @@
intro:'', intro:'',
introduce: '', introduce: '',
hostName: '', hostName: '',
guestName: '',
hostMobile: '', hostMobile: '',
guestMobile: '',
contentRole: '', contentRole: '',
mobile: '',
lectures: [{
username: '',
phone: ''
}],// 讲师
guests: [{
phone: '',
username: ''
}] // 嘉宾
}, },
isPreview: 0,
imgMouseOver1: false, imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语 uploadImgMessage1: false,//未上传图片,校验提示语
imgMouseOver2: false, imgMouseOver2: false,
uploadImgMessage2: false, uploadImgMessage2: false,
imgMouseOver3: false, imgMouseOver3: false,
uploadImgMessage3:false, uploadImgMessage3:false,
pickerOptions0: {
disabledDate: time => {
// 在科学计数法中,为了使公式简便,可以用带“E”的格式表示。例如1.03乘10的8次方,可简写为“1.03e8”的形式
// 一天是24*60*60*1000 = 86400000 = 8.64e7
// console.log('this.maxDate',this.maxDate)
return time.getTime() > new Date(this.maxDate).getTime() || time.getTime() < new Date(this.minDate).getTime() - 8.64e7;
}
},
contentList: [ contentList: [
{ {
value: '1', value: '1',
...@@ -279,7 +353,7 @@ ...@@ -279,7 +353,7 @@
}, },
], ],
rules: { rules: {
liveName: [ name: [
{ required: true, message: "请输入直播标题", trigger: "blur" }, { required: true, message: "请输入直播标题", trigger: "blur" },
{ {
min: 2, min: 2,
...@@ -295,11 +369,15 @@ ...@@ -295,11 +369,15 @@
liveStartTime: [ liveStartTime: [
{required: true} {required: true}
], ],
hostName: [ username1: [
{required: true} {required: true, message: "请输入姓名", trigger: "blur"},
], ],
hostMobile: [ // guestName: [
{required: true} // {required: true, message: "请输入姓名", trigger: "blur"},
// ],
phone1: [
{required: true, message: "请输入手机号", trigger: 'blur'},
{ validator: checkMobile, trigger: 'blur'}
], ],
introduce: [ introduce: [
{ required: true, message: "请输入圈子名称", trigger: "blur" }, { required: true, message: "请输入圈子名称", trigger: "blur" },
...@@ -389,6 +467,15 @@ ...@@ -389,6 +467,15 @@
}; };
return isJPG && isLt2M; return isJPG && isLt2M;
}, },
// 是否公开
changePublicFlag(value){
if(value == 2){
this.isCollectShow = true;
}
else {
this.isCollectShow = false;
}
},
//删除图片 //删除图片
deleteImg(type) { deleteImg(type) {
if (type == 1) { if (type == 1) {
...@@ -396,6 +483,14 @@ ...@@ -396,6 +483,14 @@
vm.imgMouseOver1 = false; vm.imgMouseOver1 = false;
} }
}, },
// 增加嘉宾
addGuest(index) {
this.formData.guestList.splice(index + 1, 0, "");
},
// 删除嘉宾
delGuest(index) {
this.formData.guestList.splice(index, 1);
},
//完成 //完成
complete() { complete() {
this.$router.push({ this.$router.push({
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册