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

Merge branch 'dev-circle-seven-20200914' into 'release'

Dev circle seven 20200914,code review:bo.dang



See merge request !219
......@@ -74,8 +74,7 @@
@change="returnTypeData('dynamicFlag')"
placeholder="请选择发布权限"
size="small"
clearable
>
clearable>
<el-option
v-for="(item,index) in contentList"
:key="index"
......@@ -87,11 +86,22 @@
<!--<span class="el-icon-info"></span>-->
<i class="el-icon-info" style="color: #449284;"></i>
</el-tooltip>
</el-form-item>
<el-form-item label="圈子类型" prop="type">
<el-radio-group v-model="formData.type" size="small" @change="changeType">
<el-radio :label="0" class="label-type">封闭 - 只对圈子成员可见,成员只能由管理员添加、删除</el-radio>
<el-radio :label="1" class="label-type">半开放 - 对任何人可见,用户请求加入后需管理员同意,成员可自行退出</el-radio>
<el-radio :label="2" class="label-type">开放 - 对任何人可见,用户请求加入后无需管理员同意,成员可自行退出</el-radio>
</el-radio-group>
</el-form-item>
<div style="margin-top: 60px;margin-left: 250px;">
<el-button type="primary" @click="save()" center>保存</el-button>
<el-button @click="cancle()">取 消</el-button>
</div>
</el-form-item>
<el-dialog
class="dialog-title-border-old"
......@@ -189,6 +199,9 @@
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权限", trigger: "blur" },
],
type: [
{ required: true, message: "请选择圈子类型", trigger: "blur" },
]
},
imgMouseOver1: false,
......@@ -338,6 +351,9 @@
setTimeout(function () {
_this.$router.go(-1)
}, 100);
},
changeType(){
}
}
}
......@@ -431,4 +447,8 @@
color: #f56c6c;
margin-right: 4px;
}
.label-type {
width: 100%;
margin-top: 10px;
}
</style>
......@@ -54,7 +54,7 @@
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
:current-page="formOrganization.pageNum" :page-sizes="[10, 30, 50, 100, 200]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
</div>
......
......@@ -61,7 +61,7 @@
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
:current-page="formOrganization.pageNum" :page-sizes="[10, 30, 50, 100, 200]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
</div>
......
......@@ -5,6 +5,16 @@
<i class="el-icon-circle-plus-outline" @click="dialogOrgFn()"></i>
<i class="text" @click="dialogOrgFn()">添加机构</i>
</el-col>
<el-col class="add-organization" v-if="showImportFlag">
<el-upload
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadOrg">
<i class="el-icon-document-add"></i>
<i class="text">批量导入</i>
</el-upload>
</el-col>
<el-col class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
......@@ -55,7 +65,7 @@
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
:current-page="formOrganization.pageNum" :page-sizes="[10, 30, 50, 100, 200]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
<el-dialog
......@@ -87,6 +97,21 @@
<el-button type="primary" @click="hideDeleteFrom">取 消</el-button>
</span>
</el-dialog>
<el-dialog
title="导入错误提示"
:visible.sync="dialogVisible"
width="500px"
:close-on-click-modal="false"
@close="handleErrorClose"
center
>
<el-table :data="dialogErrorData" align="center">
<el-table-column property="rowNumber" label="行数" align="center"></el-table-column>
<el-table-column property="wrongData" label="错误提示" align="center"></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
......@@ -96,6 +121,7 @@ import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { moRelSearch, morDeleteOrg } from '@/utils/yqrange/memberApi';
import { getOrgProvincesReq } from '@/utils/yqrange/rangeApi';
import { uploadOrg } from '@/utils/yqrange/yqrangeApi';
import checkOrg from './checkOrg'
let vm = null;
export default {
......@@ -162,7 +188,10 @@ export default {
dialogOrg: false,
deleteVisible: false,
detelMessage: '',
clickItem: null
clickItem: null,
dialogVisible: false,
dialogErrorData: [],
showImportFlag: false,
}
},
components: {
......@@ -173,6 +202,12 @@ export default {
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
if(vm.idType == 1){
this.showImportFlag = true;
}
else {
this.showImportFlag = false;
}
},
mounted() {
},
......@@ -408,7 +443,67 @@ export default {
this.dialogOrg = false
this.searchOrganization()
this.$emit('refreshRenYuan')
},
// 批量导入
beforeUploadOrg(file) {
let name = file.name;
let type = name.substring(name.lastIndexOf('.') + 1);
if (type !== 'xls' && type !== 'xlsx') {
vm.$message({
message: '上传文件只能是 xls、xlsx格式!',
type: 'warning'
});
return;
}
openLoading(vm);
let formData = new FormData();
formData.append("circleId", vm.circleId);
formData.append("file", file);
// let files = new window.File();
uploadOrg(formData).then(res => {
closeLoading(vm);
if (res.code == "000000") {
if(res.data.successNum == 0 && res.data.wrongDataList.length > 0){
this.dialogVisible = true;
this.dialogErrorData = res.data.wrongDataList;
}
else {
this.$message({
type: 'success',
message: '导入成功!'
});
vm.initRange();
vm.searchOrganization();
vm.$emit('refreshRenYuan');
}
}
else {
this.$message({
type: 'error',
message: res.message
});
}
// vm.setDialog(res);
});
// };
// reader.readAsDataURL(file);
},
handleErrorClose() {
this.dialogVisible = false;
},
}
}
</script>
......
......@@ -5,6 +5,16 @@
<i class="el-icon-circle-plus-outline" @click="dialogMemberFn()"></i>
<i class="text" @click="dialogMemberFn()">添加人员</i>
</el-col>
<el-col class="add-organization" v-if="showImportFlag">
<el-upload
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadDoc">
<i class="el-icon-document-add"></i>
<i class="text">批量导入</i>
</el-upload>
</el-col>
<el-col class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label="机构:">
......@@ -56,7 +66,7 @@
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
:current-page="formOrganization.pageNum" :page-sizes="[10, 30, 50, 100, 200]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalPeople"></el-pagination>
</div>
<el-dialog
......@@ -88,6 +98,22 @@
<el-button type="primary" @click="hideDeleteFrom">取 消</el-button>
</span>
</el-dialog>
<el-dialog
title="导入错误提示"
:visible.sync="dialogVisible"
width="500px"
:close-on-click-modal="false"
@close="handleErrorClose"
center
>
<el-table :data="dialogErrorData" align="center">
<el-table-column property="rowNumber" label="行数" align="center"></el-table-column>
<el-table-column property="wrongData" label="错误提示" align="center"></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
......@@ -96,6 +122,7 @@ import * as operationData from "@/utils/operation";
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import { mpRelSearch, mprDeleteOrg } from '@/utils/yqrange/memberApi';
import { uploadDoc } from '@/utils/yqrange/yqrangeApi';
import addMember from './addMember.vue'
let vm = null;
export default {
......@@ -173,7 +200,10 @@ export default {
},
dialogOrg:false,
deleteVisible: false,
detelMessage: ''
detelMessage: '',
dialogVisible: false,
dialogErrorData: [],
showImportFlag: false
}
},
created() {
......@@ -181,6 +211,12 @@ export default {
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
this.initRange();
if(vm.idType == 1){
this.showImportFlag = true;
}
else {
this.showImportFlag = false;
}
},
mounted() {
......@@ -297,7 +333,66 @@ export default {
addPeople() {
this.dialogOrg = false
this.initRange()
},
// 批量导入
beforeUploadDoc(file) {
let name = file.name;
let type = name.substring(name.lastIndexOf('.') + 1);
if (type !== 'xls' && type !== 'xlsx') {
vm.$message({
message: '上传文件只能是 xls、xlsx格式!',
type: 'warning'
});
return;
}
openLoading(vm);
let formData = new FormData();
formData.append("circleId", vm.circleId);
formData.append("file", file);
// let files = new window.File();
uploadDoc(formData).then(res => {
closeLoading(vm);
if (res.code == "000000") {
if(res.data.successNum == 0 && res.data.wrongDataList.length > 0){
this.dialogVisible = true;
this.dialogErrorData = res.data.wrongDataList;
}
else {
this.$message({
type: 'success',
message: '导入成功!'
});
vm.initRange();
}
}
else {
this.$message({
type: 'error',
message: res.message
});
}
// vm.setDialog(res);
});
// };
// reader.readAsDataURL(file);
},
handleErrorClose() {
this.dialogVisible = false;
},
}
}
</script>
......
<template>
<div class="main-content" style="position: absolute;left:80px;z-index: 1">
<!--<div class="left-box left" style="background-color: white;" v-if="searchList && searchList.length > 0">-->
<div :id="searchId" class="left-box left" style="background-color: white;" v-if="searchList && searchList.length > 0">
<!-- 搜索列表 有搜索结果时-->
<!-- v-if="searchList && searchList.length > 0" v-infinite-scroll="loadMore" :infinite-scroll-disabled="busy"-->
<div class="search-list-wrap"
infinite-scroll-distance="5"
infinite-scroll-immediate-check="false"
>
<ul class="search-list">
<li v-for="(searchLi, index) in searchList" @mousedown="handleSearchLiClick(searchLi)" :key="index">
<div class="left">
<p class="disease-name" v-html="searchLi.name"></p>
<div class="one-line">
<p class="alias" v-html="searchLi.alias"></p>
<p class="sign" v-if="searchLi.alias">|</p>
<p class="code">{{searchLi.hospitalName}}</p>
</div>
</div>
<!--<div class="right" v-if="isSearchLiSelected(searchLi)"><i class="el-icon-check"></i></div>-->
</li>
<!--<p v-if="busy" class="loading">加载中...</p>-->
<!--<p v-if="noMore" class="loading">没有更多了...</p>-->
</ul>
</div>
</div>
</div>
</template>
<script>
let vm = null;
export default {
name: "search-doctor",
components: {
},
props: {
searchList: {
type: Array,
default: []
},
searchId: {
type: Number | String,
default: 100
}
},
created() {
vm = this;
// $("#" + this.searchId).show();
},
data() {
return{}
},
mounted() {
// document.querySelector("#" + this.searchId).style.display = 'block';
},
methods: {
handleSearchLiClick(searchLi) {
console.log(this.searchId);
this.$emit('handleSearchLiClick', {
name: searchLi.name,
mobilePhone: searchLi.mobilePhone
})
},
}
}
</script>
<style lang="scss">
.main-content{
overflow: hidden;
.left{
float: left;
}
.left-box{
width: 270px;
height: 300px;
.common-diagnose{
width: 100%; height: 300px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
.no-result{
font-size: 14px;
color: #e6a23c;
margin-left: 28px;
}
}
.list{
width: 100%; height: 250px;
overflow: hidden;
overflow-y: scroll;
/*.scroll-bar;*/
padding: 10px;
border: 1px solid #DCDFE6;
li{
height: 35px; line-height: 35px; padding: 0 15px;
background: #fff;
border: 1px solid #dcdfe6;
color: #606266;
cursor: pointer;
font-size: 12px;
&.active{
color: #fff;
background: #409eff;
border-color: #409eff;
}
display: inline-block;
margin: 0 10px 10px 0;
border-radius: 4px;
max-width: 350px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
}
}
.search-list-wrap{
width: 100%; height: 290px; margin-top: 10px;
border: 1px solid #DCDFE6;
overflow: hidden;
overflow-y: scroll;
/*.scroll-bar;*/
.search-list{
border-radius: 4px;
width: 100%;
padding: 10px;
li{
position: relative;
line-height: 30px;
overflow: hidden;
cursor: pointer;
font-size: 12px;
&:hover{
background: #eee;
}
.left{
width: 310px;
float: left;
span{
color: #ff8429;
}
.disease-name{
font-size: 14px;
}
.one-line{
width: 100%; overflow: hidden;
font-size: 12px; color: #aaa;
.alias{
float: left;
}
.sign{
float: left;
margin: 0 5px;
}
.code{
float: left;
}
}
}
.right{
position: absolute;
right: 0;
top: 50%;
margin-top: -13px;
// width: 0px;
// float: left;
display: inline-block;
vertical-align: middle;
i{
font-size: 24px;
color: #449284;
font-weight: 700;
}
}
.code{
line-height: 30px;
}
}
.loading{
color: #ccc;
text-align: center;
margin: 0;
font-size: 12px;
margin-top: 5px;
}
}
}
}
.choosed-list-wrap{
width: 450px;
height: 300px;
margin-left: 30px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
}
.choosed-list{
overflow: hidden;
overflow-y: scroll;
width: 450px;
height: 250px;
padding: 10px;
border: 1px solid #DCDFE6;
/*.scroll-bar;*/
.el-tag {
margin: 0 10px 10px 0;;
.text{
display: inline-block;
max-width: 342px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.el-tag__close{
top: -12px;
}
}
}
}
}
</style>
......@@ -63,6 +63,7 @@ const editRange = r => require.ensure([], () => r(require('../views/yqrange/edit
const createLive = r => require.ensure([], () => r(require('../views/yqrange/create-live.vue')), 'create-live')
const blackListManage = r => require.ensure([], () => r(require('../views/yqrange/blacklist-manage.vue')), 'blacklist-manage')
const adminManage = r => require.ensure([], () => r(require('../views/yqrange/admin-manage.vue')), 'admin-manage')
const rangeApply = r => require.ensure([], () => r(require('../views/yqrange/range-apply.vue')), 'rangeApply')
const shopList = r => require.ensure([], () => r(require('../views/shop/shop-list.vue')), 'shop-list')
const createShop = r => require.ensure([], () => r(require('../views/shop/create-shop.vue')), 'create-shop')
......@@ -249,6 +250,10 @@ export default [{
path: '/range-manage',
component: rangeManage
},
{
path: '/range-apply',
component: rangeApply
},
{
path: '/create-live',
component: createLive
......
......@@ -14,6 +14,18 @@ const vueFilter = {
return '已结束(可回看)'
}
},
circleApplyStatus: (value) => {
if(value.stauts = 0){
return '拒绝'
}
else if(value.stauts = 1){
return '待审核'
}
else if(value.stauts = 2){
return '通过'
}
},
liveStatusFilter: (value) => {
if(value == 1) return "隐藏"
else return "发布"
......
......@@ -54,9 +54,9 @@ service.interceptors.request.use(config => {
}
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
config.headers['token'] = '9606E40DDB704396AB532B2AE771048E';
// config.headers['token'] = '9098AE0A1DCE4F7B86178A9A8A1BFFCC';
// config.headers['token'] = localStorage.getItem('storageToken')
config.headers['token'] = localStorage.getItem('storageToken')
}else{
config.headers['token'] = localStorage.getItem('storageToken')
}
......
......@@ -482,6 +482,17 @@ const vueFilter = {
}else {
return '-'
}
},
circleApplyStatus: (value) => {
if(value == 0){
return '已拒绝'
}
else if(value == 1){
return '待审核'
}
else if(value == 2){
return '已通过'
}
},
// 圈子状态 0:暂存 10:待发布(已保存) 20:已发布(已提交待审核、审核被拒绝) 30:已上架(审核通过)40:下架 50:解散
rangeStatus: (value) => {
......
此差异已折叠。
......@@ -111,3 +111,54 @@ export const getImages = (params) => {
})
};
export const uploadOrg = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/import/hospitals`),
method: 'post',
data: params,
description: '批量导入机构',
})
};
export const uploadDoc = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/import/doctors`),
method: 'post',
data: params,
description: '批量导入人员',
})
};
export const searchDoc = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/doctor/search?circleId=${params.id}&name=${params.name}`),
method: 'get',
description: '直播搜索主播或者嘉宾',
})
};
export const applyList = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/apply/list`),
method: 'post',
data: params,
description: '圈子审核列表',
})
};
export const applyUpdate = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/apply/update`),
method: 'post',
data: params,
description: '圈子审核列表更新',
})
};
......@@ -58,7 +58,7 @@
@size-change="handleSizeChange"
@current-change="handleNumChange"
:current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-sizes="[10, 30, 50, 100, 200]"
:page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
......
......@@ -86,7 +86,7 @@
@size-change="handleSizeOrganization"
@current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum"
:page-sizes="[10, 20, 40]"
:page-sizes="[10, 30, 50, 100, 200]"
:page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalOrganization"
......
此差异已折叠。
......@@ -60,7 +60,8 @@
introduce: '',
dynamicFlag: '',
idType: localStorage.getItem("storageIdType"),
roleType: null
roleType: null,
type: 0
}
}
},
......
......@@ -46,7 +46,7 @@
</el-row>
</el-form>
<el-table :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;">
<el-table-column prop="liveName" label="直播名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="name" label="直播名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="liveStatus" label="直播状态" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.liveStatus | liveStatusFilter }}</span>
......@@ -57,8 +57,8 @@
<span>{{ scope.row.streamType | streamTypeFilter }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="startTime" label="开始时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="createdTime" label="创建时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="openTime" label="开始时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="endTime" label="结束时间" min-width="100" align="center"></el-table-column>
<el-table-column label="操作" min-width="300" align="center">
<template slot-scope="scope">
......@@ -72,7 +72,7 @@
@click="liveLink(scope.row)"
type="text"
size="small"
v-if="!((scope.row.liveStatus==4 && scope.row.liveScope==1) || (scope.row.streamType==2 && scope.row.liveScope==1))">直播链接</el-button>
v-if="!((scope.row.liveStatus==4 && scope.row.scope==1) || (scope.row.streamType==2 && scope.row.scope==1))">直播链接</el-button>
<el-button
@click="updatelive(scope.row)"
......@@ -85,6 +85,7 @@
size="small"
v-if="scope.row.liveStatus==4">数据统计</el-button>
<el-button @click="editLive(scope.row)" type="text" size="small">编辑</el-button>
<el-button @click="delLive(scope.row)" type="text" size="small">删除</el-button>
<!--<el-button @click="setPlayback(scope.row)" type="text" size="small" v-if="scope.row.playbackSetFlag == 1">设置回放</el-button>-->
<!--<el-button @click="setPlayback(scope.row)" type="text" size="small" v-if="scope.row.playbackSetFlag == 1">关闭回放</el-button>-->
......@@ -98,7 +99,7 @@
@size-change="handleSizeChange"
@current-change="handleNumChange"
:current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-sizes="[10, 30, 50, 100, 200]"
:page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
......@@ -152,7 +153,7 @@
</el-col>
</div>
<div class="live_url_style" v-if="streamType == 2 || this.liveScope==2">
<div class="live_url_style" v-if="streamType == 2 || this.scope==2">
<div class="href_style">观众链接 {{audienceUrl}}</div>
<el-col class="href_outer_border">
<el-link type="primary" @click="copyTxt(3)" size="small" class="href_button_style">复制</el-link>
......@@ -336,7 +337,7 @@ export default {
tableData: [
// {
// liveName: "浙江医学大会第二场",
// liveScope: 1, //直播范围 1-非公开 2-公开
// scope: 1, //直播范围 1-非公开 2-公开
// liveStatus: 1, //直播状态 1-未开始 2-直播中 3-暂停中 4-已结束 5-回放中目前只能用到1,2,4
// createTime: "",
// startTime: "",
......@@ -351,12 +352,12 @@ export default {
signNum: 0
}
],
liveScope: 1,
scope: 1,
liveStatus: 1,
lecturerUrl: "https://dev.yunxin.163.com/",
guestUrl: "https://www.cnblogs.com/",
audienceUrl: "https://www.soho.com",
lecturerUrl: "",
guestUrl: "",
audienceUrl: "",
playbackForm: {
canPlayback: 0,
playbackUrls: {
......@@ -453,17 +454,17 @@ export default {
//弹出直播链接弹窗
liveLink(row) {
this.dialogLivelinkVisible = true;
this.liveScope = row.liveScope;
this.scope = row.scope;
this.liveStatus = row.liveStatus;
this.streamType = row.streamType;
console.log(
"liveLink() : liveScope = " +
this.liveScope +
"liveLink() : scope = " +
this.scope +
", liveStatus = " +
this.liveStatus
);
vm.GET("rtc/liveAdmin/url/" + row.rtcId, "").then(res => {
vm.GET("rtc/liveAdmin/url/" + row.id, "").then(res => {
if (res.code == "000000") {
this.lecturerUrl = res.data.lecturerUrl;
this.guestUrl = res.data.guestUrl;
......@@ -489,7 +490,7 @@ export default {
setPlayback(row) {
vm.dialogLivePlaybackVisible = true;
const rtcId = row.rtcId;
const rtcId = row.id;
vm.streamType = row.streamType;
......@@ -887,7 +888,7 @@ export default {
// vm.submitPlayback(0);
let params = {rtcId: row.rtcId, canPlayback: 0};
let params = {rtcId: row.id, canPlayback: 0};
postPlayback(params).then((res) => {
closeLoading(this);
......@@ -925,7 +926,7 @@ export default {
.then(() => {
openLoading(this);
// confirm
let params = {rtcId: row.rtcId,liveStatus: 4};
let params = {rtcId: row.id,liveStatus: 4};
updateLiveStatus(params).then((res) => {
closeLoading(this);
......@@ -947,11 +948,11 @@ export default {
//数据统计
countLive(row) {
this.rtcId = row.rtcId;
this.rtcId = row.id;
this.isSign = row.isSign;
this.dialogStatisticsVisible = true;
console.log("getStatisticsData() : this.circleId = " + this.circleId);
vm.GET("rtc/liveAdmin/data/" + row.rtcId, "").then(res => {
vm.GET("rtc/liveAdmin/data/" + row.id, "").then(res => {
if (res.code == "000000") {
let listData = [];
let obj = {
......@@ -975,15 +976,26 @@ export default {
path: "/create-live",
query: {
// rtcId: "1"
rtcId: row.rtcId,
rtcId: row.id,
circleId: this.circleId,
circleName: this.circleName
}
});
},
//删除直播
deleteLive(row) {
this.$confirm(`确定删除“${row.liveName}”吗?`, "", {
delLive(row) {
// 直播中
if(row.liveStatus == 2){
vm.$message({
type: "warning",
message: "直播中无法删除,请直播结束后重试"
});
}
// 1:直播预告;4:直播结束后,可以删除
else if(row.liveStatus == 1 || row.liveStatus == 4){
this.$confirm(`确定删除“${row.name}”吗?`, "", {
confirmButtonText: "删除",
cancelButtonText: "取消",
type: "warning"
......@@ -991,10 +1003,7 @@ export default {
})
.then(() => {
// confirm
let req = {
rtcId: row.rtcId
};
vm.DELETE("rtc/liveAdmin", req).then(res => {
vm.DELETE("rtc/liveAdmin/" + row.id, {}).then(res => {
if (res.code == "000000") {
vm.$message({
type: "success",
......@@ -1003,13 +1012,18 @@ export default {
this.getLiveList("", "");
} else {
vm.$message({
type: "success",
message: "删除失败"
type: "warning",
message: res.message
});
}
});
})
.catch(() => {});
}
},
// //编辑直播
// editLive(row) {
......@@ -1047,23 +1061,23 @@ export default {
if (res.data.pageContents == null) {
return;
}
for (let i = 0; i < res.data.pageContents.length; i++) {
let obj = {
liveName: res.data.pageContents[i].name,
liveScope: res.data.pageContents[i].scope,
liveStatus: res.data.pageContents[i].liveStatus,
streamType: res.data.pageContents[i].streamType,
playbackSetFlag: res.data.pageContents[i].playbackSetFlag,
canPlayback: res.data.pageContents[i].canPlayback,
createTime: res.data.pageContents[i].createdTime,
startTime: res.data.pageContents[i].openTime,
endTime: res.data.pageContents[i].endTime,
rtcId: res.data.pageContents[i].id,
isSign: res.data.pageContents[i].isSign
};
listData.push(obj);
}
this.tableData = listData;
// for (let i = 0; i < res.data.pageContents.length; i++) {
// let obj = {
// // liveName: res.data.pageContents[i].name,
// // liveScope: res.data.pageContents[i].scope,
// // liveStatus: res.data.pageContents[i].liveStatus,
// // streamType: res.data.pageContents[i].streamType,
// // playbackSetFlag: res.data.pageContents[i].playbackSetFlag,
// // canPlayback: res.data.pageContents[i].canPlayback,
// // createTime: res.data.pageContents[i].createdTime,
// // startTime: res.data.pageContents[i].openTime,
// // endTime: res.data.pageContents[i].endTime,
// // rtcId: res.data.pageContents[i].id,
// // isSign: res.data.pageContents[i].isSign
// };
// listData.push(obj);
// }
this.tableData = res.data.pageContents;
this.totalRows = res.data.totalRows;
} else {
......
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>
<div class="yqrange-index-content">
<el-form ref="searchForm" :model="searchForm" label-width="75px" label-suffix=":" :inline="true">
<el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="8">
<el-input v-model="searchForm.name" size="small" placeholder="请输入申请人姓名"></el-input>
</el-col>
<el-col :span="9">
<el-input v-model="searchForm.circleName" size="small" placeholder="请输入圈子名称"></el-input>
</el-col>
<el-col :span="9">
<el-select
v-model="searchForm.status"
placeholder="全部审核状态"
size="small"
clearable>
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-col>
<el-col :span="7" style="text-align: right">
<el-button type="primary" size="small" @click="search">搜索</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">取消搜索</el-button>
</el-col>
</el-row>
</el-form>
<el-table :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;">
<el-table-column prop="name" label="申请人" min-width="100" align="center"></el-table-column>
<el-table-column prop="circleName" label="申请加入圈子" min-width="100" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" min-width="100" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" min-width="100" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" min-width="100" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" min-width="100" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" min-width="100" align="center"></el-table-column>
<el-table-column prop="status" label="审核状态" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.status | circleApplyStatus }}</span>
</template>
</el-table-column>
<el-table-column label="操作" min-width="370" align="center">
<template slot-scope="scope">
<div v-if="scope.row.status != 50">
<el-button @click="approve(scope.row)" type="text" size="small" v-if="scope.row.status != 0 && scope.row.status != 2">通过</el-button>
<el-button @click="reject(scope.row)" type="text" size="small" v-if="scope.row.status != 0 && scope.row.status != 2">拒绝</el-button>
</div>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleNumChange"
:current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { applyList, applyUpdate} from "../../utils/yqrange/yqrangeApi";
export default {
components: {
BreadCrumb
},
data(){
return{
curmbFirst: '审核列表',
showAllFlag: false,
showNewFlag: false,
searchForm: {
name: '',
circleName: '',
// endTime: '',
status: -1,
pageNo: 1,
pageSize: 10,
},
totalRows: 0,
tableData: [],
dialogSettingVisible: false,
settingForm:{
circleId: null,
settingData: []
},
statusList: [
{
value: -1,
label: "全部状态"
},
{
value: 0,
label: "已拒绝"
},
{
value: 1,
label: "待审核"
},
{
value: 2,
label: "已通过"
},
],
dialogVisible: false
}
},
created() {
this.initPrivilege();
this.search();
},
methods: {
initPrivilege(){
let idType = localStorage.getItem('storageIdType');
// if(idType == null || idType == ""){
// idType = 2;
// localStorage.setItem('storageIdType', idType);
// }
// this.searchForm.userType = idType;
// 内部用户:运营人员
if(idType == "1"){
this.showAllFlag = true;
this.showNewFlag = true;
}
// 外部用户
else if(idType == "2"){
this.showAllFlag = false;
setTimeout(() => {
this.getUserAuth();
},1500)
}
},
// 外部用户权限
getUserAuth(){
let highMainManager = localStorage.getItem('highMainManager');
let mainManager = localStorage.getItem('mainManager');
let manager = localStorage.getItem('manager');
if(highMainManager == "1" || mainManager == "1"){
this.showNewFlag = true;
}
else if(manager == "1"){
this.showNewFlag = false;
}
// localStorage.setItem('ordinary', vm.setStoreData(ordinary))
},
// 搜索
search(){
this.searchForm.pageNo = 1;
this.searchList();
},
searchList() {
openLoading(this);
let params = this.searchForm;
if(this.searchForm.status == ""){
this.searchForm.status = -1;
}
console.log('查询圈子')
applyList(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.tableData = res.data.list;
this.totalRows = res.data.total;
} else {
this.tableData = [];
}
}).catch((error) => {
// this.$message({
// message: error,
// type: 'error'
// });
this.$message.error("请重试");
})
},
resetForm() {
this.searchForm.name = "";
this.searchForm.circleName = "";
this.searchForm.status = -1;
console.log('重置')
this.search();
},
// 更新圈子状态(上线,下线)
updateStatus(params){
applyUpdate(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.$message.success("成功");
this.searchList();
} else {
this.$message.success("失败");
}
}).catch((error) => {
// this.$message({
// message: error,
// type: 'error'
// });
this.$message.error("请重试");
})
},
// 0:拒绝,1:待审核;2.通过
approve(row){
let params = {
applyList: [{
"circleId": row.circleId,
"doctorId": row.doctorId,
"status": 2
}]
};
this.updateStatus(params);
},
//拒绝
reject(row) {
let params = {
applyList: [{
"circleId": row.circleId,
"doctorId": row.doctorId,
"status": 0
}]
};
this.$confirm(`拒绝后"${row.name}"将无法访问"${row.circleName}"`, `确认拒绝`, {
confirmButtonText: '拒绝',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
this.updateStatus(params);
// confirm
}).catch(() => {
// cancel
});
},
// 关闭
handleSettingClose(){
this.dialogSettingVisible = false;
},
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.search();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
},
}
</script>
<style lang="scss">
.yqrange-index-wrapper{
.yqrange-index-content{
background: #fff;
padding: 10px;
.header-title{
padding: 10px 12px;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
.el-button--text{
color: #449284;
font-size: 14px;
&::after{
content: '';
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type{
&::after{
content: '';
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
}
}
}
/*.range-make-box{*/
/*.el-message-box__btns{*/
/*margin-top: 30px;*/
/*}*/
/*}*/
</style>
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>
<div class="yqrange-index-content screenSet" id="screenSet">
<div class="header-title">云鹊小圈</div>
<div class="yqrange-index-content screenSet">
<el-tabs v-model="activeName" @tab-click="tabChangeHandler">
<el-tab-pane label="云鹊小圈" name="first">
<el-form ref="searchForm" :model="searchForm" label-width="75px" label-suffix=":" :inline="true">
<el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="8">
......@@ -73,7 +74,7 @@
@size-change="handleSizeChange"
@current-change="handleNumChange"
:current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-sizes="[10, 30, 50, 100, 200]"
:page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
......@@ -114,8 +115,17 @@
</el-dialog>
</el-tab-pane>
<el-tab-pane label="审核列表" name="second" v-if="showApplyFlag">
<range-apply></range-apply>
</el-tab-pane>
</el-tabs>
</div>
</div>
......@@ -124,15 +134,21 @@
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting} from "../../utils/yqrange/yqrangeApi";
import ElTabPane from "element-ui/packages/tabs/src/tab-pane";
import RangeApply from "./range-apply";
export default {
components: {
RangeApply,
ElTabPane,
BreadCrumb
},
data(){
return{
curmbFirst: '云鹊小圈',
activeName: 'first',
showAllFlag: false,
showNewFlag: false,
showApplyFlag: false,
searchForm: {
name: '',
createdTime: '',
......@@ -157,6 +173,8 @@ export default {
},
methods: {
tabChangeHandler(tab) {},
initPrivilege(){
let idType = localStorage.getItem('storageIdType');
// if(idType == null || idType == ""){
......@@ -169,14 +187,14 @@ export default {
if(idType == "1"){
this.showAllFlag = true;
this.showNewFlag = true;
this.showApplyFlag = true;
}
// 外部用户
else if(idType == "2"){
this.showAllFlag = false;
setTimeout(() => {
this.getUserAuth();
},1500)
},500)
}
},
......@@ -186,13 +204,20 @@ export default {
let highMainManager = localStorage.getItem('highMainManager');
let mainManager = localStorage.getItem('mainManager');
let manager = localStorage.getItem('manager');
let ordinary = localStorage.getItem('ordinary');
if(highMainManager == "1" || mainManager == "1"){
this.showNewFlag = true;
this.showApplyFlag = true;
}
else if(manager == "1"){
this.showNewFlag = false;
this.showApplyFlag = true;
}
else if(ordinary == "1"){
this.showApplyFlag = false;
}
// localStorage.setItem('ordinary', vm.setStoreData(ordinary))
},
......@@ -455,9 +480,13 @@ export default {
this.$message.error("请重试");
})
},
getRangeNotice(){
this.$router.push({
path: '/range-notice'
})
}
},
}
</script>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册