Commit a3917a65 by baihong

add:管理员增删改查

parent 1ce24c12
...@@ -60,4 +60,20 @@ export const getActivityConfigByPay = (data) => { ...@@ -60,4 +60,20 @@ export const getActivityConfigByPay = (data) => {
} }
export const delGroups = (id) => { export const delGroups = (id) => {
return $http.delete('/cms/groups/'+id) return $http.delete('/cms/groups/'+id)
}
//管理员列表
export const admins = (data) => {
return $http.get('/cms/admins', data)
}
export const addAdmins = (data) => {
return $http.postObj('/cms/admins', data)
}
export const updateAdmins = (id,data) => {
return $http.putObj('/cms/admins/'+id, data)
}
export const adminsDe = (data) => {
return $http.get('/cms/admins/'+data)
}
export const delAdmins = (id) => {
return $http.delete('/cms/admins/'+id)
} }
\ No newline at end of file
...@@ -13,165 +13,130 @@ ...@@ -13,165 +13,130 @@
placeholder="请输入" placeholder="请输入"
></Input> ></Input>
</FormItem> </FormItem>
<FormItem label="联系方式" prop="name"> <FormItem label="联系方式" prop="mobile">
<Input <Input
style="width:60%" style="width:60%"
v-model="formValidate.name" v-model="formValidate.mobile"
placeholder="请输入" placeholder="请输入"
></Input> ></Input>
</FormItem> </FormItem>
<FormItem label="管理员账号" prop="name"> <FormItem label="管理员账号" prop="account">
<Input <Input
style="width:60%" style="width:60%"
v-model="formValidate.name" v-model="formValidate.account"
placeholder="请输入" placeholder="请输入"
></Input> ></Input>
</FormItem> </FormItem>
<FormItem label="密码" prop="name"> <FormItem label="密码" prop="password">
<Input <Input
style="width:60%" style="width:60%"
v-model="formValidate.name" v-model="formValidate.password"
placeholder="请输入" placeholder="请输入"
></Input> ></Input>
</FormItem> </FormItem>
<FormItem label="权限信息" prop="name"> <FormItem label="管理员身份" prop="group_uuid">
<Tree :data="data4" show-checkbox multiple></Tree> <Select v-model="formValidate.group_uuid" style="width: 150px" placeholder="请选择">
<Option v-for="i in groupsList" :key="i.uuid" :value="i.uuid">{{
i.name
}}</Option>
</Select>
</FormItem> </FormItem>
</Form> </Form>
<div class="btn"> <div class="btn">
<Button type="primary" @click="$router.go(-1)">确定</Button> <Button type="primary" @click="handleSubmit('formValidate')">确定</Button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {
groups,
addAdmins,
updateAdmins,
adminsDe
} from "@/api/clock/activityClocks";
export default { export default {
data() { data() {
return { return {
data4: [ groupsList: [],
{
title: "parent 1",
expand: true,
selected: true,
children: [
{
title: "parent 1-1",
expand: true,
children: [
{
title: "leaf 1-1-1",
disabled: true
},
{
title: "leaf 1-1-2"
}
]
},
{
title: "parent 1-2",
expand: true,
children: [
{
title: "leaf 1-2-1",
checked: true
},
{
title: "leaf 1-2-1"
}
]
}
]
}
],
formValidate: { formValidate: {
name: "", name: "",
mail: "", mobile: "",
city: "", account: "",
gender: "", password: "",
interest: [], group_uuid: ""
date: "",
time: "",
desc: ""
}, },
ruleValidate: { ruleValidate: {
name: [ name: [
{ {
required: true, required: true,
message: "The name cannot be empty", message: "请输入管理员姓名",
trigger: "blur" trigger: "blur"
} }
], ],
mail: [ mobile: [
{ {
required: true, required: true,
message: "Mailbox cannot be empty", message: "请输入联系方式",
trigger: "blur" trigger: "blur"
},
{ type: "email", message: "Incorrect email format", trigger: "blur" }
],
city: [
{
required: true,
message: "Please select the city",
trigger: "change"
} }
], ],
gender: [ account: [
{ required: true, message: "Please select gender", trigger: "change" }
],
interest: [
{ {
required: true, required: true,
type: "array", message: "请输入管理员账号",
min: 1, trigger: "blur"
message: "Choose at least one hobby",
trigger: "change"
},
{
type: "array",
max: 2,
message: "Choose two hobbies at best",
trigger: "change"
} }
], ],
date: [ password: [
{ {
required: true, required: true,
type: "date", message: "请输入密码",
message: "Please select the date", trigger: "blur"
trigger: "change"
} }
], ],
time: [ group_uuid: [
{ {
required: true, required: true,
type: "string", message: "请选择管理员身份",
message: "Please select time",
trigger: "change" trigger: "change"
} }
],
desc: [
{
required: true,
message: "Please enter a personal introduction",
trigger: "blur"
},
{
type: "string",
min: 20,
message: "Introduce no less than 20 words",
trigger: "blur"
}
] ]
} }
}; };
}, },
mounted() {
this.search();
if (this.$route.query.id) {
adminsDe(this.$route.query.id).then(res => {
this.formValidate = Object.assign(this.formValidate, res);
});
}
},
methods: { methods: {
search() {
let params = {
language: "cn",
page_index: 1,
page_size: 100
};
groups(params).then(res => {
this.groupsList = res.data;
});
},
handleSubmit(name) { handleSubmit(name) {
this.$refs[name].validate(valid => { this.$refs[name].validate(valid => {
if (valid) { if (valid) {
this.$Message.success("Success!"); if (this.$route.query.id) {
} else { updateAdmins(this.$route.query.id, this.formValidate).then(res => {
this.$Message.error("Fail!"); this.$Message.success("编辑成功!");
this.$router.push({ path: "/admin/list"});
});
} else {
addAdmins(this.formValidate).then(res => {
this.$Message.success("新增成功!");
this.$router.push({ path: "/admin/list"});
});
}
} }
}); });
}, },
......
...@@ -4,84 +4,106 @@ ...@@ -4,84 +4,106 @@
<div class="left"> <div class="left">
管理员搜索: 管理员搜索:
<Input <Input
v-model="keyword"
style="width:200px" style="width:200px"
enter-button enter-button
placeholder="请输入" placeholder="请输入"
/> />
<Button type="primary" @click="goDetail">查 询</Button> <Button type="primary" @click="goDetail">查 询</Button>
<Button type="primary" ghost>重 置</Button> <Button type="primary" ghost>重 置</Button>
<Button type="primary" @click="goAdd">新增管理员</Button> <Button type="primary" @click="goAdd">新增管理员</Button>
</div> </div>
</div> </div>
<Table :loading="$store.state.app.isLoading" border ref="selection" :columns="columns" :data="data"> <Table
<template slot-scope="{ row }" slot="name"> :loading="$store.state.app.isLoading"
<span>{{ row.details.name }}</span> border
</template> ref="selection"
<template slot-scope="{ row }" slot="title"> :columns="columns"
<span>{{ row.details.title }}</span> :data="data"
</template> >
<template slot-scope="{ row }" slot="created_at">
<span>{{ row.created_at | format}}</span>
</template>
<template slot-scope="{ row }" slot="enable">
<i-switch
:value="row.is_enable === 1 ? true : false"
@on-change="
value => {
change(value, row);
}
"
/>
</template>
<template slot-scope="{ row }" slot="action"> <template slot-scope="{ row }" slot="action">
<a @click="edit(row)">编辑</a> <a @click="edit(row)">编辑</a>
</template> <a style="margin-left:10px" @click="del(row.uuid)">删除</a>
<template slot-scope="{ row }" slot="edit">
<a @click="goTheme(row)">编辑</a>
</template> </template>
</Table> </Table>
<Pager
class="margin-top-10"
:config="config"
@on-change="handlePager"
></Pager>
</div> </div>
</template> </template>
<script> <script>
import { getScenes, delScenes, editScenes } from '@/api/scenes' import { admins, delAdmins } from "@/api/clock/activityClocks";
import Pager from "@/view/common/Pager.vue";
export default { export default {
name: 'categories', name: "categories",
components: { components: {
Pager
}, },
data () { data() {
return { return {
keyword: "",
config: { total: 0, size: 10, current: 1 },
pageIndex: 1,
pageSize: 10,
data: [], data: [],
columns: [ columns: [
{ {
title: '管理员姓名', title: "管理员姓名",
key: 'created_at' key: "name"
}, },
{ {
title: '联系方式', title: "联系方式",
slot: 'name' key: "mobile"
}, },
{ {
title: '管理员账号', title: "管理员账号",
slot: 'title' key: "account"
}, },
{ {
title: '操作', title: "操作",
slot: 'action' slot: "action"
} }
] ]
} };
}, },
methods: { methods: {
goAdd () { search() {
this.$router.push({ path: '/admin/add', query: { id: 'new' } }) let params = {
keyword: this.keyword,
language: "cn",
page_index: this.pageIndex,
page_size: this.pageSize
};
admins(params).then(res => {
this.config.total = res.total;
this.data = res.data;
});
},
handlePager(pager) {
this.pageIndex = pager.current;
this.pageSize = pager.size;
this.search();
},
del(id) {
delAdmins(id).then(res => {
this.$Message.success("删除成功");
this.search();
});
},
edit(p) {
this.$router.push({ path: "/admin/add", query: { id: p.uuid } });
},
goAdd() {
this.$router.push({ path: "/admin/add" });
} }
}, },
mounted () { mounted() {
this.search();
} }
} };
</script> </script>
<style lang="less"></style> <style lang="less"></style>
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