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

新增圈子类型和审核管理

上级 dc72255e
......@@ -90,11 +90,11 @@
</el-form-item>
<el-form-item label="圈子类型" prop="scope">
<el-form-item label="圈子类型" prop="type">
<el-radio-group v-model="formData.type" size="small" @change="changeType">
<el-radio label="1" class="label-type">封闭 - 只对圈子成员可见,成员只能由管理员添加、删除</el-radio>
<el-radio label="2" class="label-type">半开放 - 对任何人可见,用户请求加入后需管理员同意,成员可自行退出</el-radio>
<el-radio label="3" class="label-type">开放 - 对任何人可见,用户请求加入后无需管理员同意,成员可自行退出</el-radio>
<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>
......@@ -199,6 +199,9 @@
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权限", trigger: "blur" },
],
type: [
{ required: true, message: "请选择圈子类型", trigger: "blur" },
]
},
imgMouseOver1: false,
......
......@@ -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" >
<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>
......@@ -96,6 +106,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 {
......@@ -408,7 +419,76 @@ export default {
this.dialogOrg = false
this.searchOrganization()
this.$emit('refreshRenYuan')
}
},
// 批量导入
beforeUploadOrg(file) {
//
// console.log(file);
// let arr = file.type.split("/");
// let ext = "." + arr[1];
// let name = file.name;
//
//
// let reader = new FileReader();
// reader.onload = function(e) {
// let fileJson = {
// fileName: file.name,
// file: e.target.result.substr(e.target.result.indexOf("base64,") + 7),
// ext: ext
// };
// let fileArray = [
// {
// type: "",
// base64: fileJson
// }
// ];
// let req = {
// fileArray: fileArray,
// // scopeOfAdministrative: vm.getScope("administrative")
// scopeOfAdministrative: vm.regio
// };
// console.log("req", req);
openLoading(vm);
// let params = {
// // id: vm.circleId,
// id: 50,
// file: fileArray
// };
let formData = new FormData();
formData.append("circleId", 50);
formData.append("file", file);
// let files = new window.File();
uploadOrg(formData).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.$message({
type: 'success',
message: '导入成功!'
});
}
else {
this.$message({
type: 'error',
message: '导入失败!'
});
}
// vm.setDialog(res);
});
// };
// reader.readAsDataURL(file);
},
}
}
</script>
......@@ -430,7 +510,7 @@ export default {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
......
......@@ -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" >
<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="机构:">
......@@ -19,7 +29,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="serch()">搜索</el-button>
</el-form-item>
......@@ -96,6 +106,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 {
......@@ -183,8 +194,8 @@ export default {
this.initRange();
},
mounted() {
},
methods: {
initRange() {
......@@ -297,7 +308,61 @@ export default {
addPeople() {
this.dialogOrg = false
this.initRange()
}
},
// 批量导入
beforeUploadDoc(file) {
console.log(file);
let arr = file.type.split("/");
let ext = "." + arr[1];
let name = file.name;
let reader = new FileReader();
reader.onload = function(e) {
let fileJson = {
fileName: file.name,
file: e.target.result.substr(e.target.result.indexOf("base64,") + 7),
ext: ext
};
let fileArray = [
{
type: "",
base64: fileJson
}
];
// let req = {
// fileArray: fileArray,
// // scopeOfAdministrative: vm.getScope("administrative")
// scopeOfAdministrative: vm.regio
// };
console.log("req", req);
openLoading(vm);
let params = {
id: vm.circleId,
file: fileJson
};
uploadDoc(params).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.$message({
type: 'success',
message: '导入成功!'
});
}
else {
this.$message({
type: 'error',
message: '导入失败!'
});
}
// vm.setDialog(res);
});
};
reader.readAsDataURL(file);
},
}
}
</script>
......@@ -314,7 +379,7 @@ export default {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
flex: 1;
......
......@@ -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 rangeNotice = r => require.ensure([], () => r(require('../views/yqrange/range-notice.vue')), 'rangeNotice')
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-notice',
component: rangeNotice
},
{
path: '/create-live',
component: createLive
......
此差异已折叠。
......@@ -111,3 +111,33 @@ 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/circle/import/${params.id}/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: '直播搜索主播或者嘉宾',
})
};
......@@ -416,6 +416,8 @@
placeholder="请输入姓名"
style="width:85%;"
:disabled="liveEditFlag"
@input="handleInputSearch(formData.lecturesUserName)"
@blur="handleSearchListBlur"
></el-input>
</el-form-item>
</el-col>
......@@ -448,6 +450,8 @@
placeholder="请输入姓名"
style="width:85%;"
:disabled="guestEditFlag"
@input="handleInputSearch(item.username)"
@blur="handleSearchListBlur"
></el-input>
</el-form-item>
</el-col>
......@@ -489,6 +493,39 @@
</div>
</div>
<div class="main-content">
<div class="left-box left">
<!-- 搜索列表 有搜索结果时-->
<div
v-if="searchList && searchList.length > 0"
class="search-list-wrap"
v-infinite-scroll="loadMore"
:infinite-scroll-disabled="busy"
infinite-scroll-distance="5"
infinite-scroll-immediate-check="false"
>
<ul class="search-list">
<li v-for="(searchLi, index) in searchList" @mousedown="handleSearchLiClick(searchLi)">
<div class="left">
<p class="disease-name" v-html="searchLi.diseaseName"></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.icdCode}}</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>
<el-dialog
class="dialog-title-border-old"
title="图片裁剪"
......@@ -564,7 +601,7 @@
import { isEmptyUtils, openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath, unsubscribe} from "../../utils/qiniu-util";
import { checkMobile } from '../../utils/patients/checkValid';
import { getRtcInfo, getImages } from "../../utils/yqrange/yqrangeApi";
import { getRtcInfo, getImages, searchDoc} from "../../utils/yqrange/yqrangeApi";
import Cropper from '@/components/common/cropper.vue'
// import { ossUpload, getFilePathForOSS } from "@/utils/oss/ossUtil";
// import { checkPhone } from "../login.vue";
......@@ -709,7 +746,8 @@
// 一天是24*60*60*1000 = 86400000 = 8.64e7
// console.log('this.maxDate',this.maxDate)
return time.getTime() < Date.now() - 8.64e7
}
},
searchList: null
},
rules: {
name: [
......@@ -1914,7 +1952,58 @@
else if(this.formData.signMinute > 1000){
this.formData.signMinute = 1000;
}
}
},
// 搜索框中输入文字 时 page=1 pageSize=30
handleInputSearch(name) {
// debugger;
clearTimeout(this.searchFlagTimer);
let that = this;
that.page = 1;
that.isInputResponse = false;
if( that.searchInput == ''){
that.searchList = [];
return;
}
that.searchList = [];
let params = {
id: this.circleId,
name: name
};
this.searchFlagTimer = setTimeout(() => {
searchDoc(params).then(res => {
// console.log('>>>>>>*********** search: ', res)
if(res.code == '000000'){
that.isInputResponse = true;
that.totalPageNum = Math.ceil(res.data.total/that.pageSize); // 总页数
let list = res.data.icdContentsList || [];
if(list.length > 0){
if(that.searchInput == ''){
that.searchList = [];
return;
}
that.searchList = list;
that.hasNoResult = false;
}else{
that.searchList = [];
that.hasNoResult = true;
}
}else{
that.isInputResponse = false;
that.searchList = [];
that.$message({
message: data.message,
type: 'warning'
});
}
})
}, 300)
},
handleSearchListBlur() {
this.searchList = [];
clearTimeout(this.searchFlagTimer);
// console.log('blur.....')
},
},
......
......@@ -61,7 +61,7 @@
dynamicFlag: '',
idType: localStorage.getItem("storageIdType"),
roleType: null,
type: null
type: 0
}
}
},
......
......@@ -1003,9 +1003,6 @@ export default {
})
.then(() => {
// confirm
let req = {
rtcId: row.id
};
vm.DELETE("rtc/liveAdmin/" + row.id, {}).then(res => {
if (res.code == "000000") {
vm.$message({
......
此差异已折叠。
<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">
......@@ -114,8 +115,17 @@
</el-dialog>
</el-tab-pane>
<el-tab-pane label="审核管理" name="second">
<range-notice></range-notice>
</el-tab-pane>
</el-tabs>
</div>
</div>
......@@ -124,13 +134,18 @@
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 RangeNotice from "./range-notice";
export default {
components: {
RangeNotice,
ElTabPane,
BreadCrumb
},
data(){
return{
curmbFirst: '云鹊小圈',
activeName: 'first',
showAllFlag: false,
showNewFlag: false,
searchForm: {
......@@ -455,9 +470,13 @@ export default {
this.$message.error("请重试");
})
},
getRangeNotice(){
this.$router.push({
path: '/range-notice'
})
}
},
}
</script>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册