提交 ef5b1887 authored 作者: matian's avatar matian

代码提交

上级 68323c33
......@@ -26,7 +26,7 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1",
"eslint-plugin-vue": "^7.20.0",
"sass": "^1.43.3",
"sass": "^1.42.1",
"vite": "^2.6.10",
"vite-plugin-vue2": "^1.9.0",
"vue-template-compiler": "^2.6.14"
......
......@@ -30,7 +30,7 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1",
"eslint-plugin-vue": "^7.20.0",
"sass": "^1.43.3",
"sass": "^1.42.1",
"vite": "^2.6.10",
"vite-plugin-vue2": "^1.9.0",
"vue-template-compiler": "^2.6.14"
......
.app-card-item {
position: relative;
margin-left: 24px;
display: flex;
align-items: center;
padding: 16px 24px 16px 0;
border-top: 1px solid #dadce0;
cursor: pointer;
&:hover {
margin-left: 0;
padding-left: 24px;
background-color: rgba(128, 134, 139, 0.04);
&::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: -1px;
border-top: 1px solid #dadce0;
}
}
}
.app-card-item-label {
flex-basis: 156px;
margin-right: 24px;
font-weight: 500;
color: #5f6368;
}
.app-card-item-content {
flex: 1;
}
.avatar {
position: relative;
width: 60px;
height: 60px;
border-radius: 50%;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
}
.cover {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 20px;
background-color: rgba(32, 33, 36, 0.6);
color: #fff;
text-align: center;
}
}
.avatar-dialog-body {
text-align: center;
::v-deep .el-upload {
width: 288px;
height: 288px;
border-radius: 50%;
}
::v-deep .avatar-uploader-icon {
font-size: 40px;
line-height: 288px;
}
h2 {
margin-top: 24px;
line-height: 2rem;
font-size: 1.5rem;
letter-spacing: 0;
font-weight: 400;
}
p {
margin-top: 4px;
line-height: 1.5rem;
font-size: 1rem;
letter-spacing: 0.00625em;
font-weight: 400;
}
}
.avatar-dialog-footer {
display: flex;
::v-deep .el-button {
flex: 1;
}
}
::v-deep .el-dialog {
width: 90%;
max-width: 490px;
border-radius: 8px;
}
::v-deep .el-dialog__headerbtn {
font-size: 24px;
}
::v-deep .el-dialog__headerbtn .el-dialog__close {
color: #3c4043;
}
.dialog-footer {
text-align: right;
}
......@@ -4,10 +4,26 @@ import httpRequest from '@/utils/axios'
export function createCustomerGroup(data) {
return httpRequest.post('/api/customer/admin/v1/group', data)
}
// 获取客户组列表
export function getCustomerGroup(params) {
return httpRequest.get('/api/customer/admin/v1/groups', params)
}
// 获取客户
export function customerDetail(params) {
return httpRequest.get(`/api/customer/admin/v1/${params.group_id}/group-customers`, params)
}
// 获取员工
export function employeeDetail(params) {
return httpRequest.get(`/api/customer/admin/v1/${params.group_id}/group-staffs`, params)
}
//获取客户列表
export function getEmployeeList(params) {
return httpRequest.get(`/api/customer/admin/v1/${params.group_id}/customer`, params)
}
// 编辑客户组
export function editCustomerGroup(id, data) {
return httpRequest.put(`/api/customer/admin/v1/group/${id}`, data)
......@@ -16,10 +32,7 @@ export function editCustomerGroup(id, data) {
export function delCustomerGroup(id, data) {
return httpRequest.delete(`/api/customer/admin/v1/group/${id}`, data)
}
// 客户组详情
export function customerGroupDetail(id, params) {
return httpRequest.get(`/api/customer/admin/v1/group/${id}`, params)
}
// 添加客户
export function createCustomer(group_id, data) {
return httpRequest.post(`/api/customer/admin/v1/${group_id}/customer-to-group`, data)
......
......@@ -12,28 +12,27 @@
</template>
<script>
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import { getEmployeeList } from '../api'
export default {
data() {
return {
multipleSelection: []
}
},
components: { AppCard, AppList },
computed: {
// 列表配置
tableOptions() {
return {
// remote: {
// httpRequest: getStudentList,
// params: {
// personal_name: '',
// telephone: '',
// id: '',
// sno: ''
// }
// },
remote: {
httpRequest: getEmployeeList,
params: {
personal_name: '',
telephone: '',
id: '',
sno: ''
}
},
filters: [
{
type: 'input',
......
......@@ -15,8 +15,7 @@
</template>
<script>
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import { customerDetail } from '../api'
import AddCustomer from '../components/AddCustomer.vue'
export default {
data() {
......@@ -24,40 +23,36 @@ export default {
isShowDialog: false
}
},
components: { AppList, AppCard, AddCustomer },
components: { AddCustomer },
props: {
id: {
type: String,
default: ''
}
},
computed: {
// 列表配置
tableOptions() {
return {
// remote: {
// httpRequest: getStudentList,
// params: {
// personal_name: '',
// telephone: '',
// id: '',
// sno: ''
// }
// },
remote: {
httpRequest: customerDetail,
params: {
created_by: '',
name: '',
group_id: this.id
}
},
columns: [
{ label: '客户名称', prop: 'customer_name', align: 'center' },
{ label: '客户名称', prop: 'name', align: 'center' },
{ label: '创建时间', prop: 'created_at', align: 'center' },
{ label: '创建人', prop: 'created_by', align: 'center' },
{ label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' }
],
data: [
{
group_name: '1213'
}
]
}
}
},
mounted() {},
methods: {
success() {
// this.$parent.$parent.getDetail()
......
<template>
<app-card>
<app-list v-bind="tableOptions" ref="list">
<template>
<el-row style="margin-bottom: 20px">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="isShowDialog = true">添加员工</el-button>
</el-row>
</template>
<template v-slot:table-x="{ row }">
<el-button type="text" @click="onRemove(row)">删除</el-button>
</template>
</app-list>
<AddEmployees :visible.sync="isShowDialog" @success="success" />
</app-card>
<app-card>
<app-list v-bind="tableOptions" ref="list">
<template>
<el-row style="margin-bottom: 20px">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="isShowDialog = true">添加员工</el-button>
</el-row>
</template>
<template v-slot:table-x="{ row }">
<el-button type="text" @click="onRemove(row)">删除</el-button>
</template>
</app-list>
<AddEmployees :visible.sync="isShowDialog" @success="success" />
</app-card>
</template>
<script>
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import AddEmployees from '../components/AddEmployees.vue'
import { employeeDetail } from '../api'
export default {
data() {
return {
......@@ -35,33 +36,27 @@ export default {
// 列表配置
tableOptions() {
return {
// remote: {
// httpRequest: getStudentList,
// params: {
// personal_name: '',
// telephone: '',
// id: '',
// sno: ''
// }
// },
// data: this.detail,
remote: {
httpRequest: employeeDetail,
params: {
group_id: this.id
}
},
columns: [
{ label: '员工姓名', prop: 'group_name', align: 'center' },
{ label: '手机号', prop: 'sub_mobile', align: 'center' },
{ label: '员工姓名', prop: 'username', align: 'center' },
{ label: '手机号', prop: 'mobile', align: 'center' },
{ label: '创建时间', prop: 'created_at', align: 'center' },
{ label: '创建人', prop: 'created_by', align: 'center' },
{ label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' }
],
data: [
{
group_name: '1213'
}
]
}
}
},
methods: {
success() {
// this.$parent.$parent.getDetail()
this.$parent.$parent.getDetail()
},
// 删除
onRemove(row) {
......
......@@ -10,7 +10,7 @@ const routes = [
meta: { title: '客户组管理' }
},
{
name: 'update',
name: 'detail',
path: 'customergroup/detail',
component: () => import('./views/Detail.vue'),
meta: { title: '客户组详情' }
......
<template>
<div>
<el-tabs type="card">
<el-tab-pane label="客户">
<Customer :id="id" />
</el-tab-pane>
<el-tab-pane label="员工">
<Employees :id="id" />
</el-tab-pane>
<el-tabs type="card" v-model="tabsActive">
<el-tab-pane label="客户" name="customer"> <Customer :id="id" /> </el-tab-pane>
<el-tab-pane label="员工" name="employees" lazy><Employees :id="id" /> </el-tab-pane>
</el-tabs>
</div>
</template>
......@@ -17,23 +13,19 @@ import Employees from '../components/Employees.vue'
export default {
data() {
return {
id: ''
tabsActive: 'customer'
}
},
computed: {
id() {
return this.$route.query.id
}
},
components: {
Customer,
Employees
},
mounted() {
this.id = this.$route.query.id
this.getDetail()
},
methods: {
getDetail() {
// getGroupDetail().then(res => {
// })
}
}
methods: {}
}
</script>
......
......@@ -7,9 +7,9 @@
</el-row>
</template>
<template v-slot:table-x="{ row }">
<router-link :to="{ path: 'customergroup/detail', query: { id: row.id } }">
<el-button type="text" style="margin-left: 10px">查看</el-button>
</router-link>
<!-- <router-link :to="{ name: 'update', query: { id: row.id } }"> -->
<el-button type="text" style="margin-left: 10px" @click="toDetail(row)">查看</el-button>
<!-- </router-link> -->
<el-button type="text" style="margin-left: 10px" @click="edit(row)">编辑</el-button>
<el-button type="text" @click="onRemove(row)" style="margin-left: 10px">删除</el-button>
</template>
......@@ -21,12 +21,10 @@
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import AddCustomerGroup from '../components/AddCustomerGroup.vue'
import { getCustomerGroup } from '../api'
export default {
components: { AppCard, AppList, AddCustomerGroup },
components: { AddCustomerGroup },
data() {
return {
id: '',
......@@ -56,6 +54,14 @@ export default {
}
},
methods: {
toDetail(row) {
this.$router.push({
name: 'detail',
query: {
id: row.id
}
})
},
addGroup() {
this.isShowDialog = true
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论