Commit 39169553 authored by qzhxx's avatar qzhxx

合并

parents 700e9234 9d4f8f6c
......@@ -12,7 +12,7 @@ module.exports = {
assetsPublicPath: '/',
proxyTable: {
'/mall': {
target: "http://192.168.110.67/mall/",
target: "http://192.168.110.67/mall",
changeOrigin: true,
pathRewrite: {
'^/mall': '/' // 重写接口
......
This diff is collapsed.
......@@ -88,7 +88,8 @@ const httpServer = (opts,data,file,timeout)=>{
if(opts.authType && opts.authType!=""){
// Authorization
if(opts.authType==="back"){
authToken=localStorage.getItem('backToken');
//authToken=localStorage.getItem('backToken');
authToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInVzZXJfaWQiOiIxIiwiaXNzIjoiSUFUQSIsImV4cCI6MTYxNjU5MDE3NiwiaWF0IjoxNjE2NTc1Nzc2fQ.BT7bv2fmz_mS10nhoeW8_z17MSRY0MQNta-0ozhUMkuqFC2bed88yc2xoolyMEN7DYSVUOCFvDJrwmi8NwgDgQ"
}else if(opts.authType==="front"){
authToken = localStorage.getItem("token") || MyLocalStorage.Cache.get('token');
}
......
......@@ -23,7 +23,7 @@ export const menuList = [
subtitle:'学习内容及互动管理',
subMenu:[
{label:'学习内容管理', imgUrl:'',url:'/learnContent'},
{label:'互动管理', imgUrl:'',url:''}
{label:'互动管理', imgUrl:'',url:'/interactive'}
]
},
]
......@@ -67,9 +67,11 @@ export const menuList = [
{
subtitle:'机顶盒信息及运维管理',
subMenu:[
{label:'机顶盒信息管理', imgUrl:''},
{label:'机顶盒运维信息管理', imgUrl:''},
{label:'机顶盒运维账号管理', imgUrl:''}
{label:'机顶盒信息管理', imgUrl:'',url:'/STBbase'},
{label:'机顶盒运维信息管理', imgUrl:'',url:'/STBoperation'},
{label:'机顶盒运维账号管理', imgUrl:''},
{label:'app版本管理', imgUrl:'',url:'/appversion'},
{label:'app界面自定义', imgUrl:'',url:'/pagecustom'},
]
}
......@@ -83,8 +85,6 @@ export const menuList = [
subMenu:[
{label:'机构管理', imgUrl:'',url:'/organ'},
{label:'日志管理', imgUrl:'',url:'/log'},
{label:'app版本管理', imgUrl:'',url:'/edition'},
{label:'app界面自定义', imgUrl:''},
{label:'修改密码', imgUrl:'',url:'/changePwd'},
]
},
......
<template>
<el-dialog
class="custom-dialog"
custom-class="party-dialog"
title="上传新版安装包"
width="540px"
:visible.sync="formVisible"
:before-close="close"
>
<div class="dialog-content">
<el-form
:model="formItem"
class="party-form"
ref="formItem"
label-width="125px"
label-position="right"
:rules="rules"
>
<el-form-item label="版本号1:" prop="version">
<el-input size="small" v-model="formItem.version" clearable placeholder="请输入版本号"></el-input>
</el-form-item>
<el-form-item label="版本信息:" prop="versionContent">
<el-input type="textarea" size="small" v-model="formItem.versionContent"></el-input>
</el-form-item>
<el-form-item label="更新内容:" prop="updateContent">
<el-input type="textarea" size="small" v-model="formItem.updateContent"></el-input>
</el-form-item>
<el-upload
class="text-center"
drag
action="#"
:auto-upload="false"
:on-change="onChange"
:file-list="fileList">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将安装包拖到此处,或<em>点击上传安装包</em></div>
<div class="el-upload__tip" slot="tip">只能上传zip文件,且不超过500kb</div>
</el-upload>
</el-form>
<div slot="footer" class="dialog-footer btn-group">
<el-button size="mini" type="primary" @click="submitForm('formItem')">确定</el-button>
<el-button size="mini" @click="close">取 消</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
formVisible: false,
formItem: {},
fileList:[],
rules: {
version: [
{ required: true, message: "请输入版本号", trigger: "blur" }
],
versionContent: [{ required: true, message: "请输入版本信息", trigger: "blur" }],
updateContent: [{ required: true, message: "请输入更新内容", trigger: "blur" }]
}
};
},
methods: {
backFn(item) {
this.formVisible = true;
this.$nextTick(()=>{
this.$refs.formItem.clearValidate();
})
this.formItem = {};
},
// 关闭
close() {
this.formVisible = false;
for (let key in this.formItem) {
this.formItem[key] = null;
}
this.$refs["formItem"].resetFields();
},
// 上传数据操作
onChange(file, fileList) {
this.fileList = fileList
},
// 保存编辑信息
submitForm() {
let _this = this;
_this.$refs.formItem.validate(valid => {
if (valid) {
if (!this.fileList.length) {
this.$message.info('请先选取文件!')
return false
}
const fileType = this.fileList.every(item => {
console.log(item.raw.type)
return item.raw.type === 'application/zip'
})
if (!fileType) {
this.$message.error('支持扩展名:.zip格式!')
return false
}
const param = new FormData()
this.fileList.forEach(file => {
param.append('file', file.raw) // 此处一定是append file.raw 上传文件只需维护fileList file.raw.name要加上
param.append('fileName', file.name)
param.append('version', this.formItem.version)
param.append('versionContent', this.formItem.versionContent)
param.append('updateContent', this.formItem.updateContent)
})
_this.$emit("refreshFn");
_this.formVisible = false;
// _this.$https(
// {
// url: "menu/edit",
// method: "put",
// authType: this.backToken
// },
// _this.$qs.stringify(param)
// ).then(res => {
// if (res.data.status == 200 || res.data.status == 201) {
// _this.$message({
// type: "success",
// message: res.data.message
// });
// _this.formVisible = false;
// _this.$refs["formItem"].resetFields();
// } else {
// _this.$message({
// type: "error",
// message: res.data.message
// });
// }
// },
// error => {
// _this.$message({
// type: "error",
// message: error
// });
// }
// );
}
});
},
}
};
</script>
<style lang="less">
@import "../../../../style/dialog.less";
.text-center {
text-align: center;
}
.custom-dialog {
.party-form .el-input {
width: 100%;
}
}
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="详情"
width="540px"
:visible.sync="formVisible"
:before-close="close"
>
<div class="dialog-content">
<el-form
:model="formItem"
class="party-form"
ref="formItem"
label-width="180px"
label-position="right"
:rules="rules"
>
<el-form-item label="上传时间:" prop="uploadTime">
<el-input size="small" v-model="formItem.uploadTime" disabled></el-input>
</el-form-item>
<el-form-item label="操作者:" prop="name">
<el-input size="small" v-model="formItem.name" disabled></el-input>
</el-form-item>
<el-form-item label="是否为当前使用版本:" prop="isNew">
<el-input size="small" v-model="formItem.isNew" disabled></el-input>
</el-form-item>
<el-form-item label="版本信息:" prop="version">
<el-input type="textarea" size="small" v-model="formItem.version" disabled></el-input>
</el-form-item>
<el-form-item label="更新内容:" prop="newContent">
<el-input type="textarea" size="small" v-model="formItem.newContent" disabled></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer btn-group">
<el-button size="mini" type="primary" @click="close()">确定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
formVisible: false,
formItem: {},
};
},
methods: {
backFn(item) {
this.formVisible = true;
this.formItem = item;
},
// 关闭
close() {
this.formVisible = false;
},
}
};
</script>
<style lang="less">
@import "../../../../style/dialog.less";
</style>
\ No newline at end of file
import addDialog from './addDialog.vue'
import detailDialog from './detailDialog.vue'
export {
addDialog,
detailDialog
}
<template>
<div class="edition-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-date-picker
v-model="form.dateRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="onSearch">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可查看系统使用过的所有app版本信息,可设置其中一个版本为当前使用版本。可产看安装包详情信息。可上传新的安装包,“*”为必填项。</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary" @click="addBox">上传安装包</el-button>
</div>
<div class="party-table">
<el-table border style="width: 100%;height:100%" height="100%" :data="tableData">
<el-table-column type="index" width="120" label="序号"></el-table-column>
<el-table-column label="app版本号" prop="version"></el-table-column>
<el-table-column label="是否为最新版本" prop="isNew"></el-table-column>
<el-table-column label="上传时间" prop="uploadTime"></el-table-column>
<el-table-column label="操作者" prop="name"></el-table-column>
<el-table-column label="操作" header-align="center" align="center">
<template slot-scope="scope" width="220">
<el-button-group>
<el-button
title="详情"
size="mini"
type="text"
@click="handleDetail(scope.row)"
>详情&nbsp;&nbsp;</el-button>
<el-button
title="激活"
type="text"
size="mini"
@click="ableBtn(scope.row)"
>启用&nbsp;&nbsp;</el-button>
</el-button-group>
</template>
</el-table-column>
</el-table>
</div>
<div class="partyt-pagination">
<el-pagination
background
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-size="page.pageSize"
layout="prev, pager, next, jumper"
:total="page.total"
></el-pagination>
</div>
</div>
<add-dialog ref="addDialog" @refreshFn="onSearch"/>
<detail-dialog ref="detailDialog"/>
</div>
</template>
<script>
import { partyPagination, partyTable } from "@/components/index";
import { addDialog , detailDialog } from "./components/index";
export default {
data() {
return {
page: { currentPage: 1, pageSize: 10, total: 4 },
form: {
dateRange: []
},
tableData: [
// 序号 app版本号 是否为最新版本 上传时间 操作者 操作
{
uploadTime: "2016-05-02",
name: "王小虎",
version: "V1.0.0",
isNew: "是"
},
{
uploadTime: "2016-05-02",
name: "王小虎",
version: "V1.0.0",
isNew: "是"
}
]
};
},
components: { partyPagination ,addDialog ,detailDialog},
mounted() {},
methods: {
// 查询
onSearch() {
this.page.currentPage = 1
this.getTableData();
},
// 获得数据接口
getTableData() {
let vm = this;
let param = {
_index: this.page.currentPage,
_size: this.page.pageSize,
startTime: this.form.dateRange.length?this.form.dateRange[0]:'' ,
endTime: this.form.dateRange.length?this.form.dateRange[1]:'' ,
};
vm.$https(
{
url: "interaction/getList",
method: "post",
authType: this.backToken
},
vm.$qs.stringify(param)
)
.then(res => {
if(res.data.resultCode==='200'){
let data = res.data.data
vm.page.total = data.total
vm.tableData = data.records
}else{
this.$message({type:'error',message:res.data.message})
}
})
.catch(function(err) {
console.log(err);
});
},
// 新增弹框打开
addBox() {
this.$refs.addDialog.backFn()
},
// 详情弹框打开
handleDetail(item) {
this.$refs.detailDialog.backFn(item)
},
// 启用
ableBtn(row, str) {
const _this = this;
this.$confirm("确定要设置为最新版本?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
center: true
})
.then(() => {
// 请求接口
this.$message.success("操作成功")
})
.catch(() => {
this.$message("已取消")
});
},
handleReset() {
this.form = {};
},
// 分页
handleCurrentChange(val) {
this.page.currentPage = val
this.getTableData()
}
}
};
</script>
<style lang="less">
@import "../../../style/dialog.less";
@import "../../../style/table.less";
@import "../../../style/pagination.less";
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
:title="title"
width="540px"
:visible.sync="formVisible"
:before-close="close"
>
<div class="dialog-content">
<el-form
:model="formItem"
class="party-form"
ref="formItem"
label-width="125px"
label-position="right"
:rules="rules"
>
<el-form-item label="所属单位:" prop="unit">
<el-select
size="small"
v-model="formItem.unit"
clearable
placeholder="请选择所属单位"
@change="selectItem"
>
<el-option
v-for="item in unitOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="机构地理位置:" prop="address">
<el-input size="small" v-model="formItem.address" disabled></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer btn-group">
<el-button size="mini" type="primary" @click="submitForm('formItem')">确定</el-button>
<el-button size="mini" @click="close">取 消</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
title:'',
formVisible: false,
formItem: {},
unitOptions: [
{
value: "1",
label: "黄金糕"
},
{
value: "2",
label: "双皮奶"
},
{
value: "3",
label: "蚵仔煎"
},
{
value: "4",
label: "龙须面"
},
{
value: "5",
label: "北京烤鸭"
}
],
rules: {
unit: [{ required: true, message: "请选择所属单位", trigger: "change" }]
}
};
},
methods: {
backFn(item) {
this.formVisible = true;
this.$nextTick(()=>{
this.$refs.formItem.clearValidate();
})
if (item) {
// 编辑
this.formItem = item;
this.title="编辑"
} else {
// 新增
this.title="新增"
this.formItem = {};
}
},
// 关闭
close() {
this.formVisible = false;
for (let key in this.formItem) {
this.formItem[key] = null;
}
this.$refs["formItem"].resetFields();
},
// 联动出地址
selectItem(val) {
this.formItem.address = val;
},
// 保存编辑信息
submitForm() {
let _this = this;
_this.$refs.formItem.validate(valid => {
if (valid) {
let searchObj = {};
for (let key in _this.formItem) {
if (this.formItem[key]) {
searchObj[key] = _this.formItem[key];
}
}
_this.$emit("refreshFn");
_this.formVisible = false;
// _this.$https(
// {
// url: "menu/edit",
// method: "put",
// authType: this.backToken
// },
// _this.$qs.stringify(searchObj)
// ).then(res => {
// if (res.data.status == 200 || res.data.status == 201) {
// _this.$message({
// type: "success",
// message: res.data.message
// });
// _this.formVisible = false;
// _this.$refs["formItem"].resetFields();
// } else {
// _this.$message({
// type: "error",
// message: res.data.message
// });
// }
// },
// error => {
// _this.$message({
// type: "error",
// message: error
// });
// }
// );
}
});
}
}
};
</script>
<style lang="less">
@import "../../../../style/dialog.less";
</style>
\ No newline at end of file
<template>
<div class="STBbase-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-select v-model="form.unit" placeholder="请选择所属单位">
<el-option
v-for="item in unitOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-cascader
v-model="form.area"
:options="areaOptions"
:props="defaultProps"
:show-all-levels="false"
></el-cascader>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="onSearch">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按照账号状态及所属单位进行信息筛选。可新增机顶盒账号,“*”为必填项。请先创建单位管理员账号,否则机顶盒无法激活</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary" @click="addBox">新建机顶盒账号</el-button>
</div>
<div class="party-table">
<el-table border style="width: 100%;height:100%" height="100%" :data="tableData">
<el-table-column type="index" width="120" label="序号"></el-table-column>
<el-table-column label="MAC地址" prop="macUrl"></el-table-column>
<el-table-column label="所属单位" prop="unit"></el-table-column>
</el-table>
</div>
<party-pagination />
</div>
<custom-dialog ref="formItem" @refreshFn="onSearch" />
</div>
</template>
<script>
import { partyPagination } from "@/components/index";
import customDialog from "./components/dialog.vue";
import { getAreas } from "@/config/area.js";
export default {
components: { partyPagination, customDialog },
data() {
return {
page: { currentPage: 1, pageSize: 10, total: 0 },
areaOptions: [],
defaultProps: {
label: "name",
value: "id",
checkStrictly: true
},
unitOptions: [
{
value: "选项1",
label: "黄金糕"
},
{
value: "选项2",
label: "双皮奶"
},
{
value: "选项3",
label: "蚵仔煎"
},
{
value: "选项4",
label: "龙须面"
},
{
value: "选项5",
label: "北京烤鸭"
}
],
form: {
unit: "",
area: []
},
tableData: [
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
}
]
};
},
mounted() {
this.getAreas();
// this.onSearch();
},
methods: {
getAreas() {
getAreas().then(res => {
this.areaOptions = res;
});
},
// 查询
onSearch() {
this.page.currentPage = 1;
this.getTableData();
},
// 获得数据接口
getTableData() {
let vm = this;
let param = {
_index: this.page.currentPage,
_size: this.page.pageSize,
orgId: this.selectAreaId
};
vm.$https(
{
url: "interaction/getList",
method: "post",
authType: this.backToken
},
vm.$qs.stringify(param)
)
.then(res => {
console.log(res.data.body);
let data = res.data.body;
vm.page.total = data.total;
// vm.tableData = data.records;
})
.catch(function(err) {
console.log(err);
});
},
// 新增弹框打开
addBox() {
console.log(this.$refs.formItem);
this.$refs.formItem.backFn();
},
handleReset() {
this.form = {};
},
// 分页
handleCurrentChange(val) {
this.page.currentPage = val;
this.getTableData();
}
}
};
</script>
<style lang="less">
@import "../../../style/dialog.less";
@import "../../../style/table.less";
@import "../../../style/pagination.less";
</style>
\ No newline at end of file
<template>
<div class="STBbase-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-select v-model="form.unit" placeholder="请选择所属单位">
<el-option
v-for="item in unitOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select v-model="form.state" placeholder="请选择机顶盒状态">
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-cascader
v-model="form.area"
:options="areaOptions"
:props="defaultProps"
:show-all-levels="false"
></el-cascader>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="onSearch">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按照机顶盒状态及所属单位进行信息筛选。可查看当前系统所有机顶盒运维状态信息。</span>
</div>
</div>
<div class="table-content">
<div class="party-table">
<el-table border style="width: 100%;height:100%" height="100%" :data="tableData">
<el-table-column type="index" width="120" label="序号"></el-table-column>
<el-table-column label="mac地址" prop="macUrl"></el-table-column>
<el-table-column label="所属单位" prop="unit"></el-table-column>
<el-table-column label="机顶盒状态" prop="state"></el-table-column>
</el-table>
</div>
<party-pagination />
</div>
</div>
</template>
<script>
import { partyPagination } from "@/components/index";
import { getAreas } from "@/config/area.js";
export default {
data() {
return {
page: { currentPage: 1, pageSize: 10, total: 0 },
areaOptions: [],
defaultProps: {
label: "name",
value: "id",
checkStrictly: true,
},
unitOptions: [
{
value: "选项1",
label: "黄金糕"
},
{
value: "选项2",
label: "双皮奶"
},
{
value: "选项3",
label: "蚵仔煎"
},
{
value: "选项4",
label: "龙须面"
},
{
value: "选项5",
label: "北京烤鸭"
}
],
stateOptions: [
{
value: "1",
label: "待激活"
},
{
value: "2",
label: "禁用"
},
{
value: "3",
label: "启用"
}
],
form: {
unit: "",
state: "",
area: []
},
tableData: [
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
},
{
unit: "中国博物馆",
state: "禁用",
name: "王小虎",
macUrl: "00:71:cc:d3:11"
}
]
};
},
components: { partyPagination },
mounted() {
this.getAreas();
// this.onSearch();
},
methods: {
getAreas() {
getAreas().then(res => {
this.areaOptions = res;
});
},
// 查询
onSearch() {
this.page.currentPage = 1;
this.getTableData();
},
// 获得数据接口
getTableData() {
let vm = this;
let param = {
_index: this.page.currentPage,
_size: this.page.pageSize,
orgId: this.selectAreaId
};
vm.$https(
{
url: "interaction/getList",
method: "post",
authType: this.backToken
},
vm.$qs.stringify(param)
)
.then(res => {
console.log(res.data.body);
let data = res.data.body;
vm.page.total = data.total;
// vm.tableData = data.records;
})
.catch(function(err) {
console.log(err);
});
},
handleReset() {
this.form = {};
},
// 分页
handleCurrentChange(val) {
this.page.currentPage = val;
this.getTableData();
}
}
};
</script>
<style lang="less">
@import "../../../style/table.less";
@import "../../../style/pagination.less";
</style>
\ No newline at end of file
<template>
<div class="custom-page height100">
<el-card class="height100">
<!-- <div class="page-title">app界面自定义</div> -->
<div class="page-content">
<div class="page-tip">
<span class="tip-title">页面说明:</span>
<span>可更换app目录界面及运行界面的背景图,可新增背景图,可预览背景图</span>
</div>
<div class="top-content">
<div class="content-title">
<div class="title">app目录界面设置</div>
<div class="btn-group">
<el-button type="default" @click="uploadPageImg">上传背景图</el-button>
</div>
</div>
<!-- <div class="swiper-content">
<swiper class="swiper" :options="swiperOption">
<swiper-slide v-for="(item, index) in list" :key="index">
<el-col :span="24" class="slider-group-item">{{index}}</el-col>
</swiper-slide>
<div slot="button-prev" class="swiper-button-prev">
<i class="el-icon-arrow-left" />
</div>
<div slot="button-next" class="swiper-button-next">
<i class="el-icon-arrow-right" />
</div>
</swiper>
</div> -->
</div>
<div class="down-content">
<div class="content-title">
<div class="title">app运行画面设置</div>
<div class="btn-group">
<el-button type="default" @click="uploadRunImg">上传背景图</el-button>
</div>
</div>
<el-carousel :autoplay="false" type="card" height="120px">
<el-carousel-item v-for="item in 6" :key="item">
<h3 class="medium">{{ item }}</h3>
</el-carousel-item>
</el-carousel>
</div>
</div>
<div class="btn-group footer-btn">
<el-button size="mini" @click="close">取 消</el-button>
<el-button size="mini" type="primary" @click="submitForm('editform')">确定</el-button>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
swiperOption: {
effect: "coverflow",
grabCursor: true,
centeredSlides: true,
slidesPerView: "auto",
coverflowEffect: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideShadows: true
},
pagination: {
el: ".swiper-pagination"
}
}
};
},
mounted() {},
methods: {
uploadPageImg() {},
uploadRunImg() {}
}
};
</script>
<style lang="less" scoped>
.custom-page {
position: relative;
.page-title {
font-size: 20px;
color: #333333;
text-align: center;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
.page-tip {
background: #f7f5f2;
border-radius: 8px;
padding: 16px 20px;
margin: 20px 0;
font-size: 14px;
color: #333333;
.tip-title {
font-weight: 700;
margin-right: 5px;
}
}
.page-content {
width: 800px;
margin: 0 auto;
.content-title {
display: flex;
justify-content: space-between;
padding: 20px;
.title {
position: relative;
font-size: 18px;
color: #333333;
&::before {
content: "";
position: absolute;
top: 6px;
left: -20px;
width: 4px;
height: 18px;
background: #000;
}
}
.el-button {
padding: 0 20px;
}
}
.el-carousel__item h3 {
color: #475669;
font-size: 14px;
opacity: 0.75;
line-height: 200px;
margin: 0;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n + 1) {
background-color: #d3dce6;
}
}
.footer-btn {
position: absolute;
bottom: 20px;
left: 0;
right: 0;
text-align: center;
padding-top: 20px;
border-top: 1px solid #eee;
.el-button {
padding: 0 20px;
}
}
/deep/.el-carousel__arrow {
background-color: #ac9374;
}
/deep/.el-carousel__item--card {
width: 30%;
}
}
</style>
\ No newline at end of file
<template>
<div class="party-table">
<el-table border :data="list" style="width: 100%;height:100%" height="100%">
<el-table-column
label="序号"
align="center"
width="100">
<template slot-scope="scope" >
<span>{{ (currentPage-1) * 10 * scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column
align="center"
v-for="(item,index) in feildList"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width">
<template slot-scope="scope" >
<div v-if="item.isEdit" class="table-btn-group">
<el-tooltip content="修改" placement="top">
<el-button circle @click="handleOperate(scope.row,'edit')">
<i class="icon-table icon-edit"></i>
</el-button>
</el-tooltip>
<el-tooltip content="重置密码" placement="top">
<el-button circle @click="handleOperate(scope.row,'reset')">
<i class="icon-table icon-reset"></i>
</el-button>
</el-tooltip>
<el-tooltip content="禁用" placement="top">
<el-button circle @click="handleOperate(scope.row,'disable')">
<i class="icon-table icon-disable"></i>
</el-button>
</el-tooltip>
<el-tooltip content="激活" placement="top">
<el-button circle @click="handleOperate(scope.row,'enable')">
<i class="icon-table icon-enable"></i>
</el-button>
</el-tooltip>
</div>
<div v-else>
<span>{{scope.row[item.prop]}}</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data(){
return {
}
},
props:{
currentPage:{
type:Number,
default:1
},
list:{
type:Array,
default:()=>{return []}
},
feildList:{
type:Array,
default:()=>{return []}
}
},
methods:{
handleOperate(row,type){
this.$emit(
"action",
{
row:row,
type:type
}
)
}
}
}
</script>
<style lang="less">
@import '../../../style/table.less';
</style>
\ No newline at end of file
<template>
<div class="party-table">
<el-table border :data="list" style="width: 100%;height:100%" height="100%">
<el-table-column
label="序号"
align="center"
width="100">
<template slot-scope="scope" >
<span>{{ (currentPage-1) * 10 * scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column
align="center"
v-for="(item,index) in feildList"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width">
<template slot-scope="scope" >
<div v-if="item.isEdit" class="table-btn-group">
<el-button round class="passed" @click="handleOperate(scope.row,'edit')">
通过
</el-button>
<el-button round class="rejected" @click="handleOperate(scope.row,'edit')">
驳回
</el-button>
</div>
<div v-else>
<span>{{scope.row[item.prop]}}</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data(){
return {
}
},
props:{
currentPage:{
type:Number,
default:1
},
list:{
type:Array,
default:()=>{return []}
},
feildList:{
type:Array,
default:()=>{return []}
}
},
methods:{
handleOperate(row,type){
this.$emit(
"action",
{
row:row,
type:type
}
)
}
}
}
</script>
<style lang="less">
@import '../../../style/table.less';
</style>
\ No newline at end of file
<template>
<!-- 账号禁用审核 -->
<div class="recheck-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入账号名称、提交人"
suffix-icon="el-icon-search"
clearable
>
</el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="form.status"
placeholder="请选择账号状态"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">展示所有禁用账号的申请,审核通过后,该账号状态为禁用,无法在系统中使用</span>
</div>
</div>
<div class="table-content">
<check-table
class="noAdd"
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
</div>
<user-dialog/>
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import checkTable from './components/checkTable'
import userDialog from './userDialog/index'
export default {
data(){
return{
form:{
user:'',
status:''
},
addForm:{
},
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
],
feildList:[
{prop:'username',label:'账号名称'},
{prop:'org',label:'所在机构'},
{prop:'endTime',label:'提交人'},
{prop:'endTime',label:'提交日期'},
{prop:'endTime',label:'审核状态'},
{prop:'',label:'操作',isEdit:true, width:240},
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
}
},
components:{ partyPagination, checkTable, userDialog},
mounted(){
},
methods:{
handleSubmit(){
},
handleReset(){
this.form.user = ''
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
handleAction(params){
console.log(params.type)
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<!-- 统计用户管理 -->
<div class="user-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入用户名"
suffix-icon="el-icon-search"
></el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="form.status"
placeholder="请选择账号状态"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按按照用户名及账号状态进行信息筛选。可新增统计账号,“*”为必填项。</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">新建统计账户</el-button>
</div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
</div>
<user-dialog/>
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
import userDialog from './userDialog/index'
export default {
data(){
return{
form:{
user:'',
status:''
},
addForm:{
},
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
],
feildList:[
{prop:'username',label:'平台用户名'},
{prop:'org',label:'所在机构'},
{prop:'endTime',label:'到期时间'},
{prop:'type',label:'账号类型'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
}
},
components:{ partyPagination, accountTable, userDialog},
mounted(){
},
methods:{
handleSubmit(){
},
handleReset(){
this.form.user = ''
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
handleAction(params){
console.log(params.type)
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<!-- 机顶盒运维账号 -->
<div class="stb-amin-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入运维人员姓名"
suffix-icon="el-icon-search"
clearable
>
</el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="form.status"
placeholder="请选择账号状态"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按按照用户名及账号状态进行信息筛选。可新增机顶盒运维账号,“*”为必填项。</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">新建运维账号</el-button>
</div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
</div>
<user-dialog/>
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
import userDialog from './userDialog/index'
export default {
data(){
return{
form:{
user:'',
status:''
},
addForm:{
},
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
],
feildList:[
{prop:'username',label:'运维人员姓名'},
{prop:'org',label:'运维区域'},
{prop:'endTime',label:'到期时间'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
}
},
components:{ partyPagination, accountTable, userDialog},
mounted(){
},
methods:{
handleSubmit(){
},
handleReset(){
this.form.user = ''
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
handleAction(params){
console.log(params.type)
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<!-- 平台用户单位管理员账号管理 -->
<div class="unit-admin-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入用户名"
placeholder="请输入管理人员姓名"
suffix-icon="el-icon-search"
></el-input>
clearable
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入用户名"
suffix-icon="el-icon-search"
></el-input>
<el-select
v-model="form.status"
placeholder="请选择单位名称"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-cascader :options="options" :show-all-levels="false"></el-cascader>
<el-cascader :options="areaOption" :show-all-levels="false"></el-cascader>
</el-form-item>
<el-form-item>
<div class="btn-group">
......@@ -28,69 +38,69 @@
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span>
<span class="page-tips">管理员姓名即管理员用户名。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">新建账</el-button>
<el-button type="primary">新建账</el-button>
</div>
<party-table :feildList="feildList" :list="list"></party-table>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
</div>
<user-dialog/>
</div>
</template>
<script>
import { partyPagination,partyTable } from '@/components/index'
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
import userDialog from './userDialog/index'
import area from '@/config/area'
export default {
data(){
return{
options: area,
form:{
user:''
user:'',
status:''
},
addForm:{
},
areaOption:[],
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
],
feildList:[
{prop:'date',label:'日期'},
{prop:'name',label:'姓名'},
{prop:'address',label:'地址'},
{prop:'username',label:'运维人员姓名'},
{prop:'org',label:'运维区域'},
{prop:'endTime',label:'到期时间'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
],
list: [
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
}
},
components:{ partyPagination, partyTable, userDialog},
components:{ partyPagination, accountTable, userDialog},
mounted(){
},
......@@ -108,6 +118,9 @@ export default {
done();
})
.catch(_ => {});
},
handleAction(params){
console.log(params.type)
}
}
}
......
<template>
<el-dialog
custom-class="party-dialog"
title="提示"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose">
<div class="dialog-content">
<el-form ref="form" :model="form" label-width="80px" label-position="top" class="party-form">
<el-form-item label="系统用户名" >
<el-input v-model="form.name" placeholder="请填写"></el-input>
</el-form-item>
<el-form-item label="所在机构" >
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="账号有效期" >
<el-radio-group v-model="form.radio">
<el-radio :label="3">永久有效</el-radio>
<el-radio :label="6">设置有效期</el-radio>
</el-radio-group>
<el-date-picker
class="mt16"
v-model="form.date"
type="date"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="账号状态" >
<el-radio-group v-model="form.radio">
<el-radio :label="3">激活</el-radio>
<el-radio :label="6">禁用</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="账号类型" >
<el-checkbox-group v-model="form.name">
<el-checkbox label="超级管理员" name="type"></el-checkbox>
<el-checkbox label="后台管理员" name="type"></el-checkbox>
<el-checkbox label="展板管理员" name="type"></el-checkbox>
<el-checkbox label="视频管理员" name="type"></el-checkbox>
<el-checkbox label="视频及展板审核" name="type"></el-checkbox>
<el-checkbox label="账号禁用审核员" name="type"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data(){
return {
dialogVisible:false,
form:{
name:'',
date:''
}
}
},
methods:{
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<!-- 平台用户管理 -->
<div class="user-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入用户名"
placeholder="请输入平台用户名"
suffix-icon="el-icon-search"
></el-input>
</el-form-item>
......@@ -25,14 +26,20 @@
<div class="btn-group">
<el-button type="primary">新建账户</el-button>
</div>
<party-table :feildList="feildList" :list="list"></party-table>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
</div>
<user-dialog/>
</div>
</template>
<script>
import { partyPagination,partyTable } from '@/components/index'
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
import userDialog from './userDialog/index'
export default {
data(){
......@@ -45,40 +52,30 @@ export default {
},
feildList:[
{prop:'date',label:'日期'},
{prop:'name',label:'姓名'},
{prop:'address',label:'地址'},
{prop:'username',label:'平台用户名'},
{prop:'org',label:'所在机构'},
{prop:'endTime',label:'到期时间'},
{prop:'type',label:'账号类型'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
],
list: [
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
}
},
components:{ partyPagination, partyTable, userDialog},
components:{ partyPagination, accountTable, userDialog},
mounted(){
},
......@@ -96,6 +93,9 @@ export default {
done();
})
.catch(_ => {});
},
handleAction(params){
console.log(params.type)
}
}
}
......
<template>
<div class="interactive-wrapper height100">
<el-row :gutter="16" style="margin-left:0;margin-right:0;height:calc(100% - 41px);">
<el-col :span="6" class="height100">
<el-card class="height100">
<div class="tree-title">组织机构</div>
<div class="tree-body">
<el-input suffix-icon="el-icon-search" placeholder="请输入组织结构名称" v-model="filterText"></el-input>
<el-tree
class="filter-tree"
:data="treeData"
:props="defaultProps"
default-expand-all
accordion
:filter-node-method="filterNode"
@node-click="handleNodeClick"
ref="tree"
/>
</div>
</el-card>
</el-col>
<el-col :span="18" class="height100" ref="rightBox">
<el-card class="height100">
<div class="content-title">
<div class="title">“北京市政府”展板互动信息汇总</div>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按照账号状态及所属单位进行信息筛选。可新增机顶盒账号,“*”为必填项。请先创建单位管理员账号,否则机顶盒无法激活</span>
</div>
</div>
<div class="scrollBox" :style="{height:height+'px'}">
<div class="content-item" v-for="(item,index) in tableData" :key="index">
<h5 class="title">{{item.name}}</h5>
<p>{{item.content}}</p>
<div class="img-box">
<img v-for="(j,idx) in item.images" :src="j" :key='idx' alt="">
<!-- <img src="@/assets/audio-icon.png" alt="">
<img src="@/assets/audio-icon.png" alt="">
<img src="@/assets/video-icon.png" alt="">
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic139.nipic.com%2Ffile%2F20170825%2F24044964_112347917039_2.jpg&refer=http%3A%2F%2Fpic139.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1616393684&t=43405cf2c33d8addc98e0909da78f359" alt=""> -->
</div>
<div class="author">
<div>{{item.username}}</div>
<div>{{item.createTime}}</div>
</div>
</div>
</div>
<div class="partyt-pagination" style="margin:0 20px;">
<el-pagination
background
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-size="page.pageSize"
layout="prev, pager, next, jumper"
:total="page.total"
></el-pagination>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data() {
return {
height:'',
filterText: "",
page: { currentPage: 1, pageSize: 10, total: 0 },
treeData: [],
defaultProps: {
children: "children",
label: "name"
},
selectAreaId:'',
tableData: [
{
title: "建党百年,爱国主义教育",
content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.",
author: "邢潇潇",
files:['@/assets/audio-icon.png','@/assets/video-icon.png','https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic139.nipic.com%2Ffile%2F20170825%2F24044964_112347917039_2.jpg&refer=http%3A%2F%2Fpic139.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1616393684&t=43405cf2c33d8addc98e0909da78f359'],
macUrl: "2021/01/02 14:34:22"
},
{
title: "建党百年,爱国主义教育",
content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.",
author: "邢潇潇",
files:['@/assets/audio-icon.png','@/assets/video-icon.png','https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic139.nipic.com%2Ffile%2F20170825%2F24044964_112347917039_2.jpg&refer=http%3A%2F%2Fpic139.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1616393684&t=43405cf2c33d8addc98e0909da78f359'],
macUrl: "2021/01/02 14:34:22"
},
]
};
},
watch: {
filterText(val) {
this.$refs.tree.filter(val);
}
},
mounted(){
this.height = this.$refs.rightBox.$el.offsetHeight-160
// 获取全部组织机构数据
this.getOrgData()
this.onSearch()
},
methods: {
// 查询
onSearch() {
this.page.currentPage = 1
this.getTableData();
},
// 获得数据接口
getTableData() {
let vm = this;
let param = {
_index:this.page.currentPage,
_size:this.page.pageSize,
orgId: this.selectAreaId
};
vm.$https(
{
url: "interaction/getList",
method: "post",
authType: this.backToken
},
vm.$qs.stringify(param)
).then(res => {
if(res.data.resultCode==='200'){
let data = res.data.data;
vm.page.total = data.total;
vm.tableData = data.records;
vm.tableData.forEach(item=>{
item.images = item.images.split(',')
item.images.forEach((result,index)=>{
if (/\.(MP4|mp4)/.test(result)){
item.images[index] = require('@/assets/video-icon.png')
}else if (/\.(MP3|mp3)/.test(result)){
item.images[index] = require('@/assets/audio-icon.png')
}else {
item.images[index] = require('@/assets/default-img.jpeg')
}
})
})
vm.tableData = [...vm.tableData]
}else{
this.$message({type:'error',message:res.data.message})
}
})
.catch(function(err) {
console.log(err);
})
},
// 获取组织机构数据
getOrgData(){
this.$https({
method: "get",
url: "organ/getList",
authType: this.backToken
}).then(res => {
if(res.data.resultCode === '200'){
this.treeData = res.data.data;
}else{
this.$message({type:'error',message:res.data.message})
}
},
error => {
console.log(error);
}
);
},
// 过滤树结构数据
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
},
// 点击节点事件
handleNodeClick(data) {
this.selectAreaId = data.areaId
this.getTableData()
},
// 分页
handleCurrentChange(val) {
this.page.currentPage = val;
this.getTableData();
},
}
};
</script>
<style lang="less">
@import '../../../style/pagination.less';
.interactive-wrapper {
.scrollBox {
overflow: auto;
}
.page-tip {
display: flex;
font-size: 14px;
color: #333333;
.page-tip-title {
font-weight: bold;
padding-right: 10px;
}
}
.el-card__body {
padding: 0;
}
.tree-title {
font-size: 16px;
color: #fff;
text-align: center;
height: 56px;
line-height: 56px;
background: #9B1E23;
border-radius: 8px 8px 0 0;
}
.tree-body {
padding: 20px;
.el-input__inner {
background: #F8F8F8;
border-radius: 22px;
}
.el-input__icon {
font-size: 18px;
color: #AC9374;
}
.el-tree-node__content:hover {
border-radius: 20px;
}
.el-tree-node__content {
height:30px;
margin: 5px 0;
}
}
.content-title {
display: flex;
justify-content: space-between;
padding: 20px;
border-bottom: 1px solid #eee;
.title {
font-size: 20px;
color: #333;
}
.page-tips {
width:500px;
}
}
.content-item {
font-size: 16px;
margin: 20px;
padding: 40px;
background: #f8f8f8;
.title {
padding-bottom: 20px;
}
p {
padding-bottom: 20px;
border-bottom: 1px solid #bbb;
}
.img-box {
padding: 20px;
border-bottom: 1px solid #bbb;
img {
width: 90px;
height: 90px;
margin-right: 20px;
}
}
.author {
display: flex;
justify-content: space-between;
padding-top: 16px;
font-size: 14px;
}
}
}
</style>
\ No newline at end of file
<template>
<div class="account-wrapper">
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="ul-wrapper height100">
<div class="panel-table">
<ul class="title-wrapper">
<li v-for="(item,index) in tList" :key="index">
{{item}}
</li>
</ul>
<ul class="panel-table-content">
<li v-for="(item,index) in data.slice(0,5)" :key="index">
<span v-for="(s,key) in item" :key='key'>
<img :src="getImg(s)" alt="" v-if="s<4">
<p v-else>{{s}}</p>
</span>
</li>
</ul>
</div>
<div class="panel-table">
<ul class="title-wrapper">
<li v-for="(item,index) in tList" :key="index">
{{item}}
</li>
</ul>
<ul class="panel-table-content">
<li v-for="(item,index) in data.slice(5,10)" :key="index">
<span v-for="(s,key) in item" :key='key'>
{{s}}
</span>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data(){
return{
}
},
props:{
tList:{
type:Array,
default:[]
},
data:{
type:Array,
default:()=>{return []}
}
},
methods:{
getImg(s){
return require('@/assets/overview/rank0'+ s + '.png')
}
}
}
</script>
<style lang="less" scoped>
.ul-wrapper{
display: flex;
padding: 15px 20px 40px;
.panel-table{
width: 50%;
&:first-child{
padding-right: 10px;
}
&:last-child{
padding-left: 10px;
}
.title-wrapper{
display: flex;
height: 48px;
line-height: 48px;
li{
text-align: center;
width: 40%;
&:first-child{width: 20%;}
}
}
.panel-table-content{
height: calc(100% - 56px);
li{
width: 100%;
height: 20%;
line-height: 1;
max-height: 48px;
background-color:@party-bg-gray;
margin-bottom: 4px;
border-radius: 2px;
display: flex;
align-items: center;
span{
text-align: center;
width: 40%;
display: inline-block;
&:first-child{width: 20%;}
}
img{
width: 18px;
vertical-align: middle;
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div id="dialogBarDemand"></div>
<div id="dialogBarDemand" style="width:100%;height:100%"></div>
</template>
<script>
......@@ -22,12 +22,28 @@
trigger: 'axis'
},
grid: {
top:20,
left: '0%',
right: '2%',
bottom: '5%',
top: 40,
left: '2%',
right: 40,
bottom: 30,
containLabel: true
},
// dataZoom: [{
// type: "slider",
// show: true,
// bottom: 0,
// start: 0,
// end: 100,
// height: 18,
// handleStyle: {
// color: "#d3dee5",
// },
// textStyle: {
// color: "#fff",
// fontSize: "10px"
// },
// }
// ],
xAxis: {
type: 'category',
boundaryGap: true,//坐标轴两边留白
......@@ -37,7 +53,7 @@
axisLabel: { //坐标轴刻度标签的相关设置。
interval:0,
textStyle: {
color: '#FFFFFF',
color: '#333333',
fontStyle: 'normal',
fontFamily: '微软雅黑',
fontSize: 14,
......@@ -55,7 +71,7 @@
},
axisLine:{//坐标轴轴线相关设置
lineStyle:{
color:'rgba(98,186,255,0.6)',
color:'#eeeeee',
type:'solid'
}
},
......@@ -71,7 +87,7 @@
max:100,
axisLabel: {
textStyle: {
color: '#FFFFFFFF',
color: '#333333',
fontStyle: 'normal',
fontFamily: '微软雅黑',
fontSize: 12,
......@@ -87,7 +103,7 @@
splitLine: {
show: true,
lineStyle: {
color: 'rgba(98,186,255,0.6)',
color:'#eeeeee',
type:'dashed'
}
}
......@@ -103,7 +119,7 @@
},
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
'rgba(78,255,253,1)', 'rgba(255,74,83,1)'
'#AC9374', '#9B1E23'
].map((color, offset) => ({
color,
offset
......@@ -123,7 +139,6 @@
<style lang="less">>
#dialogBarDemand{
width: 100%;
height: 16vh;
margin-top: 0.6rem;
height: 100%;
}
</style>
<template>
<div id="dialogTends"></div>
<div id="dialogTends" style="width:100%;height:100%"></div>
</template>
<script>
......@@ -25,25 +25,26 @@ export default {
grid: {
top:20,
left: '2%',
right: 20,
bottom: '15%',
right: 40,
bottom: 30,
containLabel: true
},
dataZoom: [{
type: "slider",
show: true,
bottom: '0',
start: 0,
end: 100,
height: 18,
handleStyle: {
color: "#d3dee5",
},
textStyle: {
color: "#fff",
fontSize: "10px"
},
}],
// dataZoom: [{
// type: "slider",
// show: true,
// bottom: 0,
// start: 0,
// end: 100,
// height: 18,
// handleStyle: {
// color: "#d3dee5",
// },
// textStyle: {
// color: "#fff",
// fontSize: "10px"
// },
// }
// ],
xAxis: {
type: 'category',
boundaryGap: false,//坐标轴两边留白
......@@ -53,7 +54,7 @@ export default {
'2021/01/21', '2021/01/22', '2021/01/23', '2021/01/24', '2021/01/25', '2021/01/26', '2021/01/27', '2021/01/28','2021/01/29', '2021/01/30','2021/01/31'],
axisLabel: { //坐标轴刻度标签的相关设置。
textStyle: {
color: '#FFFFFF',
color: '#333333',
fontStyle: 'normal',
fontFamily: '微软雅黑',
fontSize: 14,
......@@ -64,7 +65,7 @@ export default {
},
axisLine:{//坐标轴轴线相关设置
lineStyle:{
color:'rgba(98,186,255,0.6)',
color:'#eeeeee',
type:'solid'
}
},
......@@ -79,7 +80,7 @@ export default {
max:100,
axisLabel: {
textStyle: {
color: '#FFFFFFFF',
color: '#333333',
fontStyle: 'normal',
fontFamily: '微软雅黑',
fontSize: 12,
......@@ -95,7 +96,7 @@ export default {
splitLine: {
show: true,
lineStyle: {
color: 'rgba(98,186,255,0.6)',
color:'#eeeeee',
type:'dashed'
}
}
......@@ -108,18 +109,18 @@ export default {
smooth:true,
itemStyle: {
normal: {
color:'rgba(255,74,83,1)',
color:'#AC9374',
lineStyle: {
color: "rgba(78,255,253,1)",
color: "#9B1E23",
width:1
},
areaStyle: {
color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: 'rgba(255,74,83,0.4)'
color: 'rgba(172,141,116,0.4)'
}, {
offset: 1,
color: 'rgba(78,255,253,0.4)'
color: 'rgba(155,30,35,0.4)'
}]),
}
}
......@@ -141,7 +142,6 @@ export default {
<style lang="less">
#dialogTends{
width: 100%;
height: 16vh;
margin-top: 0.6rem;
height: 100%;
}
</style>
......@@ -6,7 +6,8 @@ import mapDiv from './maps'
import borderNums from './borderNums'
// import MDialog from './MDialog'
import bar from './echarts/bar'
import line from './echarts/line'
import trendLine from './echarts/line'
import rankTable from './detail-table/rankTable'
export {
demand,
interaction,
......@@ -16,5 +17,6 @@ export {
borderNums,
// MDialog,
bar,
line
trendLine,
rankTable
}
/* 互动频次 */
<template>
<div class="interaction-wrapper height100">
<div class="interaction-wrapper height100 overview-detail">
<div class="ecahrts-panel-box">
<div class="panel-box-header">
<span class="title">互动频次</span>
<div class="tip">
<span class="tip-title">页面说明:</span>
<span> 可查看当前系统各项数据统计情况。互动频次及点播趋势图展示部分数据,可进入互动统计及趋势分析详情页查看全部数据。</span>
</div>
</div>
<div class="panel-box-content">
<bar/>
</div>
</div>
<div class="rank-panel-box">
<div class="panel-box-header">
<span class="title">互动频次排行</span>
</div>
<div class="panel-box-content">
<rank-table
:tList="tList"
:data="data"
/>
</div>
</div>
</div>
</template>
<script>
import {bar} from './components'
import {bar,rankTable} from './components'
export default {
data(){
return {
tList:['排名','统计时间','点播总量'],
data:[
{index:1,time:'2021年1月',num:'268'},
{index:2,time:'2021年1月',num:'268'},
{index:3,time:'2021年1月',num:'268'},
{index:4,time:'2021年1月',num:'268'},
{index:5,time:'2021年1月',num:'268'},
{index:6,time:'2021年1月',num:'268'},
{index:7,time:'2021年1月',num:'268'},
{index:8,time:'2021年1月',num:'268'},
{index:9,time:'2021年1月',num:'268'},
{index:10,time:'2021年1月',num:'268'}
]
}
},
components:{bar},
components:{bar,rankTable},
methods:{
}
......
......@@ -2,24 +2,59 @@
<template>
<div class="trend-wrapper height100 overview-detail">
<div class="ecahrts-panel-box">
<div class="panel-box-header">
<span class="title">趋势图</span>
<el-date-picker
v-model="value1"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<div class="tip">
<span class="tip-title">页面说明:</span>
<span>默认展示当月点播总量趋势图及详情表格,可按照时间段进行检索,图表可以联动变化。</span>
</div>
</div>
<div class="panel-box-content">
<trend-line/>
</div>
</div>
<div class="rank-panel-box">
<div class="rank-box"></div>
<div class="rank-box"></div>
<div class="panel-box-header">
<span class="title">点播趋势排行</span>
</div>
<div class="panel-box-content">
<rank-table
:tList="tList"
:data="data"
/>
</div>
</div>
<line/>
</div>
</template>
<script>
import {line} from './components'
import {trendLine, rankTable} from './components'
export default {
data(){
return {
value1:'',
tList:['排名','统计时间','点播总量'],
data:[
{index:1,time:'2021年1月',num:'268'},
{index:2,time:'2021年1月',num:'268'},
{index:3,time:'2021年1月',num:'268'},
{index:4,time:'2021年1月',num:'268'},
{index:5,time:'2021年1月',num:'268'},
{index:6,time:'2021年1月',num:'268'},
{index:7,time:'2021年1月',num:'268'},
{index:8,time:'2021年1月',num:'268'},
{index:9,time:'2021年1月',num:'268'},
{index:10,time:'2021年1月',num:'268'}
]
}
},
components:{line},
components:{trendLine, rankTable},
methods:{
}
......@@ -27,20 +62,5 @@ export default {
</script>
<style lang="less" scoped>
.overview-detail{
.ecahrts-panel-box{
height: calc(50% + 20px);
}
.rank-panel-box{
height: calc(50% - 40px);
margin-top: 20px;
}
.ecahrts-panel-box,
.rank-panel-box{
background: #FFFFFF;
box-shadow: 0 4px 8px 0 rgba(221,221,221,0.40);
border-radius: 8px;
border-radius: 8px;
}
}
</style>
\ No newline at end of file
<template>
<div class="edition-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-date-picker
v-model="form.user"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可查看系统使用过的所有app版本信息,可设置其中一个版本为当前使用版本。可产看安装包详情信息。可上传新的安装包,“*”为必填项。</span>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">上传安装包</el-button>
</div>
<party-table :feildList="feildList" :list="list"></party-table>
<party-pagination/>
</div>
<edition-dialog/>
</div>
</template>
<script>
import { partyPagination,partyTable } from '@/components/index'
import {
addDialog,
infoDialog
}from './editionDialog'
export default {
data(){
return{
form:{
user:''
},
addForm:{
},
feildList:[
{prop:'date',label:'日期'},
{prop:'name',label:'姓名'},
{prop:'address',label:'地址'},
],
list: [
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
{ date: '2016-05-02',name: '王小虎', address: '上海市普陀区金沙江路 1518 弄'},
]
}
},
components:{ partyPagination, partyTable, addDialog, infoDialog},
mounted(){
},
methods:{
handleSubmit(){
},
handleReset(){
this.form.user = ''
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<!-- 运维日志 -->
<div class="devops-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入操作者"
placeholder="请输入运维者账号"
suffix-icon="el-icon-search"
></el-input>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="form.value"
v-model="form.date"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-select v-model="form.user" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
......@@ -53,7 +44,7 @@ export default {
return{
form:{
user:'',
value:''
date:''
},
addForm:{
......
......@@ -41,7 +41,7 @@
</div>
</div>
<div class="table-content hasTabs">
<party-table :feildList="feildList" :list="list"></party-table>
<party-table class="noAdd" :feildList="feildList" :list="list"></party-table>
<party-pagination/>
</div>
</div>
......
<template>
<el-dialog
custom-class="party-dialog"
title="新建机构"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:rules="rules"
:model="form"
label-width="80px"
label-position="top"
class="party-form"
>
<el-form-item label="新增类别:" prop="level">
<el-radio-group v-model="form.level">
<el-radio
v-for="(item, index) in levelOption"
:key="index"
:label="item.label"
>
{{ item.value }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="机构名称:" prop="name">
<el-input
v-model="form.name"
placeholder="请填写"
clearable
></el-input>
</el-form-item>
<el-form-item label="机构地理位置:" prop="areaId">
<el-cascader
v-model="form.areaId"
change-on-select
:props="cascaderProps"
:options="areaOptions"
>
</el-cascader>
</el-form-item>
<el-form-item label="备注">
<el-input
v-model="form.remarks"
type="textarea"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="handleCancle()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()" :disabled="disabled"
>确 定</el-button
>
</div>
</el-dialog>
</template>
<script>
import { getAreas } from "@/config/area";
export default {
data() {
return {
dialogVisible: false,
form: {
name: "",
areaId: [],
level: "",
remarks: "",
},
disabled: false,
areaOptions: [],
cascaderProps: {
label: "name",
value: "id",
checkStrictly: true
},
levelOption: [],
rules: {
level: [
{ required: true, message: "请选择用户类别", trigger: "change" },
],
name: [
{ required: true, message: "请输入机构名称", trigger: "change" },
],
areaId: [
{ required: true, message: "请选择地理位置", trigger: "change" },
],
},
};
},
props: {
level: {
type: Number,
default: 1,
},
parentId:{
type: String,
default: '0',
}
},
mounted() {
this.getLevelOption();
getAreas().then((res) => {
this.areaOptions = res;
});
},
methods: {
// 弹窗关闭
handleClose() {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset()
})
.catch((_) => {});
},
handleReset(){
this.dialogVisible = false
this.$refs.form.resetFields()
this.form = {
name: "",
areaId: [],
level: "",
remarks: "",
}
},
handleCancle() {
this.handleClose();
},
handleSubmit() {
// 校验用户输入值
this.$refs.form.validate((valid) => {
if (valid) {
let params = {};
params.name = this.form.name;
params.areaId = [...this.form.areaId].pop();
params.remarks = this.form.remarks;
params.level = this.form.level;
params.parentId = this.parentId
let requestparams = this.$qs.stringify(params);
this.$https(
{
method: "post",
url: "organ/add",
authType: this.backToken,
},
requestparams
)
.then((res) => {
if(res.status == 200 ){
if (res.data.resultCode == 200 ) {
this.$message({
type: "success",
message: res.data.message,
});
this.handleReset()
this.$emit('success',true)
} else {
this.$message.error(res.data.message);
this.$emit('success',false)
}
} else {
this.$message.error(res.data);
this.$emit('success',false)
}
})
.catch((err) => {
console.log(res);
});
} else {
console.log("error submit!!");
return false;
}
});
},
getLevelOption() {
this.form.level = this.level;
if (this.level === 1) {
this.levelOption = [
{ label: 1, value: "平级机构" },
{ label: 2, value: "下级机构" },
];
} else if (this.level === 2) {
this.levelOption = [
{ label: 1, value: "上级机构" },
{ label: 2, value: "平级机构" },
{ label: 3, value: "下级机构" },
];
} else if (this.level === 3) {
this.levelOption = [
{ label: 2, value: "上级机构" },
{ label: 3, value: "平级机构" },
];
} else {
this.levelOption = [];
}
},
},
watch: {
level() {
// level 1 没有上级 level 3 没有下级
this.getLevelOption();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<p> 编辑</p>
</template>
export default{
}
<style lang="less" scoped>
</style>
\ No newline at end of file
import orgAdd from './add'
import orgEdit from './edit'
export{
orgAdd,
orgEdit
}
<template>
<div class="oran-wrapper">
<div class="org-tree">
<div class="oran-wrapper height100">
<div class="org-tree-container">
<div class="org-tree-box">
<div class="org-tree-box-header">组织结构</div>
<div class="org-tree-box-content">
<div class="tree-search party-form">
<el-input
placeholder="请输入组织结构名称"
v-model="name"
>
<i
slot="suffix"
class="el-input__icon el-icon-search"
@click="getOrgTree()">
</i>
</el-input>
<div class="f0">
<el-tooltip content="新建" placement="top">
<i class="icon-add party-icon-20" @click="handleAdd('add')"/>
</el-tooltip>
<el-tooltip content="导入" placement="top">
<i class="icon-import party-icon-20" @click="handleImport('import')"/>
</el-tooltip>
</div>
</div>
<div class="tree-content">
<el-tree
class="org-tree"
:data="data"
:props="defaultProps"
@node-click="handleNodeClick"
>
<div
class="custom-tree-node"
slot-scope="{ node, data }"
:class="'tree-node-level' + data.level"
>
<i class="icon-org" v-if="data.level === 1"></i>
<span>{{ node.label }}</span>
</div>
</el-tree>
</div>
</div>
</div>
</div>
<div class="org-detail">
<div class="org-detail-panel-box">
<span class="title">{{ currentInfo.name }}</span>
<div class="icon-group">
<i class="icon-edit party-icon-24" @click="handleEdit()"> </i>
<i class="icon-del party-icon-24" @click="handleDel()"> </i>
</div>
</div>
<div class="org-detail-panel-box-content">
<div class="page-tip">
<p class="page-tip-title">页面说明:</p>
<p class="page-tip-des">
点击相应的机构名称,可查看该机构的详细信息。可新增机构、删除机构及批量导入机构信息。新增机构中“*”为必填项
</p>
</div>
<el-form label-position="top" :inline="true">
<el-form-item label="上级机构" class="w50">
<span></span>
</el-form-item>
<el-form-item label="下级机构" class="w50">
<span>
</span>
</el-form-item>
<el-form-item label="地理位置" class="w100">
<span>
{{currentInfo.remarks}}
</span>
</el-form-item>
<el-form-item label="备注信息" class="w100">
<span>
{{currentInfo.remarks}}
</span>
</el-form-item>
</el-form>
</div>
<org-add
ref="orgAdd"
:parentId="currentInfo.id"
:level="currentInfo.level"
@success="getOrgTree()"
/>
<org-edit ref="orgEdit" :currentInfo="currentInfo"/>
</div>
<div class=""></div>
</div>
</template>
<script>
import {orgAdd, orgEdit} from './orgDialog'
export default {
data(){
return{
}
data() {
return {
name: "",
data: [],
defaultProps: {
children: "children",
label: "name",
},
currentId:'',
currentInfo:{},
};
},
components:{orgAdd,orgEdit},
mounted(){
this.getOrgTree()
},
methods: {
handleNodeClick(data) {
this.currentId = data.id
this.getInfoById()
},
// 获取机构数详情
getInfoById(){
this.$https({
method: "get",
url: "organ/getById",
authType: this.backToken,
},{id:this.currentId}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
if(res.data.data){
this.currentInfo = res.data.data
}else{
this.currentInfo = {}
}
}else{
this.currentInfo = {}
}
}else{
this.currentInfo = {}
}
}).catch(err=>{
console.log(res)
})
},
// 获取机构树
getOrgTree(){
this.$https({
method: "get",
url: "organ/getTree",
authType: this.backToken,
},{name:this.name}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
this.data = res.data.data
}else{
this.data = []
}
}else{
this.data = []
}
}).catch(err=>{
console.log(res)
})
},
// 新增或者导入 之前判断是否选择父级
handleOperate(type){
if(JSON.stringify(this.currentInfo) === "{}"){
this.currentId.level = 1
this.currentInfo.id = '0'
}
if(type === 'add'){
this.handleAdd()
}
if(type === 'import'){
this.handleImport()
}
},
// 新增
handleAdd(){
this.$refs.orgAdd.dialogVisible = true
},
//导入
handleImport(){
},
methods:{
handleEdit(){
},
// 删除
handleDel(){
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.delAction()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
delAction(){
this.$https({
method: `delete?id=${this.currentId}`,
url: "organ/delete",
authType: this.backToken,
}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
this.$message({
type:'success',
message:res.data.message
})
this.getOrgTree()
}else{
this.$message.error(res.data.message)
}
}
}else{
this.$message.error(res.data)
}
}).catch(err=>{
console.log(err)
})
}
},
};
</script>
<style lang="less" scoped>
.oran-wrapper{
.oran-wrapper {
display: flex;
.org-tree-container {
width: 420px;
padding-right: 20px;
height: 100%;
.org-tree-box {
height: 100%;
background: @party-white;
border: 1px solid @party-white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
.org-tree-box-header {
height: 56px;
line-height: 56px;
background-color: @party-red;
text-align: center;
font-size: 16px;
color: @party-white;
}
/deep/ .tree-search {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 10px;
.el-input__icon {
width: 40px;
font-size: 20px;
color: @party-btn-color;
}
.icon-import {
margin-left: 10px;
}
}
.org-tree-box-content {
padding: 20px;
height: calc(100% - 56px);
.tree-content{
height: calc(100% - 60px);
overflow-y: auto;
}
}
}
}
.org-detail {
width: calc(100% - 420px);
height: 100%;
background: @party-white;
border: 1px solid @party-white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
.org-detail-panel-box {
height: 64px;
border-bottom: 1px solid @party-border-color;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24px;
.title{
font-size: 20px;
font-weight: bold;
color: @font-color;
}
.icon-del {
margin-left: 30px;
}
}
.org-detail-panel-box-content {
height: calc(100% - 64px);
padding: 20px;
overflow-y: scroll;
.page-tip {
width: 648px;
height: 72px;
background: @party-bg-gray;
border-radius: 8px;
color: @font-color;
display: flex;
padding: 16px 20px;
margin: 0 auto 40px;
.page-tip-title {
width: 100px;
font-weight: bold;
}
}
.el-form {
width: 648px;
margin: 0 auto;
.w50 { width: calc(50% - 15px); }
.w100 { width: 100%;}
.el-form-item__content{
span{
color: @font-color;
font-weight: bold;
}
}
}
}
}
}
</style>
\ No newline at end of file
export let STBoxRoute = [
//=======================================机顶盒管理 start ===================================//
{
path: '/STBbase',
name: '机顶盒基础信息管理',
component: () => import('@/page/STB/base/index'),
meta: {
showBreadcrumb: true,
title: '机顶盒基础信息管理',
}
},
{
path: '/STBoperation',
name: '机顶盒运维信息管理',
component: () => import('@/page/STB/operation/index'),
meta: {
showBreadcrumb: true,
title: '机顶盒运维信息管理',
}
},
{
path: '/interactive',
name: '互动内容',
component: () => import('@/page/content/interactive/index'),
meta: {
showBreadcrumb: true,
title: '互动内容',
}
},
{
path: '/appversion',
name: 'app版本管理',
component: () => import('@/page/STB/appversion/index'),
meta: {
showBreadcrumb: true,
title: 'app版本管理',
}
},
{
path: '/pagecustom',
name: 'app界面自定义',
component: () => import('@/page/STB/pageCustom/index'),
meta: {
showBreadcrumb: true,
title: 'app界面自定义',
}
},
//=======================================机顶盒管理 end ===================================//
]
export let accoutsRoute = [
// 平台用户管理
{
path: '/users',
name: '平台用户管理',
component: () => import('@/page/accounts/users'),
meta:{
showBreadcrumb:true,
title:'平台用户管理',
}
},
//统计用户管理
{
path: '/statisticalUser',
name: '统计用户管理',
component: () => import('@/page/accounts/statistical'),
meta:{
showBreadcrumb:true,
title:'统计用户管理',
}
},
// 平台用户单位管理员账号
{
path: '/unitAdmin',
name: '平台用户单位管理员账号管理',
component: () => import('@/page/accounts/unitAdmin'),
meta:{
showBreadcrumb:true,
title:'单位管理员账号管理',
}
},
// 机顶盒运维账号管理
{
path: '/stbAccount',
name: '机顶盒运维账号',
component: () => import('@/page/accounts/stbAdmin'),
meta:{
showBreadcrumb:true,
title:'机顶盒运维账号',
}
},
// 账号禁用审核
{
path: '/recheck',
name: '账号禁用审核',
component: () => import('@/page/accounts/recheck'),
meta:{
showBreadcrumb:true,
title:'账号禁用审核(复审)',
}
}
]
\ No newline at end of file
......@@ -74,7 +74,10 @@ const login = r => require.ensure([],()=>r(require('@/components/end/login')),'l
// 忘记密码
const forgetPassword = r => require.ensure([],()=>r(require('@/components/end/forgetPassword')),'forgetPassword');
// 首页
import { statisticsRoute } from './statistics'
import { systemRoute } from './system'
import { accoutsRoute } from './accout'
import { STBoxRoute } from './STBox'
const router = new Router({
routes: [
{
......@@ -91,88 +94,10 @@ const router = new Router({
showBreadcrumb:false
}
},
{
path: '/organ',
name: '机构管理',
component: () => import('@/page/system/organ'),
meta:{
showBreadcrumb:true,
title:'机构管理',
}
},
{
path: '/users',
name: '用户管理',
component: () => import('@/page/system/users'),
meta:{
showBreadcrumb:true,
title:'用户管理',
}
},
{
path: '/log',
name: '日志管理',
component: () => import('@/page/system/log'),
meta:{
showBreadcrumb:true,
title:'日志管理',
}
},
{
path: '/unitAdmin',
name: '单位管理员账号管理',
component: () => import('@/page/system/unitAdmin'),
meta:{
showBreadcrumb:true,
title:'单位管理员账号管理',
}
},
{
path: '/edition',
name: 'app版本管理',
component: () => import('@/page/system/edition'),
meta:{
showBreadcrumb:true,
title:'app版本管理',
}
},
{
path: '/changePwd',
name: '修改密码',
component: () => import('@/page/system/changePwd'),
meta:{
showBreadcrumb:true,
title:'修改密码',
}
},
// 统计管理
{
path: '/overview',
name: '统计概览',
component: () => import('@/page/statistics/overview'),
meta:{
showBreadcrumb:true,
title:'统计概览',
}
},
{
path: '/interaction',
name: '互动统计',
component: () => import('@/page/statistics/interaction'),
meta:{
showBreadcrumb:true,
title:'互动统计',
}
},
{
path: '/tend',
name: '趋势分析',
component: () => import('@/page/statistics/tend'),
meta:{
showBreadcrumb:true,
title:'趋势分析',
}
},
...statisticsRoute,
...systemRoute,
...accoutsRoute,
...STBoxRoute,
{
path: '/forgetPassword',
name: '忘记密码',
......
// 统计管理
export let statisticsRoute = [
{
path: '/overview',
name: '统计概览',
component: () => import('@/page/statistics/overview'),
meta:{
showBreadcrumb:true,
title:'统计概览',
}
},
{
path: '/interaction',
name: '互动统计',
component: () => import('@/page/statistics/interaction'),
meta:{
showBreadcrumb:true,
title:'互动统计',
}
},
{
path: '/tend',
name: '趋势分析',
component: () => import('@/page/statistics/tend'),
meta:{
showBreadcrumb:true,
title:'趋势分析',
}
}
]
export let systemRoute = [
{
path: '/organ',
name: '机构管理',
component: () => import('@/page/system/organ'),
meta:{
showBreadcrumb:true,
title:'机构管理',
}
},
{
path: '/log',
name: '日志管理',
component: () => import('@/page/system/log'),
meta:{
showBreadcrumb:true,
title:'日志管理',
}
},
{
path: '/changePwd',
name: '修改密码',
component: () => import('@/page/system/changePwd'),
meta:{
showBreadcrumb:true,
title:'修改密码',
}
}
]
\ No newline at end of file
......@@ -14,7 +14,7 @@
.f16{ font-size: 14px; }
.f18{ font-size: 18px; }
.f24{ font-size: 24px; }
.f0{font-size: 0px;}
.inline-block{
display: inline-block;
}
......@@ -321,3 +321,183 @@
text-align: center;
}
}
// 适用于统计详情样式
.overview-detail{
.ecahrts-panel-box{
height: calc(50% + 20px);
}
.rank-panel-box{
height: calc(50% - 40px);
margin-top: 20px;
}
.ecahrts-panel-box,
.rank-panel-box{
background:@party-white;
box-shadow: 0 4px 8px 0 rgba(221,221,221,0.40);
border-radius: 8px;
}
.panel-box-header{
height: 64px;
line-height: 64px;
border-bottom: 1px solid @party-border-color;
padding: 0 24px;
.title{
font-weight: bold;
font-size: 20px;
}
.tip{
float: right;
color: @font-color;
.tip-title{
font-weight: bold;
padding-right: 10px;
}
}
.el-range-editor.el-input__inner{
width: 280px;
border-radius: 22px;
background-color: @party-bg-gray;
margin-left: 40px;
padding-left:15px;
.el-range-input{
background-color: @party-bg-gray;
}
.el-range-separator{
width: 20px;
padding: 0 2px;
}
.el-icon-date{
color: @party-btn-color;
font-size: 18px;
}
}
}
.panel-box-content{
height: calc(100% - 64px);
overflow: hidden;
}
.rank-box{
width: 50%;
&.left{
padding-right: 10px;
}
&.right{
padding-left: 10px;
}
}
}
.party-icon-20{
display:inline-block;
width: 20px;
height: 20px;
background-repeat: no-repeat;
background-size: cover;
}
.party-icon-24{
display:inline-block;
width: 24px;
height: 24px;
background-repeat: no-repeat;
background-size: cover;
}
.icon-add{
background-image: url("~@/assets/icons/add.png");
}
.icon-import{
background-image: url("~@/assets/icons/import.png");
}
.icon-edit{
background-image: url("~@/assets/icons/edit.png");
}
.icon-reset{
background-image: url("~@/assets/icons/reset.png");
}
.icon-enable{
background-image: url("~@/assets/icons/enable.png");
}
.icon-disable{
background-image: url("~@/assets/icons/disable.png");
}
.icon-del{
background-image: url("~@/assets/icons/del.png");
}
.icon-org{
display: inline-block;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: cover;
background-image: url("~@/assets/icons/org.png");
margin-right: 8px;
}
// 组织树结构样式
.org-tree{
// expand 三角icon
.el-tree-node__expand-icon{
position: absolute;
right: 10px;
top: 14px;
color: #000000;
font-size: 16px;
&.is-leaf{
color: transparent;
}
}
.el-tree-node{
background-color: @party-white;
&.is-current{
>.el-tree-node__content{
.custom-tree-node{
background-color: @party-border-color;
}
}
}
}
.el-tree-node__content{
height: auto;
position: relative;
background-color: transparent !important;
&:hover{
background-color: transparent;
}
}
div[class*="tree-node-level"]{
width: 100%;
color: @font-color;
border-radius: 5px;
}
.tree-node-level1,
.tree-node-level2{
span{
font-size: 16px;
}
}
.tree-node-level3{
span{
font-size: 14px;
}
}
.tree-node-level1{
height: 56px;
line-height: 56px;
border-bottom: 1px solid @party-border-color;
padding-left: 5px;
}
.tree-node-level2,
.tree-node-level3{
height: 40px;
line-height: 40px;
margin: 5px 0;
border-radius: 20px;
padding-left: 10px;
}
.tree-node-level2:hover{
background-color: @party-table-header-color;
}
.tree-node-level3:hover{
background-color: @party-border-color;
}
}
.party-table{
height: calc(100% - 130px);
&.noAdd{
height: calc(100% - 100px);
}
.el-table__header-wrapper{
border-radius: 8px 8px 0 0 ;
.el-table__header{
......@@ -11,6 +14,7 @@
}
}
.el-table__body{
color: @font-color;
tr{
&:nth-child(even){
background-color: #FDFBF8;
......@@ -18,3 +22,50 @@
}
}
}
.table-btn-group{
.el-button{
border: none;
padding: 0;
}
}
.icon-table{
display: inline-block;
width: 24px;
height: 24px;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
.passed,
.rejected{
width: 80px;
height: 28px;
border-radius: 28px;
font-size: 16px;
&.is-disabled{
background: rgba(0,0,0,0.10);
color: #999999;
&:hover{
background: rgba(0,0,0,0.10);
color: #999999;
}
}
}
.passed{
background-color: #F4EDE3;
color: @party-btn-color;
&:hover{
background-color: #F4EDE3;
color: @party-btn-color;
}
}
.rejected{
background: rgba(155,30,35,0.10);
color: @party-red;
&:hover{
background: rgba(155,30,35,0.10);
color: @party-red;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment