提交 a3c21dd2 编写于 作者: guangjun.yang's avatar guangjun.yang

Merge branch 'release'

* release: (25 commits)
  自定义tab可以增删
  提示信息问题
  修改字段
  增加下载人员名单
  提示信息问题
  操作失败时提醒
  云鹊专区中应用配置增加自定义积木需求
  云鹊专区中应用配置增加自定义积木需求
  广场管理编辑专区样式修改
  云鹊专区中应用配置增加自定义积木需求
  增加积木删除功能
  云鹊专区中应用配置增加自定义积木需求
  kol管理修改移除按钮文案
  kol管理修改文案
  kol管理保存优化
  1.文案“圈子管理”改为“专区管理”,“云鹊小圈”改为“云鹊专区”
  拖动table
  KOL管理tab保存接口联调
  增加kol的table
  KOL管理tab接口联调
  ...
......@@ -2803,6 +2803,10 @@
"loader-utils": "~0.2.5"
}
},
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#1.3.8"
},
"filename-regex": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
......@@ -2957,8 +2961,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"aproba": {
"version": "1.2.0",
......@@ -2979,14 +2982,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
......@@ -3001,20 +3002,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -3131,8 +3129,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"ini": {
"version": "1.3.5",
......@@ -3144,7 +3141,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
......@@ -3159,7 +3155,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
......@@ -3167,14 +3162,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
......@@ -3193,7 +3186,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -3274,8 +3266,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"object-assign": {
"version": "4.1.1",
......@@ -3287,7 +3278,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -3373,8 +3363,7 @@
"safe-buffer": {
"version": "5.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
......@@ -3410,7 +3399,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......@@ -3430,7 +3418,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
......@@ -3474,14 +3461,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"yallist": {
"version": "3.0.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
}
}
},
......@@ -4463,6 +4448,7 @@
"integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
"requires": {
"canvg": "1.5.3",
"file-saver": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"html2canvas": "1.0.0-alpha.12",
"omggif": "1.0.7",
"promise-polyfill": "8.1.0",
......@@ -4482,10 +4468,6 @@
"base64-arraybuffer": "^0.1.5"
}
},
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
},
"html2canvas": {
"version": "1.0.0-alpha.12",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
......@@ -8412,9 +8394,9 @@
}
},
"sortablejs": {
"version": "1.10.0-rc3",
"resolved": "http://192.168.110.93:4873/sortablejs/-/sortablejs-1.10.0-rc3.tgz",
"integrity": "sha1-L+Y0Y6OLXNEuyRT8PgNYMEhJb0I="
"version": "1.13.0",
"resolved": "http://192.168.110.93:4873/sortablejs/-/sortablejs-1.13.0.tgz",
"integrity": "sha1-OrJHP4xpymNWnoCxzRtWabUSaek="
},
"source-list-map": {
"version": "0.1.8",
......
......@@ -174,7 +174,7 @@
this.sendSetForm.remark = '';
this.$emit('closeSendSet',{type: 2})
}else {
this.$message.error('操作失败,请重试')
this.$message.error(res.message);
}
});
} else {
......
<template>
<div class="kmc">
<el-row class="table-content">
<!-- 表格 -->
<div class="table-title">
<span class="table-t" v-for="(item,index) of titleList" :key="index">{{item.title}}</span>
</div>
<draggable :list="groupData" :move="getdata" @update="datadragEnd" :options="{handle:'.dargDiv'}">
<transition-group name="list-complete">
<div v-for="(element, index) in groupData" :key="index" class="list-complete-item dargDiv" v-bind:class="{ border_top: index == 0}">
<div class="styleclass" style="width: 150px">{{ index+1 }}</div>
<div class="styleclass" >{{ element.name }}</div>
<div class="styleclass" >{{ element.district }}</div>
<div class="styleclass" >{{ element.hospital }}</div>
<div class="styleclass" >{{ element.department }}</div>
<div class="styleclass" >{{ element.title }}</div>
<div class="styleclass" >{{ element.team }}</div>
<div class="styleclass" >{{ element.status }}</div>
<div class="styleclass" >
<el-button type="danger" size="small" @click="deletefn(index)">移除</el-button>
</div>
</div>
</transition-group>
</draggable>
</el-row>
</div>
</template>
<script>
export default {
props: {
tableData: {
type: Array,
default: []
}
},
data() {
return {
groupData: [],
titleList: [
{
title: '顺序(可拖拽排序)'
},
{
title: '姓名'
},
{
title: '地区'
},
{
title: '所在医院'
},
{
title: '科室'
},
{
title: '职称'
},
{
title: '所属团队'
},
{
title: '专家状态'
},
{
title: '操作'
}
]
}
},
watch: {
tableData: {
deep: true,
immediate: true,
handler(newv){
this.groupData = newv
}
}
},
methods: {
getdata: function(evt){
},
datadragEnd:function(evt){
console.log('拖动前的索引:'+evt.oldIndex);
console.log('拖动后的索引:'+evt.newIndex);
},
deletefn(index) {
this.groupData.splice(index,1)
},
getNewData() {
this.groupData.forEach((element,index) => {
element.seq = index + 1
});
return this.groupData
}
},
}
</script>
<style lang="scss" scoped>
.kmc{
font-size: 14px;
}
.table-content {
margin-top: 15px;
}
.save-btn {
margin-top: 20px;
display: flex;
justify-content: center;
}
.table-title {
display: flex;
/*height: 60px;*/
/*line-height: 60px;*/
min-height: 60px;
background: #fafafa;
border-bottom: 1px solid #efefef;
align-items: center;
justify-content: center;
.table-t {
flex: 1;
width: 11%;
display: inline-block;
text-align: center;
}
}
.dargDiv {
display: flex;
padding: 20px 0;
border-bottom: 1px solid #efefef;
overflow: hidden;
}
.dargDiv .styleclass{
flex: 1;
width: 11%;
text-align: center;
height: 100px;
// line-height: 100px;
// overflow: hidden;
// text-overflow:ellipsis;
// white-space: nowrap;
align-items: center;
justify-content: center;
display: flex;
}
</style>
<template>
<div class="kmc">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
<el-row>
<el-col :span="6">
<el-form-item label="是否显示KOL入口" prop="showStatus">
<el-radio-group v-model="ruleForm.showStatus">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入口文案" prop="desc">
<el-input v-model="ruleForm.desc" placeholder="请输入入口文案,最长6个字"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-button type="primary" @click="handleAdd">添加</el-button>
<span class="des">*说明:添加和移除kol后,需点击页面的保存按钮,方可生效</span>
</el-row>
</el-form>
<el-row class="table-content">
<kol-table :tableData="tableData" ref="kolTable" v-if="tableData && tableData.length"></kol-table>
<el-row class="save-btn">
<el-button type="primary" @click="handleSave">保存</el-button>
</el-row>
</el-row>
<el-dialog :title="dialogTitle"
:visible.sync="addFormVisible"
:close-on-press-escape="false"
:close-on-click-modal="false">
<el-form ref="addForm"
:rules="rules2"
:model="addForm"
label-width="150px"
label-suffix=":"
size="small">
<el-form-item label="姓名" prop="name">
<el-select v-model="addForm.name"
filterable
remote
placeholder="请输入专家姓名或医院名称,多个关键字用空格隔开"
clearable
style="width: 100%;"
:remote-method="remoteMethod"
@change="nameChange"
@visible-change="noSelectHand">
<el-option
v-for="item in expertList"
:key="item.userId"
:label="item.option"
:value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button size="small" type="primary" @click="submitForm('addForm')">确 定</el-button>
<el-button size="small" @click="addFormVisible = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import kolTable from './kol-component/kolTable'
import { getExpertList, getExperNametList, saveKolConfig } from '@/utils/yqrange/rangeApi'
import { openLoading, closeLoading } from "@/utils/utils";
export default {
components: {
kolTable
},
props: {
circleId: {
type: Number | String,
default: null
}
},
data() {
return {
ruleForm: {
desc: '',
showStatus: 0
},
dialogTitle: '添加KOL',
addFormVisible: false,
addForm: {
name: '',
},
nameList: [],
expertList: [],
selectExpertItem: {},
rules: {
showStatus: [
{ required: true, message: '请选择是否展示入口', trigger: 'blur' }
],
desc: [
{ required: true, message: '请输入入口文案', trigger: 'blur' },
{ max: 6, message: '入口文案长度不能多于6个字符', trigger: 'blur' }
]
},
rules2: {
name: [
{ required: true, message: '请输入专家姓名或医院名称,多个关键字用空格隔开', trigger: 'change' },
],
},
tableData: []
}
},
mounted() {
this.initData();
},
methods: {
initData() {
getExpertList(this.circleId).then(res => {
if (res.code == '000000') {
// console.log('获取kol配置',res.data);
const { kolConfig, kolRecordList } = res.data;
this.ruleForm = kolConfig;
this.tableData = kolRecordList;
}
}).catch(err => {
console.log('网络出现点儿问题,稍后重试')
})
},
handleAdd() {
this.addFormVisible = true;
if (this.$refs['addForm']) {
this.$refs['addForm'].resetFields();
}
this.expertList = [];
this.selectExpertItem = {};
},
handleSave() {
// 排序和删除后的table数据
let newTableData = [];
if (this.tableData && this.tableData.length) {
newTableData = this.$refs.kolTable.getNewData()
}
this.$refs.ruleForm.validate((valid) => {
if (valid) {
let param = {
circleId: this.circleId,
kolConfig: this.ruleForm,
// kolRecordList: this.tableData
kolRecordList: newTableData
}
openLoading(this);
saveKolConfig(param).then(res => {
if (res.code == '000000') {
closeLoading(this);
this.$message.success('保存成功');
this.initData();
}
}).catch(err => {
console.log('出错了')
})
}
});
},
deleteItem(index) {
this.tableData.splice(index, 1);
},
remoteMethod(val){
if (val) {
getExperNametList(this.circleId, val).then(res => {
if (res.code == '000000') {
this.expertList = res.data;
}else {
this.expertList = [];
}
}).catch(err => {
console.log('网络出现点儿问题,稍后重试')
})
}else {
this.expertList = [];
}
},
nameChange(val) {
this.selectExpertItem = {};
if (val) {
this.expertList.map((item,index) => {
if(val == item.userId){
this.selectExpertItem = item.kolRecord;
}
})
}
},
noSelectHand(val) {
if (!val && !this.addForm.name) {
this.expertList = [];
this.selectExpertItem = {};
}
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let len = 0;
if (this.tableData && this.tableData.length) {
let len = this.tableData.length;
for (let i=0; i< len; i++) {
if (this.addForm.name == this.tableData[i].doctorId) {
this.$message.warning('当前选择的专家已经被添加过,请选择其他专家!');
return
}
}
}else {
this.tableData = [];
len = 0;
}
this.tableData.push({
...this.selectExpertItem,
seq: len + 1,
});
this.expertList = [];
this.addFormVisible = false;
}
});
},
},
}
</script>
<style lang="scss" scoped>
.des {
font-size: 12px;
color: #777;
margin-left: 40px;
}
.table-content {
margin-top: 15px;
}
.save-btn {
margin-top: 20px;
display: flex;
justify-content: center;
}
</style>
<template>
<div class="member-management" id="screenSet">
<el-row type="flex" justify="space-around" class="mm-nav" align="middle">
<el-row type="flex" justify="space-around" class="mm-nav">
<el-col :span="20">
<el-button :type="areabtn" round class="margin-l" @click="checkTab(0)" v-show='isAraeEdit' >可访问本圈的地区</el-button>
<el-button :type="orgbtn" round class="margin-l" @click="checkTab(1)">可访问本圈的机构 ({{orgTotal}})</el-button>
......@@ -8,7 +8,8 @@
<span class="text inlin" @click="goBalck">黑名单</span>
</el-col>
<el-col :span="4" class="mm-r">
<span class="text" @click="goManger" v-if="role == 1">设置管理员</span>
<el-button type="info" @click="goManger" v-if="role == 1" class="manger-btn">设置管理员</el-button>
<el-button @click="download" class="down-btn">导出人员明细</el-button>
</el-col>
</el-row>
<div class="member-main">
......@@ -43,7 +44,7 @@ import * as commonUtil from "@/utils/utils";
import org from '@/components/yqrange/member-management/org'
import renyaun from '@/components/yqrange/member-management/renyuan'
import region from '@/components/yqrange/member-management/region'
import { getCircleRole, getTotalNumber } from '@/utils/yqrange/rangeApi'
import { getCircleRole, getTotalNumber, downLoadMember } from '@/utils/yqrange/rangeApi'
export default {
props: {
circleId: {
......@@ -164,7 +165,34 @@ export default {
// },
refreshRenYuan() {
this.$refs.renyaun.initRange()
},
// 下载成员明细
download() {
let param = {
circleId: this.circleId,
countryFlag:true,
name:"",
orgName:"",
pageNo:1,
pageSize:10,
source:0
}
downLoadMember(param).then(res => {
if (res.data) {
this.downloadFile(res.data.attachments.base64,res.data.attachments.name);
}
}).catch(err => {
console.log('网络出现点儿问题,稍后重试')
})
},
/* 文件下载*/
downloadFile(base64,name) {
let a = document.createElement('a');
let href = 'data:application/xls;base64,' + base64;
a.setAttribute('href',href);
a.setAttribute('download',name);
a.click();
},
}
}
</script>
......@@ -183,6 +211,9 @@ export default {
.mm-r {
text-align: right;
padding-right: 20px;
.manger-btn{
margin-bottom: 20px;
}
}
.inlin {
margin-left: 10px;
......
......@@ -40,6 +40,7 @@
</el-col>
</el-row>
<el-table class="rim" ref="multipleOrganization" :data="peoplesDtoList" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="id" label="id" 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="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
......@@ -48,6 +49,8 @@
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<el-table-column prop="sourceName" label="来源" align="center"></el-table-column>
<el-table-column prop="joinTimeStr" label="加入时间" min-width="100" align="center">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
......@@ -154,13 +157,8 @@
</span>
</div>
</div>
</el-dialog>
<el-dialog
title="批量导入"
:visible.sync="dialogImportVisible"
......
export const kolCol = [
{
label: '顺序',
prop: "seq"
},
{
label: '姓名',
prop: "name"
},
{
label: '地区',
prop: "district"
},
{
label: '所在医院',
prop: "hospital"
},
{
label: '科室',
prop: "department"
},
{
label: '职称',
prop: "title"
},
{
label: '所属团队',
prop: "team"
},
{
label: '发布状态',
prop: "status"
},
{
label: '操作',
prop: "operate"
}
]
......@@ -6,6 +6,8 @@ import store from './store/'
const mixins = require('@/utils/mixins');
import FastClick from 'fastclick'
import vueFilters from '@/utils/filter'
import draggable from 'vuedraggable'
Vue.component('draggable', draggable);
// import '@/utils/toBlob';
// 引入ElementUI
......
......@@ -473,7 +473,7 @@ const vueFilter = {
return value
}
},
// 云鹊小圈 内容发布权限
// 云鹊专区 内容发布权限
dynamicFlagStatus: (value) => {
if (value == 1) {
return '所有人可发布'
......
......@@ -171,4 +171,3 @@ export const getprovinces = (idType) => {
})
};
import fetch from '../fetch';
import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const getCircleInfoReq = (id) => {
......@@ -51,7 +51,6 @@ export const getMemberSelectOrgOptionReq = (data) => {
export const getOrgProvincesReq = (idType,circleId,type=1) => {
return fetch({
headers,
......@@ -79,3 +78,42 @@ export const getTotalNumber = (data) => {
description: '查询已选机构、人员',
})
};
export const getExpertList = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/kol/admin/circleId/${circleId}/list`),
method: 'get',
description: '获取kol配置、专家列表',
})
};
export const getExperNametList = (circleId, name) => {
return fetch({
headers,
url: getBaseUrl(`circle/kol/admin/circleId/${circleId}/queryName/${name}`),
method: 'get',
description: '添加专家关联-获取专家下拉',
})
};
export const saveKolConfig = (data) => {
return fetch({
headers,
url: getBaseUrl(`circle/kol/admin/save`),
method: 'post',
data: data,
description: 'KOL管理tab保存',
})
};
export const downLoadMember = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/export/people/related/search/export`),
method: 'post',
data: params,
description: '下载人员名单'
})
};
......@@ -325,3 +325,25 @@ export const doctorsByIdOrMobile = (params) => {
description: '批量导入人员',
})
};
// https://dev-sc.yunqueyi.com/contents/admin/template/queryTemplate?id=&title=&publishFlag=&createdTime=&pageNo=1&pageSize=15
export const getActivityList = (params) => {
return fetch({
headers,
url: getBaseUrl(`contents/admin/template/queryTemplate?id=${params.id}&title=${params.title}&publishFlag=${params.publishFlag}&createdTime=${params.createdTime}&pageNo=${params.pageNo}&pageSize=${params.pageSize}`),
method: 'get',
data: params,
description: '活动列表',
})
};
export const delActivity = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/v1/app/delete?circleId=${params.circleId}&id=${params.id}`),
method: 'get',
data: params,
description: '活动列表',
})
};
......@@ -484,7 +484,7 @@
this.disCompleteDialog = false;
this.resetForm();//更新列表
}else {
this.$message.error('操作失败,请重试')
this.$message.error(res.message);
}
});
},
......
......@@ -373,9 +373,9 @@ export default {
});
},
setCircleSize() {
console.log("设置云鹊小圈");
console.log("设置云鹊专区");
const yqRange = {
title: "云鹊小圈",
title: "云鹊专区",
icon: "el-icon-setting",
index: "yq-range",
};
......@@ -442,7 +442,7 @@ export default {
};
const yqRange = {
title: "云鹊小圈",
title: "云鹊专区",
icon: "el-icon-setting",
index: "yq-range",
};
......@@ -534,7 +534,7 @@ export default {
};
const yqRange = {
title: "云鹊小圈",
title: "云鹊专区",
icon: "el-icon-setting",
index: "yq-range",
};
......
......@@ -177,7 +177,7 @@
placeholder="请选择疾病标签"
filterable
clearable
style="margin-left:20px;height: 32px;line-height: 32px;width: 450px;"
style="margin-left:20px;width: 450px;"
>
<el-option
v-for="item in diseaseList"
......@@ -199,7 +199,7 @@
placeholder="请选择科室标签"
filterable
clearable
style="margin-left:20px;height: 32px;line-height: 32px;width: 450px;"
style="margin-left:20px;width: 450px;"
>
<el-option
v-for="item in deptList"
......@@ -220,7 +220,7 @@
placeholder="请选择学科标签"
filterable
clearable
style="margin-left:20px;height: 32px;line-height: 32px;width: 450px;"
style="margin-left:20px;width: 450px;"
>
<el-option
v-for="item in subjectList"
......@@ -939,9 +939,6 @@
height: 32px;
line-height: 32px;
}
/*.el-select__tags {*/
/*margin-top: 15px;*/
/*}*/
.required-label .el-form-item__label::before {
content: '*';
color: #F56C6C;
......
......@@ -85,7 +85,7 @@ export default {
},
data() {
return {
curmbFirst: "云鹊小圈",
curmbFirst: "云鹊专区",
curmbThird: "设置管理员",
jumPathThird: '/yq-range',
circleId: "",
......@@ -153,7 +153,7 @@ export default {
vm = this;
this.circleId = this.$route.query.circleId;
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.curmbSecond = "专区管理-" + this.circleName;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.circleName + "&activeName=first";
vm.circleId = vm.getUrlSearch(window.location.href, "circleId");
vm.formInline.blackStatus = 0 ;
......
......@@ -93,7 +93,7 @@ export default {
return {
circleId: 0,
curmbFirst: "云鹊小圈",
curmbFirst: "云鹊专区",
curmbSecond: "",
curmbThird: "黑名单",
jumPathThird: "/yq-range",
......@@ -116,7 +116,7 @@ export default {
this.circleId = this.$route.query.circleId;
this.idType = localStorage.getItem("storageIdType");
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.curmbSecond = "专区管理-" + this.circleName;
this.jumPathFouth =
"/range-manage?id=" +
this.circleId +
......
......@@ -619,7 +619,7 @@
rtcId: '',
circleId: '',
circleName: "",
curmbFirst: '云鹊小圈',
curmbFirst: '云鹊专区',
// curmbSecond: '直播管理',
curmbThird: '新建直播',// /live-manage?id=
jumPathThird: '/yq-range',
......@@ -836,7 +836,7 @@
// this.idType = 1; // TODO
this.circleId = this.$route.query.circleId;
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.curmbSecond = "专区管理-" + this.circleName;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.circleName + "&activeName=third";
this.formData.circleId = this.circleId;
console.log("create-live: jumPathFouth: " + this.jumPathFouth);
......
......@@ -63,7 +63,7 @@
return {
id: null,
enterType: 1,//1.creat 2.edit
curmbFirst: '云鹊小圈',
curmbFirst: '云鹊专区',
curmbSecond: '新建小圈',
active: 0,
//页面展示位置
......
......@@ -300,7 +300,7 @@ export default {
data() {
return {
rtcId: null,
curmbFirst: "云鹊小圈",
curmbFirst: "云鹊专区",
curmbSecond: "直播管理",
dialogStatisticsVisible: false,
dialogLivelinkVisible: false,
......
......@@ -27,6 +27,9 @@
<el-tab-pane label="排行榜管理" name="six" v-if="idType == 1">
<gp-ranking></gp-ranking>
</el-tab-pane>
<el-tab-pane label="KOL管理" name="seven">
<kol-manage :circleId="circleId"/>
</el-tab-pane>
</el-tabs>
</div>
<div v-if="active == 4">
......@@ -47,6 +50,7 @@ import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting
import Mebman from "../../components/yqrange/mebman";
import AdsManage from "../../components/yqrange/ads-manage";
import GpRanking from "../../components/yqrange/gp-ranking";
import KolManage from '../../components/yqrange/kol-manage';
export default {
components: {
GpRanking,
......@@ -54,12 +58,14 @@ export default {
Mebman,
RangeSetting,
LiveManage,
BreadCrumb
BreadCrumb,
KolManage
},
data(){
return{
curmbFirst: '云鹊小圈',
curmbSecond: '圈子管理',
curmbFirst: '云鹊专区',
curmbSecond: '专区管理',
curmbThird: '',
jumPathFouth: "",
jumPathThird: '/yq-range',
......@@ -93,7 +99,7 @@ export default {
this.name = name;
this.activeName = activeName;
this.roleType = roleType;
this.curmbSecond = "圈子管理-" + name;
this.curmbSecond = "专区管理-" + name;
this.curmbThird = this.curmbSecond;
this.active = 0;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.name;
......
......@@ -2,7 +2,7 @@
<div class="yqrange-index-wrapper">
<!--<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>-->
<div class="yqrange-index-content" id="screenSet">
<!--<div class="header-title">云鹊小圈</div>-->
<!--<div class="header-title">云鹊专区</div>-->
<!-- <el-form ref="settingForm" :model="settingForm"
label-width="150px"
......@@ -25,7 +25,7 @@
<el-table :data="settingForm.settingData" class="customer-table" style="margin-left:70px;"
:header-cell-style="{background:'#ffffff'}">
<el-table-column label="" prop="appType" width="120"></el-table-column>
<el-table-column label="" prop="appType" width="150"></el-table-column>
<el-table-column label="" width="180">
<template slot-scope="scope">
<el-radio-group size="small" v-model="scope.row.showOff">
......@@ -39,13 +39,39 @@
<el-input v-model="scope.row.appName" style="width:120px;" :maxlength="6" size="small" placeholder="重命名"/>
</template>
</el-table-column>
<el-table-column label="序号" width="200">
<el-table-column label="序号" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.seqNo" style="width:60px;" size="small" @blur="BlurText($event)" @placeholder="序号"/>
</template>
</el-table-column>
<el-table-column label="选择积木页(仅支持图片搭建的积木页和跳转)" width="320">
<template slot-scope="scope">
<el-select filterable v-if="scope.row.appTag == 10" v-model="scope.row.appUrl" placeholder="请选择积木页" style="position: relative;width:75%;">
<el-option
style="position: relative;"
v-for="item2 in settingForm.activityList"
:key="item2.id"
:label="item2.title"
:value="item2.id">
</el-option>
</el-select>
<img v-if="scope.row.appTag == 10"
@click="add(scope.$index)"
class="edit-tplbtn"
src="../../assets/image/plus.png"
/>
<img v-if="scope.row.appTag == 10 && count > 0"
@click="del(scope.$index, scope.row)"
class="edit-tplbtn"
src="../../assets/image/trash.png"
/>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 60px;margin-left: 150px;">
<el-button type="primary" @click="checkSubmitData()" center>保存</el-button>
<!--<el-button @click="cancle()">取 消</el-button>-->
......@@ -56,9 +82,10 @@
</template>
<script>
let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting} from "../../utils/yqrange/yqrangeApi";
import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting, getActivityList, delActivity} from "../../utils/yqrange/yqrangeApi";
import { isEmptyUtils } from "../../utils/index";
export default {
......@@ -67,7 +94,7 @@ export default {
},
data(){
return{
curmbFirst: '云鹊小圈',
curmbFirst: '云鹊专区',
showAllFlag: false,
showNewFlag: false,
searchForm: {
......@@ -84,13 +111,18 @@ export default {
dialogSettingVisible: false,
settingForm:{
circleId: null,
settingData: []
}
settingData: [],
activityList:[]
},
tempList: [],
count: 0,
}
},
created() {
vm = this;
this.circleId = this.$route.query.id;
this.setting();
this.initActivityList();
},
methods: {
......@@ -98,13 +130,42 @@ export default {
setting(){
let params = {
circleId: this.circleId
// circleId: 22
// circleId: 194
}
getCircleSettingList(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.settingForm.settingData = res.data;
if(this.settingForm.settingData != null
&& this.settingForm.settingData.length > 0){
for (let i = 0; i<this.settingForm.settingData.length; i++){
// 自定义积木
if(this.settingForm.settingData[i].appTag == 10){
this.count ++;
if(this.settingForm.settingData[i].appUrl != ""){
this.settingForm.settingData[i].appUrl = parseInt(this.settingForm.settingData[i].appUrl);
}
}
}
this.count --;
let tempList = this.settingForm.settingData.filter(function (item) {
return item.appTag == 10;
});
if(tempList.length == 0){
let row = {
appName: "",
appTag: 10,
appType: "自定义H5积木页",
appUrl: "",
ecoAppParams: [],
id: "",
seqNo: this.settingForm.settingData.length + 1,
showOff: 0,
}
this.settingForm.settingData.push(row);
}
}
} else {
this.settingForm.settingData = [];
}
......@@ -116,7 +177,7 @@ export default {
checkSubmitData() {
for(let i=0; i<this.settingForm.settingData.length; i++) {
if (isEmptyUtils(this.settingForm.settingData[i].appName)) {
if (this.settingForm.settingData[i].showOff == 1 && isEmptyUtils(this.settingForm.settingData[i].appName)) {
this.$message.error("重命名输入框中的值不可为空,请检查");
return;
}
......@@ -124,12 +185,20 @@ export default {
this.$message.error("序号不可为空,请检查");
return;
}
if (this.settingForm.settingData[i].showOff == 1
&& this.settingForm.settingData[i].appTag == 10
&& isEmptyUtils(this.settingForm.settingData[i].appUrl)) {
this.$message.error("请选择积木页");
return;
}
const r = /^\+?[1-9][0-9]*$/; // 正整数
// 如果判断不符合正则,则不是正整数不能提交
if (!r.test(this.settingForm.settingData[i].seqNo)) {
this.$message.error("序号应为正整数,请检查");
return;
}
if (this.settingForm.settingData[i].seqNo < 1 || this.settingForm.settingData[i].seqNo > 10) {
this.$message.error('请输入 1~10 的正整数');
return;
}
if (this.settingForm.settingData[i].seqNo > this.settingForm.settingData.length) {
......@@ -182,7 +251,108 @@ export default {
this.$message.warning('请输入 1~10 的正整数')
e.target.value = ''
}
},
// 应用配置
initActivityList(){
let params = {
// circleId: this.circleId
id: "",
title: "",
publishFlag: 5,
createdTime: "",
pageNo: 1,
pageSize: 20000
}
getActivityList(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.settingForm.activityList = res.data.templateList;
} else {
this.settingForm.activityList = [];
}
}).catch((error) => {
this.$message.error("请重试");
})
},
indexMethod(index){
this.index = index;
},
add(index){
if(this.settingForm.settingData != null && this.settingForm.settingData.length > 0 ){
this.tempList = this.settingForm.settingData.filter(function (item) {
return item.appTag == 10;
});
if(this.tempList.length > 0){
this.row = {
appName: "",
appTag: 10,
appType: this.tempList[0].appType,
appUrl: "",
ecoAppParams: [],
id: "",
seqNo: index+2,
showOff: 0,
}
this.count ++;
this.settingForm.settingData.push(this.row);
}
}
},
del(index, row){
let params = {
circleId: this.circleId,
id: row.id
}
vm.$confirm(
`确定删除自定义tab“${row.appName}”吗?<br>(<span style='color:red;font-size:12px;'>删除后该tab将不再显示</span>)`,
"提示",
{
confirmButtonText: "删除",
cancelButtonText: "取消",
dangerouslyUseHTMLString: true,
customClass: "cc-class-box",
type: "warning",
})
.then(() => {
if (params.id == "") {
vm.$message({
type: "success",
message: "删除成功"
});
vm.count--;
vm.settingForm.settingData.splice(index, 1);
} else {
// confirm
delActivity(params).then(res => {
if (res.code == "000000") {
vm.$message({
type: "success",
message: "删除成功"
});
vm.count--;
vm.settingForm.settingData.splice(index, 1);
} else {
vm.$message({
type: "warning",
message: res.message
});
}
});
}
})
.catch(() => {});
},
activityColor({row, column, rowIndex, columnIndex}){
return "activity-color";
}
},
}
</script>
......@@ -219,6 +389,11 @@ export default {
}
}
}
.edit-tplbtn {
// display: inline-block;
vertical-align: middle;
}
}
/*.range-make-box{*/
/*.el-message-box__btns{*/
......@@ -257,4 +432,10 @@ export default {
.el-table--border th.gutter:last-of-type {
width: 0;
}
.el-select-dropdown {
width: 300px;
}
.el-table .activity-color {
color: #EC808D;
}
</style>
......@@ -120,7 +120,7 @@ export default {
vm = this;
return {
curmbFirst: "云鹊小圈",
curmbFirst: "云鹊专区",
curmbSecond: "成员管理",
searchForm: {
searchName: "",
......
......@@ -3,7 +3,7 @@
<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>
<div class="yqrange-index-content screenSet">
<el-tabs v-model="activeName" @tab-click="tabChangeHandler">
<el-tab-pane label="云鹊小圈" name="first">
<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">
......@@ -163,7 +163,7 @@ export default {
},
data(){
return{
curmbFirst: '云鹊小圈',
curmbFirst: '云鹊专区',
activeName: 'first',
showAllFlag: false,
showNewFlag: false,
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册