Browse Source

运营账号管理

master
ltlzx 5 years ago
parent
commit
072825337f
  1. 145
      src/api/index.js
  2. 54
      src/components/common/Sidebar.vue
  3. 44
      src/components/common/dialog/insex.vue
  4. 40
      src/components/page/AssetManagement/assetQuery.vue
  5. 2
      src/components/page/AssetManagement/groundingAudit.vue
  6. 9
      src/components/page/AssetManagement/releaseAudit.vue
  7. 27
      src/components/page/Login.vue
  8. 109
      src/components/page/OperationManagement/announcementConfiguration.vue
  9. 210
      src/components/page/platformManagement/operationAccountManagement/index.vue
  10. 388
      src/components/page/platformManagement/operationAccountManagement/list.vue
  11. 220
      src/components/page/platformManagement/operationAccountManagement/operationalRole.vue
  12. 187
      src/components/page/platformManagement/operationAccountManagement/roleSet.vue
  13. 4
      src/router/index.js

145
src/api/index.js

@ -1,5 +1,16 @@
import request from '../utils/request'; import request from '../utils/request';
// 登录
export const login = query => {
return request({
url: 'api/Passport/login',
method: 'get',
params: query
});
};
// 账户管理--交易平台账户查询 // 账户管理--交易平台账户查询
// 平台账号列表查询 // 平台账号列表查询
export const platformAccountList = query => { export const platformAccountList = query => {
@ -100,6 +111,22 @@ export const getAccountList = query => {
params: query params: query
}); });
}; };
//资产上架
export const addedAsset = query => {
return request({
url: 'api/admin.Asset/addedAsset',
method: 'post',
data: query
});
};
//资产下架
export const outAsset = query => {
return request({
url: 'api/admin.Asset/outAsset',
method: 'post',
data: query
});
};
/* 资产管理 --资产挂牌审核*/ /* 资产管理 --资产挂牌审核*/
@ -111,6 +138,14 @@ export const accountApplyList = query => {
params: query params: query
}); });
}; };
// 资产挂牌审核
export const cartellinoCheck = query => {
return request({
url: 'api/admin.Asset/cartellinoCheck',
method: 'post',
data: query
});
};
/* 资产管理 --资产发布审核*/ /* 资产管理 --资产发布审核*/
//资产审核列表 //资产审核列表
@ -121,6 +156,14 @@ export const sendList = query => {
params: query params: query
}); });
}; };
// 资产发布审核
export const sendCheck = query => {
return request({
url: 'api/admin.Asset/sendCheck',
method: 'post',
data: query
});
};
/* 交易管理 */ /* 交易管理 */
@ -133,4 +176,106 @@ export const orderList = query => {
method: 'get', method: 'get',
params: query params: query
}); });
};
/* 运营管理 */
/* 运营管理 --通知公告配置*/
//获取通知公告配置
export const getNoticeList = query => {
return request({
url: 'api/admin.Operation/getNoticeList',
method: 'get',
params: query
});
};
/* 平台管理 */
/* 平台管理 --运营账号管理*/
/* 平台管理 --运营账号管理--账号列表*/
//账号列表
export const getAdminlist = query => {
return request({
url: 'api/admin.User/getAdminlist',
method: 'get',
params: query
});
};
/* 平台管理 --运营账号管理--运营角色*/
//部门名称列表
export const departmentList = query => {
return request({
url: 'api/admin.User/departmentList',
method: 'get',
params: query
});
};
//部门职位列表
export const positionList = query => {
return request({
url: 'api/admin.User/positionList',
method: 'get',
params: query
});
};
//获取部门以及职位
export const getDepartment = query => {
return request({
url: 'api/admin.User/getDepartment',
method: 'get',
params: query
});
};
//获取角色
export const grouplist = query => {
return request({
url: 'api/admin.User/grouplist',
method: 'get',
params: query
});
};
//修改部门
export const updateDepartment = query => {
return request({
url: 'api/admin.User/updateDepartment',
method: 'post',
data: query
});
};
//添加管理员
export const addAdmin = query => {
return request({
url: 'api/admin.User/addAdmin',
method: 'post',
data: query
});
};
//修改管理员
export const editAdmin = query => {
return request({
url: 'api/admin.User/editAdmin',
method: 'post',
data: query
});
};
//修改管理员密码
export const editAdminPass = query => {
return request({
url: 'api/admin.User/editAdminPass',
method: 'post',
data: query
});
};
//获取角色
export const editAdminChange = query => {
return request({
url: 'api/admin.User/editAdminChange',
method: 'get',
params: query
});
}; };

54
src/components/common/Sidebar.vue

@ -58,7 +58,7 @@ export default {
items: [ items: [
{ {
icon: 'el-icon-lx-home', icon: 'el-icon-lx-home',
index: 'dashboard', index: '/dashboard',
title: '系统首页' title: '系统首页'
}, },
{ {
@ -67,23 +67,23 @@ export default {
title: '账户管理', title: '账户管理',
subs:[ subs:[
{ {
index: 'platformSelect', index: '/platformSelect',
title: '交易平台账户查询' title: '交易平台账户查询'
}, },
{ {
index: 'buyerReview', index: '/buyerReview',
title: '买方开户审核' title: '买方开户审核'
}, },
{ {
index: 'businessAudit', index: '/businessAudit',
title: '托管方入驻审核' title: '托管方入驻审核'
}, },
{ {
index: 'thirdAudit', index: '/thirdAudit',
title: '第三方机构审核' title: '第三方机构审核'
}, },
{ {
index: 'blacklistManagement', index: '/blacklistManagement',
title: '黑名单管理' title: '黑名单管理'
}, },
] ]
@ -94,15 +94,15 @@ export default {
title: '资产管理', title: '资产管理',
subs:[ subs:[
{ {
index: 'assetQuery', index: '/assetQuery',
title: '资产信息查询' title: '资产信息查询'
}, },
{ {
index: 'groundingAudit', index: '/groundingAudit',
title: '资产挂牌审核' title: '资产挂牌审核'
}, },
{ {
index: 'releaseAudit', index: '/releaseAudit',
title: '资产发布审核' title: '资产发布审核'
}, },
] ]
@ -118,23 +118,23 @@ export default {
title: '交易管理', title: '交易管理',
subs:[ subs:[
{ {
index: 'transactionQuery', index: '/transactionQuery',
title: '交易订单查询' title: '交易订单查询'
}, },
{ {
index: 'TobepaidOrder', index: '/TobepaidOrder',
title: '待支付订单' title: '待支付订单'
}, },
{ {
index: 'publicityOrder', index: '/publicityOrder',
title: '待公示订单' title: '待公示订单'
}, },
{ {
index: 'settlementOrder', index: '/settlementOrder',
title: '待结算订单' title: '待结算订单'
}, },
{ {
index: 'refundOrderExamine', index: '/refundOrderExamine',
title: '退款订单审核' title: '退款订单审核'
}, },
] ]
@ -145,23 +145,23 @@ export default {
title: '运营管理', title: '运营管理',
subs:[ subs:[
{ {
index: 'customerOpinion', index: '/customerOpinion',
title: '客户意见处理' title: '客户意见处理'
}, },
{ {
index: 'bannerConfigure', index: '/bannerConfigure',
title: 'banner配置' title: 'banner配置'
}, },
{ {
index: 'feedConfigure', index: '/feedConfigure',
title: 'feed配置' title: 'feed配置'
}, },
{ {
index: 'announcementConfiguration', index: '/announcementConfiguration',
title: '通知公告配置' title: '通知公告配置'
}, },
{ {
index: 'assetsConfigure', index: '/assetsConfigure',
title: '资产推荐配置' title: '资产推荐配置'
} }
] ]
@ -172,34 +172,34 @@ export default {
title: '数据管理', title: '数据管理',
subs:[ subs:[
{ {
index: 'transactionCheck', index: '/transactionCheck',
title: '交易账单核对' title: '交易账单核对'
}, },
{ {
index: 'transactionAnalysis', index: '/transactionAnalysis',
title: '账户交易分析' title: '账户交易分析'
}, },
{ {
index: 'revenueStatistics', index: '/revenueStatistics',
title: '平台收益统计' title: '平台收益统计'
} }
] ]
}, },
{ {
icon: 'el-icon-lx-calendar', icon: 'el-icon-lx-calendar',
index: '6', index: '/platform ',
title: '平台管理', title: '平台管理',
subs:[ subs:[
{ {
index: 'operationAccountManagement', index: '/platform/operationAccountManagement',
title: '运营账号管理' title: '运营账号管理'
}, },
{ {
index: 'platformNotification', index: '/platformNotification',
title: '平台通知管理' title: '平台通知管理'
}, },
{ {
index: 'revenueStatistics', index: '/revenueStatistics',
title: '平台收益统计' title: '平台收益统计'
} }
] ]
@ -297,7 +297,7 @@ export default {
this.collapse = msg; this.collapse = msg;
bus.$emit('collapse-content', msg); bus.$emit('collapse-content', msg);
}); });
} },
}; };
</script> </script>

44
src/components/common/dialog/insex.vue

@ -45,7 +45,7 @@
<script> <script>
import {whySidebar} from '../dialog/sidebar.vue' import {whySidebar} from '../dialog/sidebar.vue'
import sidebarContent from '../dialog/content.vue' import sidebarContent from '../dialog/content.vue'
import {getAccountData,getAssetInfo,accountCheck} from '../../../api/index' import {getAccountData,getAssetInfo,accountCheck,cartellinoCheck,sendCheck} from '../../../api/index'
import bus from '../bus' import bus from '../bus'
export default { export default {
name:'whyDialog', name:'whyDialog',
@ -69,6 +69,7 @@ export default {
type:String, type:String,
default:'buyer', default:'buyer',
}, },
//
isexamine:{ isexamine:{
type:Boolean, type:Boolean,
default:false, default:false,
@ -92,7 +93,8 @@ export default {
account_type:'', account_type:'',
uid:'', uid:'',
account_data:'', account_data:'',
id:'' id:'',
serial:'',
}, },
tabID:'', tabID:'',
contentDatas:'' contentDatas:''
@ -205,6 +207,44 @@ export default {
this.tabID=tab.id this.tabID=tab.id
}, },
saveEdit(){ saveEdit(){
if (this.dialogType==1) {
this.saveAccountCheck()
}else if (this.dialogType==2) {
if (this.assets_type==2) {
this.saveCartellinoCheck()
}else if (this.dialogType==3) {
this.saveSendCheck()
}
}
},
//
saveSendCheck(){
sendCheck(this.query).then(res => {
console.log(res);
if (res.code==100) {
this.MisShow()
this.$message.success('提交成功~');
this.$emit('getData')
}else{
this.$message.error(res.msg);
}
});
},
//
saveCartellinoCheck(){
cartellinoCheck(this.query).then(res => {
console.log(res);
if (res.code==100) {
this.MisShow()
this.$message.success('提交成功~');
this.$emit('getData')
}else{
this.$message.error(res.msg);
}
});
},
// /
saveAccountCheck(){
this.query.account_data=this.contentDatas this.query.account_data=this.contentDatas
this.query.account_data.establish_time=this.contentDatas.establish_time/1000; this.query.account_data.establish_time=this.contentDatas.establish_time/1000;
delete this.query.account_data['is_status']; delete this.query.account_data['is_status'];

40
src/components/page/AssetManagement/assetQuery.vue

@ -91,6 +91,7 @@
>资料查看</el-button> >资料查看</el-button>
<el-button <el-button
type="text" type="text"
v-if="scope.row.asset_status==3 ||scope.row.asset_status==2"
@click="operationRecord(scope.row)" @click="operationRecord(scope.row)"
>{{scope.row | operationStatus}}</el-button> >{{scope.row | operationStatus}}</el-button>
<el-button <el-button
@ -115,7 +116,7 @@
</template> </template>
<script> <script>
import { getAccountList ,operationRecord,updateBlackList,auditList} from '../../../api/index'; import { getAccountList ,outAsset,addedAsset,updateBlackList,auditList} from '../../../api/index';
import moment from 'moment' import moment from 'moment'
export default { export default {
data() { data() {
@ -205,15 +206,36 @@ export default {
this.editVisible2=false this.editVisible2=false
}); });
}, },
// //
operationRecord(row){ operationRecord(row){
let data={uid:row.id} if (row.asset_status==3) {
operationRecord(data).then(res => { this.addedAsset(row.id)
}else if(row.asset_status==2){
this.outAsset(row.id)
}
},
//
addedAsset(id){
let data={id:id}
addedAsset(data).then(res => {
console.log(res);
if (res.code==100) {
}else{
this.$message.error(res.msg);
}
});
},
//
outAsset(id){
let data={id:id}
outAsset(data).then(res => {
console.log(res); console.log(res);
if(res.code==100){ if (res.code==100) {
this.recordList=res.data.list
}else{
this.$message.error(res.msg);
} }
this.editVisible1=true
}); });
}, },
// //
@ -265,9 +287,9 @@ export default {
filters:{ filters:{
operationStatus(res){ operationStatus(res){
let text=''; let text='';
if (res.asset_status==2|| res.asset_status==4 && res.apply_status==3) { if (res.asset_status==3) {
text='上架资产' text='上架资产'
}else if(res.asset_status==1 || res.asset_status==3 && res.apply_status==3 || res.apply_status==1){ }else if(res.asset_status==2){
text='下架资产' text='下架资产'
} }
return text return text

2
src/components/page/AssetManagement/groundingAudit.vue

@ -69,7 +69,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<whyDialog v-if="editVisible" :isshow="editVisible" :dialogID="dialogID" <whyDialog v-if="editVisible" :isshow="editVisible" :dialogID="dialogID"
:dialogType="dialogType" @MisShow="MisShow" :isexamine="true" :assets_type="2" > :dialogType="dialogType" @MisShow="MisShow" :isexamine="true" :assets_type="2" @getData="getData">
</whyDialog> </whyDialog>
</div> </div>

9
src/components/page/AssetManagement/releaseAudit.vue

@ -79,7 +79,9 @@
></el-pagination> ></el-pagination>
</div> </div>
</div> </div>
<whyDialog v-if="editVisible" :isshow="editVisible" :dialogID="dialogID"
:dialogType="dialogType" @MisShow="MisShow" :isexamine="true" :assets_type="3" @getData="getData">
</whyDialog>
</div> </div>
</template> </template>
@ -101,6 +103,8 @@ export default {
page: 1, page: 1,
limit: 10 limit: 10
}, },
dialogID:'',
dialogType:2,
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
delList: [], delList: [],
@ -145,6 +149,9 @@ export default {
this.getAuditList(); this.getAuditList();
}, },
methods: { methods: {
MisShow(){
this.editVisible=false
},
// //
formatDate(row,colnum){ formatDate(row,colnum){
return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss') return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss')

27
src/components/page/Login.vue

@ -4,7 +4,7 @@
<div class="ms-title">后台管理系统</div> <div class="ms-title">后台管理系统</div>
<el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content"> <el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content">
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="param.username" placeholder="username"> <el-input v-model="param.uname" placeholder="username">
<el-button slot="prepend" icon="el-icon-lx-people"></el-button> <el-button slot="prepend" icon="el-icon-lx-people"></el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -12,7 +12,7 @@
<el-input <el-input
type="password" type="password"
placeholder="password" placeholder="password"
v-model="param.password" v-model="param.upass"
@keyup.enter.native="submitForm()" @keyup.enter.native="submitForm()"
> >
<el-button slot="prepend" icon="el-icon-lx-lock"></el-button> <el-button slot="prepend" icon="el-icon-lx-lock"></el-button>
@ -28,16 +28,17 @@
</template> </template>
<script> <script>
import {login} from '../../api/index'
export default { export default {
data: function() { data: function() {
return { return {
param: { param: {
username: 'admin', uname: '',
password: '123123', upass: '',
}, },
rules: { rules: {
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }], uname: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
password: [{ required: true, message: '请输入密码', trigger: 'blur' }], upass: [{ required: true, message: '请输入密码', trigger: 'blur' }],
}, },
}; };
}, },
@ -45,9 +46,17 @@ export default {
submitForm() { submitForm() {
this.$refs.login.validate(valid => { this.$refs.login.validate(valid => {
if (valid) { if (valid) {
this.$message.success('登录成功'); login(this.param).then(res=>{
localStorage.setItem('ms_username', this.param.username); console.info(res)
this.$router.push('/'); if (res.code==100) {
this.$message.success('登录成功');
localStorage.setItem('ms_username', res.username);
localStorage.setItem('ms_id', res.uid);
this.$router.push('/');
}else{
this.$message.error(res.msg);
}
})
} else { } else {
this.$message.error('请输入账号和密码'); this.$message.error('请输入账号和密码');
console.log('error submit!!'); console.log('error submit!!');

109
src/components/page/OperationManagement/announcementConfiguration.vue

@ -10,21 +10,21 @@
</div> </div>
<div class="container"> <div class="container">
<div class="handle-box"> <div class="handle-box">
<el-input placeholder="公告标题" class="handle-input mr10"></el-input> <el-input placeholder="公告标题" class="handle-input mr10" v-model="query.title"></el-input>
<el-select placeholder="发布人员" class="handle-select mr10"> <el-select placeholder="发布人员" class="handle-select mr10" v-model="query.auditID">
<el-option key="1" label="广东省" value="广东省"></el-option> <el-option key="1" label="广东省" value="广东省"></el-option>
<el-option key="2" label="湖南省" value="湖南省"></el-option> <el-option key="2" label="湖南省" value="湖南省"></el-option>
</el-select> </el-select>
<el-date-picker <el-date-picker
class="mr10" class="mr10"
v-model="query.time" v-model="query.time"
type="datetimerange" type="datetimerange"
:picker-options="pickerOptions" :picker-options="pickerOptions"
range-separator="至" range-separator="至"
value-format="yyyy-MM-dd h:m:s" value-format="yyyy-MM-dd h:m:s"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
align="right" align="right"
> >
</el-date-picker> </el-date-picker>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
@ -38,7 +38,7 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column> <el-table-column prop="id" label="序号" width="55" align="center"></el-table-column>
<el-table-column prop="name" label="发布日期"></el-table-column> <el-table-column prop="name" label="发布日期" :formatter="formatDate"></el-table-column>
<el-table-column label="公告标题" prop="name"></el-table-column> <el-table-column label="公告标题" prop="name"></el-table-column>
<el-table-column prop="address" label="法人名称"></el-table-column> <el-table-column prop="address" label="法人名称"></el-table-column>
<el-table-column label="意见内容" prop="name"></el-table-column> <el-table-column label="意见内容" prop="name"></el-table-column>
@ -64,8 +64,8 @@
<el-pagination <el-pagination
background background
layout="total, prev, pager, next" layout="total, prev, pager, next"
:current-page="query.pageIndex" :current-page="query.page"
:page-size="query.pageSize" :page-size="query.limit"
:total="pageTotal" :total="pageTotal"
@current-change="handlePageChange" @current-change="handlePageChange"
></el-pagination> ></el-pagination>
@ -91,16 +91,17 @@
</template> </template>
<script> <script>
import { fetchData } from '../../../api/index'; import { getNoticeList } from '../../../api/index';
export default { export default {
name: 'basetable', name: 'basetable',
data() { data() {
return { return {
query: { query: {
address: '', auditID: '',
name: '', title: '',
pageIndex: 1, page: 1,
pageSize: 10 limit: 10,
time:''
}, },
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
@ -111,35 +112,35 @@ export default {
idx: -1, idx: -1,
id: -1, id: -1,
pickerOptions: { pickerOptions: {
shortcuts: [ shortcuts: [
{ {
text: "最近一周", text: "最近一周",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
{ {
text: "最近一个月", text: "最近一个月",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
{ {
text: "最近三个月", text: "最近三个月",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
], ],
}, },
}; };
}, },
@ -147,12 +148,16 @@ export default {
this.getData(); this.getData();
}, },
methods: { methods: {
//
formatDate(row,colnum){
return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss')
},
// easy-mock // easy-mock
getData() { getData() {
fetchData(this.query).then(res => { getNoticeList(this.query).then(res => {
// console.log(res); console.log(res);
this.tableData = res.list; this.tableData = res.list;
this.pageTotal = res.pageTotal || 50; this.pageTotal = res.pageTotal ;
}); });
}, },
// //
@ -190,7 +195,7 @@ export default {
}, },
// //
handlePageChange(val) { handlePageChange(val) {
this.$set(this.query, 'pageIndex', val); this.$set(this.query, 'page', val);
this.getData(); this.getData();
} }
} }

210
src/components/page/platformManagement/operationAccountManagement/index.vue

@ -9,40 +9,70 @@
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="container banner_title"> <div class="container banner_title">
<router-link to="/operationAccountManagement"> <div class="banner_title_item" @click="goPage('/platform/operationAccountManagement')">
<div class="banner_title_item">
<img src="../../../../assets/img/accountList.png" alt="" class="photo"> <img src="../../../../assets/img/accountList.png" alt="" class="photo">
<p>账号列表</p> <p>账号列表</p>
</div> </div>
</router-link> <div class="banner_title_item" @click="handleEdit">
<div class="banner_title_item">
<img src="../../../../assets/img/creatAccount.png" alt="" class="preview"> <img src="../../../../assets/img/creatAccount.png" alt="" class="preview">
<p>创建账号</p> <p>创建账号</p>
</div> </div>
<router-link to="/operationAccountManagement/operationalRole"> <div class="banner_title_item" @click="goPage('/platform/operationalRole')">
<div class="banner_title_item">
<img src="../../../../assets/img/operationalRole.png" alt="" class="preview"> <img src="../../../../assets/img/operationalRole.png" alt="" class="preview">
<p>运营角色</p> <p>运营角色</p>
</div> </div>
</router-link> <div class="banner_title_item" @click="goPage('/platform/roleSet')">
<router-link to="/operationAccountManagement/roleSet">
<div class="banner_title_item">
<img src="../../../../assets/img/roleSet.png" alt="" class="preview"> <img src="../../../../assets/img/roleSet.png" alt="" class="preview">
<p>角色权限</p> <p>角色权限</p>
</div> </div>
</router-link>
</div> </div>
<div class="container banner_content"> <div class="container banner_content">
<router-view></router-view> <router-view v-if="refreshNowPage"></router-view>
</div> </div>
<!-- 编辑弹出框 --> <!-- 编辑弹出框 -->
<el-dialog title="编辑" :visible.sync="editVisible" width="30%"> <el-dialog title="创建账号" :visible.sync="editVisible" width="30%" center>
<el-form ref="form" :model="form" label-width="70px"> <el-form ref="form" :model="query" label-width="80px" :rules="queryRules">
<el-form-item label="用户名"> <el-form-item label="部门名称" prop="department_id">
<el-input v-model="form.name"></el-input> <el-select v-model="query.department_id" placeholder="请选择" @change="positionList">
<el-option
v-for="item in tableData"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="地址"> <el-form-item label="职位名称" prop="position_id">
<el-input v-model="form.address"></el-input> <el-select v-model="query.position_id" placeholder="请选择">
<el-option
v-for="item in tableData2"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号角色" prop="role_id">
<el-select v-model="query.role_id" placeholder="请选择">
<el-option
v-for="item in tableData1"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号名称" prop="username">
<el-input v-model="query.username" class="form_input" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="登录账号" prop="uname">
<el-input v-model="query.uname" class="form_input" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="登录密码" prop="upass">
<el-input v-model="query.upass" class="form_input" type="password" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPwd">
<el-input v-model="query.confirmPwd " class="form_input" type="password" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@ -54,108 +84,96 @@
</template> </template>
<script> <script>
import { fetchData } from '../../../../api/index'; import { departmentList,positionList,grouplist ,addAdmin} from '../../../../api/index';
export default { export default {
name: 'operationAccountManagement', name: 'operationAccountManagement',
data() { data() {
return { return {
refreshNowPage:true,
query: { query: {
address: '', uname: '',
name: '', upass: '',
pageIndex: 1, role_id: '',
pageSize: 10 username:'',
position_id:'',
department_id:'',
confirmPwd:'',
}, },
tableData: [], tableData: [],
multipleSelection: [], tableData1: [],
delList: [], tableData2: [],
editVisible: false, editVisible: false,
pageTotal: 0, queryRules:{
form: {}, uname: [{ required: true, message: '请输入登录账号', trigger: 'blur' }],
idx: -1, upass: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
id: -1, confirmPwd: [{ required: true, message: '请输入确认密码', trigger: 'blur' }],
pickerOptions: { username: [{ required: true, message: '请输入账号名称', trigger: 'blur' }],
shortcuts: [ position_id: [{ required: true, message: '请选择职位名称', trigger: 'blur' }],
{ department_id: [{ required: true, message: '请选择部门名称', trigger: 'blur' }],
text: "最近一周", role_id: [{ required: true, message: '请输选择账号角色', trigger: 'blur' }],
onClick(picker) { }
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
}; };
}, },
created() { created() {
this.getData(); this.getData();
this.grouplist()
}, },
methods: { methods: {
// easy-mock positionList(){
getData() { let data={id:this.query.department_id}
fetchData(this.query).then(res => { positionList(data).then(res => {
// console.log(res); // console.log(res);
this.tableData = res.list; if (res.code==100) {
this.pageTotal = res.pageTotal || 50; this.tableData2 = res.data;
}
}); });
}, },
// goPage(url){
handleSearch() { this.$router.push(url)
this.$set(this.query, 'pageIndex', 1);
this.getData();
}, },
// // easy-mock
handleDelete(index, row) { getData() {
// departmentList().then(res => {
this.$confirm('确定要删除吗?', '提示', { // console.log(res);
type: 'warning' if (res.code==100) {
}) this.tableData = res.data;
.then(() => { }
this.$message.success('删除成功'); });
this.tableData.splice(index, 1);
})
.catch(() => {});
}, },
// grouplist(){
handleSelectionChange(val) { grouplist().then(res => {
this.multipleSelection = val; // console.log(res);
if (res.code==100) {
this.tableData1 = res.data;
}
});
}, },
// //
handleEdit(index, row) { handleEdit() {
this.idx = index;
this.form = row;
this.editVisible = true; this.editVisible = true;
}, },
// //
saveEdit() { saveEdit() {
this.editVisible = false; this.$refs.form.validate(valid => {
this.$message.success(`修改第 ${this.idx + 1} 行成功`); if (valid) {
this.$set(this.tableData, this.idx, this.form); if (this.query.confirmPwd==this.query.upass) {
addAdmin(this.query).then(res => {
console.log(res);
if (res.code==100) {
this.editVisible = false;
this.$message.success(`添加成功~`);
this.refreshNowPage=false;
setTimeout(() => {
this.refreshNowPage = true;
}, 10);
}
});
}else{
this.$message.error('登录密码与确认密码不一致~');
}
}
})
}, },
//
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getData();
}
} }
}; };
</script> </script>
@ -209,4 +227,10 @@ export default {
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.form_input{
width: 215px;
}
.el-dialog__footer{
text-align: center;
}
</style> </style>

388
src/components/page/platformManagement/operationAccountManagement/list.vue

@ -1,37 +1,49 @@
<template> <template>
<div> <div>
<div class="handle-box"> <div class="handle-box">
<el-input placeholder="请输入机构名称" class="handle-input mr10"></el-input> <el-input placeholder="请输入账号名称" class="handle-input mr10" v-model="query.username"></el-input>
<el-input placeholder="请输入登录账号" class="handle-input mr10"></el-input> <el-input placeholder="请输入登录账号" class="handle-input mr10" v-model="query.uname"></el-input>
<el-select placeholder="部门名称" class="handle-select mr10"> <el-select placeholder="部门名称" class="handle-select mr10" v-model="query.department_id" @change="positionList(0)">
<el-option key="1" label="广东省" value="广东省"></el-option> <el-option
<el-option key="2" label="湖南省" value="湖南省"></el-option> v-for="item in tableData3"
</el-select> :key="item.id"
<el-select placeholder="职位名称" class="handle-select mr10"> :label="item.name"
<el-option key="1" label="广东省" value="广东省"></el-option> :value="item.id">
<el-option key="2" label="湖南省" value="湖南省"></el-option> </el-option>
</el-select> </el-select>
<el-select placeholder="账号角色" class="handle-select mr10"> <el-select placeholder="职位名称" class="handle-select mr10" v-model="query.position_id">
<el-option key="1" label="广东省" value="广东省"></el-option> <el-option
<el-option key="2" label="湖南省" value="湖南省"></el-option> v-for="item in tableData2"
</el-select> :key="item.id"
<el-select placeholder="账号状态" class="handle-select mr10"> :label="item.name"
<el-option key="1" label="广东省" value="广东省"></el-option> :value="item.id">
<el-option key="2" label="湖南省" value="湖南省"></el-option> </el-option>
</el-select> </el-select>
<el-date-picker <el-select placeholder="账号角色" class="handle-select mr10" v-model="query.role_id">
class="mr10" <el-option
v-model="query.time" v-for="item in tableData1"
type="datetimerange" :key="item.id"
:picker-options="pickerOptions" :label="item.name"
range-separator="至" :value="item.id">
value-format="yyyy-MM-dd h:m:s" </el-option>
start-placeholder="开始日期" </el-select>
end-placeholder="结束日期" <el-select placeholder="账号状态" class="handle-select mr10" v-model="query.status">
align="right" <el-option key="1" label="启用" :value="0"></el-option>
> <el-option key="2" label="禁用" :value="1"></el-option>
</el-date-picker> </el-select>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button> <el-date-picker
class="mr10"
v-model="query.date"
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
value-format="timestamp"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
>
</el-date-picker>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
</div> </div>
<el-table <el-table
:data="tableData" :data="tableData"
@ -41,20 +53,17 @@
header-cell-class-name="table-header" header-cell-class-name="table-header"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column> <el-table-column prop="uid" label="序号" width="55" align="center"></el-table-column>
<el-table-column prop="name" label="创建时间"></el-table-column> <el-table-column prop="create_time" label="创建时间" :formatter="formatDate"></el-table-column>
<el-table-column label="账户名称" prop="name"></el-table-column> <el-table-column label="账户名称" prop="username"></el-table-column>
<el-table-column prop="address" label="登录账号"></el-table-column> <el-table-column prop="uname" label="登录账号"></el-table-column>
<el-table-column label="部门名称" prop="name"></el-table-column> <el-table-column label="部门名称" prop="department_name"></el-table-column>
<el-table-column label="职位名称" prop="name"></el-table-column> <el-table-column label="职位名称" prop="position_name"></el-table-column>
<el-table-column label="账号角色" prop="name"></el-table-column> <el-table-column label="账号角色" prop="role_name"></el-table-column>
<el-table-column label="账号状态" prop="name"> <el-table-column label="账号状态" prop="status">
<template> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1" @change="editAdminChange(scope.row.uid)"></el-switch>
v-model="value1" </template>
>
</el-switch>
</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="280" align="center"> <el-table-column label="操作" width="280" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -64,7 +73,7 @@
>信息变更</el-button> >信息变更</el-button>
<el-button <el-button
type="text" type="text"
@click="handleDelete(scope.$index, scope.row)" @click="handleEdit1(scope.$index, scope.row)"
>重置密码</el-button> >重置密码</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -73,21 +82,57 @@
<el-pagination <el-pagination
background background
layout="total, prev, pager, next" layout="total, prev, pager, next"
:current-page="query.pageIndex" :current-page="query.page"
:page-size="query.pageSize" :page-size="query.limit"
:total="pageTotal" :total="pageTotal"
@current-change="handlePageChange" @current-change="handlePageChange"
></el-pagination> ></el-pagination>
</div> </div>
<!-- 编辑弹出框 --> <!-- 编辑弹出框 -->
<el-dialog title="编辑" :visible.sync="editVisible" width="30%"> <el-dialog title="信息变更" :visible.sync="editVisible" width="30%" center>
<el-form ref="form" :model="form" label-width="70px"> <el-form ref="form" :model="query1" label-width="90px" :rules="queryRules">
<el-form-item label="用户名"> <el-form-item label="部门名称:" prop="department_id">
<el-input v-model="form.name"></el-input> <el-select v-model="query1.department_id" placeholder="请选择" @change="positionList(1)">
<el-option
v-for="item in tableData3"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="职位名称:" prop="position_id">
<el-select v-model="query1.position_id" placeholder="请选择">
<el-option
v-for="item in tableData4"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号角色:" prop="role_id">
<el-select v-model="query1.role_id" placeholder="请选择">
<el-option
v-for="item in tableData1"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号名称:" prop="username">
<el-input v-model="query1.username" class="form_input" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="地址"> <el-form-item label="登录账号:" >
<el-input v-model="form.address"></el-input> <span>{{query1.uname}}</span>
</el-form-item>
<el-form-item label="账号状态:" prop="status">
<el-select placeholder="请选择" v-model="query1.status">
<el-option key="1" label="启用" :value="0"></el-option>
<el-option key="2" label="禁用" :value="1"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@ -95,78 +140,161 @@
<el-button type="primary" @click="saveEdit"> </el-button> <el-button type="primary" @click="saveEdit"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 编辑弹出框 -->
<el-dialog title="修改密码" :visible.sync="editVisible1" width="30%" center>
<el-form ref="form1" :model="query2" label-width="90px" :rules="queryRules">
<el-form-item label="旧密码" prop="before_pass">
<el-input v-model="query2.before_pass" class="form_input" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="新密码" prop="after_pass">
<el-input v-model="query2.after_pass" type="password" class="form_input" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPwd">
<el-input v-model="query2.confirmPwd " type="password" class="form_input" placeholder="请输入"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editVisible = false"> </el-button>
<el-button type="primary" @click="saveEdit1"> </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { fetchData } from '../../../../api/index'; import { getAdminlist ,editAdminChange,departmentList,positionList,grouplist,editAdmin ,editAdminPass} from '../../../../api/index';
import moment from 'moment'
export default { export default {
name:'operationList', name:'operationList',
data() { data() {
return { return {
query: { query: {
address: '', id: '',
name: '', page: 1,
pageIndex: 1, limit: 10,
pageSize: 10 date:[],
role_id: '',
position_id:'',
department_id:'',
uname: '',
username:''
},
query2:{
id:'',
confirmPwd:'',
after_pass:'',
before_pass:''
}, },
value1:true,
tableData: [], tableData: [],
multipleSelection: [], tableData1: [],
delList: [], tableData2: [],
tableData3: [],
tableData4:[],
editVisible: false, editVisible: false,
editVisible1: false,
pageTotal: 0, pageTotal: 0,
form: {}, query1: {},
idx: -1, queryRules:{
id: -1, uname: [{ required: true, message: '请输入登录账号', trigger: 'blur' }],
after_pass: [{ required: true, message: '请输入新密码', trigger: 'blur' }],
before_pass: [{ required: true, message: '请输入旧密码', trigger: 'blur' }],
confirmPwd: [{ required: true, message: '请输入确认密码', trigger: 'blur' }],
username: [{ required: true, message: '请输入账号名称', trigger: 'blur' }],
position_id: [{ required: true, message: '请选择职位名称', trigger: 'blur' }],
department_id: [{ required: true, message: '请选择部门名称', trigger: 'blur' }],
role_id: [{ required: true, message: '请输选择账号角色', trigger: 'blur' }],
status: [{ required: true, message: '请输选择账号状态', trigger: 'blur' }],
},
pickerOptions: { pickerOptions: {
shortcuts: [ shortcuts: [
{ {
text: "最近一周", text: "最近一周",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
{ {
text: "最近一个月", text: "最近一个月",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
{ {
text: "最近三个月", text: "最近三个月",
onClick(picker) { onClick(picker) {
const end = new Date(); const end = new Date();
const start = new Date(); const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]); picker.$emit("pick", [start, end]);
}, },
}, },
], ],
}, },
}; };
}, },
created() { created() {
this.getData(); this.getData();
this.departmentList();
this.grouplist()
}, },
methods: { methods: {
departmentList() {
departmentList().then(res => {
if (res.code==100) {
this.tableData3 = res.data;
}
});
},
grouplist(){
grouplist().then(res => {
if (res.code==100) {
this.tableData1 = res.data;
}
});
},
positionList(type){
let data={id:this.query.department_id}
positionList(data).then(res => {
if (res.code==100) {
if (type==1) {
this.tableData4 = res.data;
}else{
this.tableData2 = res.data;
}
}
});
},
editAdminChange(id){
let data={id:id}
editAdminChange(data).then(res => {
console.log(res);
if (res.code=100) {
this.$message.success('修改状态成功~')
}
});
},
//
formatDate(row,colnum){
return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss')
},
// easy-mock // easy-mock
getData() { getData() {
fetchData(this.query).then(res => { getAdminlist(this.query).then(res => {
// console.log(res); console.log(res);
this.tableData = res.list; this.tableData = res.list;
this.pageTotal = res.pageTotal || 50; this.pageTotal = res.count ;
}); });
}, },
// //
handleSearch() { handleSearch() {
this.$set(this.query, 'pageIndex', 1); this.$set(this.query, 'page', 1);
this.getData(); this.getData();
}, },
// //
@ -187,19 +315,66 @@ export default {
}, },
// //
handleEdit(index, row) { handleEdit(index, row) {
this.idx = index; let data={id:row.uid}
this.form = row; getAdminlist(data).then(res => {
this.editVisible = true; console.log(res);
if (res.code==100) {
this.query1 = res.list;
let data1={id:this.query1.department_id}
positionList(data1).then(res => {
console.info(res)
if (res.code==100) {
this.tableData4 = res.data;
this.editVisible = true;
}
});
}
});
},
handleEdit1(index, row){
this.query2.id=row.uid
this.editVisible1 = true;
},
saveEdit1(){
this.$refs.form1.validate(valid => {
if (valid) {
if (this.query.confirmPwd==this.query.upass) {
editAdminPass(this.query2).then(res => {
console.log(res);
if (res.code==100) {
this.editVisible1 = false;
this.$message.success(`修改密码成功~`);
Object.keys(this.query2).forEach(key=>{this.query2[key]=''})
}else{
this.$message.error(res.msg);
}
});
}else{
this.$message.error('新密码与确认密码不一致~');
}
}
})
}, },
// //
saveEdit() { saveEdit() {
this.editVisible = false; this.$refs.form.validate(valid => {
this.$message.success(`修改第 ${this.idx + 1} 行成功`); if (valid) {
this.$set(this.tableData, this.idx, this.form); editAdmin(this.query1).then(res => {
console.log(res);
if (res.code==100) {
this.editVisible = false;
this.$message.success(`修改成功~`);
this.getData()
}else{
this.$message.error(res.msg);
}
});
}
})
}, },
// //
handlePageChange(val) { handlePageChange(val) {
this.$set(this.query, 'pageIndex', val); this.$set(this.query, 'page', val);
this.getData(); this.getData();
} }
} }
@ -235,4 +410,7 @@ export default {
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.form_input{
width: 215px;
}
</style> </style>

220
src/components/page/platformManagement/operationAccountManagement/operationalRole.vue

@ -5,142 +5,142 @@
<div class="body_left"> <div class="body_left">
<p class="body_left_title">部门名称</p> <p class="body_left_title">部门名称</p>
<div class="body_left_content"> <div class="body_left_content">
<div class="body_left_content_item"> <div class="body_left_content_item" v-for="(item,index) in tableData" :key="index" @click="selectDepartment(index)">
<el-input placeholder="请输入机构名称" class="handle-input mr10"></el-input> <el-input placeholder="请输入机构名称" v-model="item.name" class="handle-input mr10" ></el-input>
<i class="el-icon-remove-outline" style="color:red"></i> <i class="el-icon-remove-outline" style="color:red" @click="deleteDepartment(index)"></i>
</div> </div>
<button class="body_add">+</button> <button class="body_add" @click="addDepartment">+</button>
</div> </div>
</div> </div>
<div class="body_right"> <div class="body_right" v-if="selectIndex!=null ">
<div class="body_right_title"> <div class="body_right_title">
<div class="body_right_title_left">职位名称</div> <div class="body_right_title_left">职位名称</div>
<div class="body_right_title_right">权限角色</div> <div class="body_right_title_right">权限角色</div>
</div> </div>
<div> <div>
<div class="body_right_item"> <!-- <template v-if="selectIndex"> -->
<el-input placeholder="请输入机构名称" class="handle-input mr10"></el-input> <div class="body_right_item" v-for="(item1,index1) in tableData[selectIndex].children" :key="index1">
<el-select placeholder="账号状态" class="handle-select mr10"> <el-input placeholder="请输入机构名称" class="handle-input mr10" v-model="item1.name"></el-input>
<el-option key="1" label="广东省" value="广东省"></el-option> <el-select placeholder="账号状态" class="handle-select mr10" v-model="item1.group_id">
<el-option key="2" label="湖南省" value="湖南省"></el-option> <el-option :label="item.name" :value="item.id" v-for="(item) in roleList" :key="item.id"></el-option>
</el-select> </el-select>
<i class="el-icon-remove-outline" style="color:red"></i> <i class="el-icon-remove-outline" style="color:red" @click="deletePosition(index1)"></i>
</div> </div>
<!-- </template> -->
</div> </div>
<button class="body_add body_add1">+</button> <button class="body_add body_add1" @click="addPosition">+</button>
</div> </div>
</div> </div>
<el-button type="primary">保存</el-button> <el-button type="primary" @click="updateDepartment">保存</el-button>
</div> </div>
</template> </template>
<script> <script>
import { fetchData } from '../../../../api/index'; import { getDepartment,grouplist,updateDepartment} from '../../../../api/index';
export default { export default {
name:'operationalRole', name:'operationalRole',
data() { data() {
return { return {
query: { query: {
address: '', pageIndex: 1,
name: '', pageSize: 10
pageIndex: 1, },
pageSize: 10 tableData: [
}, {name:'',children:[{name:'',group_id:''}]}
value1:true, ],
tableData: [], selectIndex:null,
multipleSelection: [], roleList:[]
delList: [],
editVisible: false,
pageTotal: 0,
form: {},
idx: -1,
id: -1,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
}; };
}, },
created() { created() {
this.getData(); this.getData();
this.grouplist()
}, },
methods: { methods: {
goBack(){ //
this.$router.go(-1); deletePosition(index){
}, if (this.tableData[this.selectIndex].children.length==1) {
// easy-mock this.tableData[this.selectIndex].children.map(item1=>{
getData() { item1.name='',
fetchData(this.query).then(res => { item1.group_id=''
// console.log(res); })
this.tableData = res.list; }else{
this.pageTotal = res.pageTotal || 50; this.tableData[this.selectIndex].children.splice(index,1);
}); }
}, },
// //
handleSearch() { addPosition(){
this.$set(this.query, 'pageIndex', 1); let data={name:'',group_id:''}
this.getData(); this.tableData[this.selectIndex].children.push(data)
}, },
// updateDepartment(){
handleDelete(index, row) { let data={data:this.tableData}
// updateDepartment(this.tableData).then(res => {
this.$confirm('确定要删除吗?', '提示', { console.log(res);
type: 'warning' if (res.code==100) {
this.$message.success('保存成功~')
}else{
this.$message.error(res.msg);
}
});
},
deleteDepartment(index){
if (this.tableData.length==1) {
this.tableData.map(item=>{
item.name='',
item.children.map(item1=>{
item1.name='',
item1.group_id=''
}) })
.then(() => { })
this.$message.success('删除成功'); }else{
this.tableData.splice(index, 1); this.tableData.splice(index,1);
}) if (this.selectIndex==index) {
.catch(() => {}); if (this.selectIndex==0) {
}, this.selectIndex=0
// }else{
handleSelectionChange(val) { this.selectIndex-=1
this.multipleSelection = val; }
}, }
//
handleEdit(index, row) {
this.idx = index;
this.form = row;
this.editVisible = true;
},
//
saveEdit() {
this.editVisible = false;
this.$message.success(`修改第 ${this.idx + 1} 行成功`);
this.$set(this.tableData, this.idx, this.form);
},
//
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getData();
} }
},
addDepartment(){
let data={name:'',children:[{name:'',group_id:''}]}
this.tableData.push(data)
},
grouplist(){
grouplist(this.query).then(res => {
// console.log(res);
if (res.code==100) {
this.roleList = res.data;
}
});
},
selectDepartment(index){
// console.info(index)
this.selectIndex=index
},
goBack(){
this.$router.go(-1);
},
// easy-mock
getData() {
getDepartment(this.query).then(res => {
console.log(res);
if (res.code==100) {
if (res.data.length!=0) {
this.tableData = res.data;
this.selectIndex=0
}
}
});
},
//
saveEdit() {
this.editVisible = false;
this.$message.success(`修改第 ${this.idx + 1} 行成功`);
this.$set(this.tableData, this.idx, this.form);
},
} }
}; };
</script> </script>

187
src/components/page/platformManagement/operationAccountManagement/roleSet.vue

@ -1,121 +1,102 @@
<template> <template>
<div> <div>
<el-page-header @back="goBack" content="运营角色"></el-page-header> <el-page-header @back="goBack" content="信息变更"></el-page-header>
<div class="form-box"> <div class="form-box">
<el-form ref="form" :model="form" label-width="80px"> <el-form ref="form" :model="query" label-width="90px" :rules="queryRules">
<el-form-item label="角色权限:"> <el-form-item label="角色权限:" prop="role_id">
<el-select v-model="form.region" placeholder="请选择"> <el-select v-model="query.role_id" placeholder="请选择">
<el-option key="bbk" label="步步高" value="bbk"></el-option> <el-option
<el-option key="xtc" label="小天才" value="xtc"></el-option> v-for="item in tableData"
<el-option key="imoo" label="imoo" value="imoo"></el-option> :key="item.id"
</el-select> :label="item.name"
</el-form-item> :value="item.id">
<el-form-item label="账户名称:"> </el-option>
<el-input v-model="form.name"></el-input> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="登录账号:"> <el-form-item label="账户名称:" prop="username">
<span>18083135555</span> <el-input v-model="query.username"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="绑定手机:"> <el-form-item label="登录账号:">
<el-input v-model="form.name"></el-input> <span>{{query.uname}}</span>
</el-form-item> </el-form-item>
<el-form-item label="账户类型:"> <!-- <el-form-item label="绑定手机:">
<el-select v-model="form.region" placeholder="请选择"> <el-input v-model="query.name"></el-input>
<el-option key="bbk" label="步步高" value="bbk"></el-option> </el-form-item> -->
<el-option key="xtc" label="小天才" value="xtc"></el-option> <el-form-item label="账号状态:" prop="status">
<el-option key="imoo" label="imoo" value="imoo"></el-option> <el-select placeholder="请选择" v-model="query.status">
</el-select> <el-option key="1" label="启用" :value="0"></el-option>
</el-form-item> <el-option key="2" label="禁用" :value="1"></el-option>
<el-form-item label="账号状态:"> </el-select>
<el-select v-model="form.region" placeholder="请选择"> </el-form-item>
<el-option key="bbk" label="步步高" value="bbk"></el-option> <el-form-item>
<el-option key="xtc" label="小天才" value="xtc"></el-option> <el-button type="primary" @click="onSubmit">保存</el-button>
<el-option key="imoo" label="imoo" value="imoo"></el-option> </el-form-item>
</el-select> </el-form>
</el-form-item> </div>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-form>
</div>
</div> </div>
</template> </template>
<script> <script>
import { getAdminlist ,grouplist,editAdmin} from '../../../../api/index';
export default { export default {
data() { data() {
return { return {
options: [ query: {
{ id: '',
value: 'guangdong', page: 1,
label: '广东省', limit: 10,
children: [ time:'',
{ role_id: '',
value: 'guangzhou', position_id:'',
label: '广州市', department_id:'',
children: [ uname: '',
{ username:''
value: 'tianhe', },
label: '天河区' tableData: [],
}, queryRules:{
{ username: [{ required: true, message: '请输入账号名称', trigger: 'blur' }],
value: 'haizhu', role_id: [{ required: true, message: '请输选择账号角色', trigger: 'blur' }],
label: '海珠区' status: [{ required: true, message: '请输选择账号状态', trigger: 'blur' }],
} },
]
},
{
value: 'dongguan',
label: '东莞市',
children: [
{
value: 'changan',
label: '长安镇'
},
{
value: 'humen',
label: '虎门镇'
}
]
}
]
},
{
value: 'hunan',
label: '湖南省',
children: [
{
value: 'changsha',
label: '长沙市',
children: [
{
value: 'yuelu',
label: '岳麓区'
}
]
}
]
}
],
form: {
name: '',
region: '',
date1: '',
date2: '',
delivery: true,
type: ['步步高'],
resource: '小天才',
desc: '',
options: []
}
}; };
}, },
created(){
this.query.id=localStorage.getItem('ms_id');
this.grouplist();
this.getData();
},
methods: { methods: {
// easy-mock
getData() {
getAdminlist(this.query).then(res => {
console.log(res);
this.query = res.list;
});
},
grouplist(){
grouplist().then(res => {
// console.log(res);
if (res.code==100) {
this.tableData = res.data;
}
});
},
goBack(){ goBack(){
this.$router.go(-1); this.$router.go(-1);
}, },
onSubmit() { onSubmit() {
this.$message.success('提交成功!'); this.$refs.form.validate(valid => {
if (valid) {
editAdmin(this.query).then(res => {
console.log(res);
if (res.code==100) {
this.$message.success(`修改成功~`);
}else{
this.$message.error(res.msg);
}
});
}
})
} }
} }
}; };

4
src/router/index.js

@ -214,12 +214,12 @@ export default new Router({
}, },
//平台管理 //平台管理
{ {
path: '/operationAccountManagement', path: '/platform',
component: () => import(/* webpackChunkName: "operationAccountManagement" */ '../components/page/platformManagement/operationAccountManagement/index.vue'), component: () => import(/* webpackChunkName: "operationAccountManagement" */ '../components/page/platformManagement/operationAccountManagement/index.vue'),
meta: { title: '运营账号管理' }, meta: { title: '运营账号管理' },
children:[ children:[
{ {
path: '', path: 'operationAccountManagement',
component: () => import(/* webpackChunkName: "operationAccountManagement" */ '../components/page/platformManagement/operationAccountManagement/list.vue'), component: () => import(/* webpackChunkName: "operationAccountManagement" */ '../components/page/platformManagement/operationAccountManagement/list.vue'),
meta: { title: '运营账号管理' }, meta: { title: '运营账号管理' },
}, },

Loading…
Cancel
Save