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

代码提交

上级 68323c33
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1", "eslint-plugin-promise": "^5.1.1",
"eslint-plugin-vue": "^7.20.0", "eslint-plugin-vue": "^7.20.0",
"sass": "^1.43.3", "sass": "^1.42.1",
"vite": "^2.6.10", "vite": "^2.6.10",
"vite-plugin-vue2": "^1.9.0", "vite-plugin-vue2": "^1.9.0",
"vue-template-compiler": "^2.6.14" "vue-template-compiler": "^2.6.14"
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1", "eslint-plugin-promise": "^5.1.1",
"eslint-plugin-vue": "^7.20.0", "eslint-plugin-vue": "^7.20.0",
"sass": "^1.43.3", "sass": "^1.42.1",
"vite": "^2.6.10", "vite": "^2.6.10",
"vite-plugin-vue2": "^1.9.0", "vite-plugin-vue2": "^1.9.0",
"vue-template-compiler": "^2.6.14" "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' ...@@ -4,10 +4,26 @@ import httpRequest from '@/utils/axios'
export function createCustomerGroup(data) { export function createCustomerGroup(data) {
return httpRequest.post('/api/customer/admin/v1/group', data) return httpRequest.post('/api/customer/admin/v1/group', data)
} }
// 获取客户组列表 // 获取客户组列表
export function getCustomerGroup(params) { export function getCustomerGroup(params) {
return httpRequest.get('/api/customer/admin/v1/groups', 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) { export function editCustomerGroup(id, data) {
return httpRequest.put(`/api/customer/admin/v1/group/${id}`, data) return httpRequest.put(`/api/customer/admin/v1/group/${id}`, data)
...@@ -16,10 +32,7 @@ export function editCustomerGroup(id, data) { ...@@ -16,10 +32,7 @@ export function editCustomerGroup(id, data) {
export function delCustomerGroup(id, data) { export function delCustomerGroup(id, data) {
return httpRequest.delete(`/api/customer/admin/v1/group/${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) { export function createCustomer(group_id, data) {
return httpRequest.post(`/api/customer/admin/v1/${group_id}/customer-to-group`, data) return httpRequest.post(`/api/customer/admin/v1/${group_id}/customer-to-group`, data)
......
...@@ -12,28 +12,27 @@ ...@@ -12,28 +12,27 @@
</template> </template>
<script> <script>
import AppList from '@/components/base/AppList.vue' import { getEmployeeList } from '../api'
import AppCard from '@/components/base/AppCard.vue'
export default { export default {
data() { data() {
return { return {
multipleSelection: [] multipleSelection: []
} }
}, },
components: { AppCard, AppList },
computed: { computed: {
// 列表配置 // 列表配置
tableOptions() { tableOptions() {
return { return {
// remote: { remote: {
// httpRequest: getStudentList, httpRequest: getEmployeeList,
// params: { params: {
// personal_name: '', personal_name: '',
// telephone: '', telephone: '',
// id: '', id: '',
// sno: '' sno: ''
// } }
// }, },
filters: [ filters: [
{ {
type: 'input', type: 'input',
......
...@@ -15,8 +15,7 @@ ...@@ -15,8 +15,7 @@
</template> </template>
<script> <script>
import AppList from '@/components/base/AppList.vue' import { customerDetail } from '../api'
import AppCard from '@/components/base/AppCard.vue'
import AddCustomer from '../components/AddCustomer.vue' import AddCustomer from '../components/AddCustomer.vue'
export default { export default {
data() { data() {
...@@ -24,40 +23,36 @@ export default { ...@@ -24,40 +23,36 @@ export default {
isShowDialog: false isShowDialog: false
} }
}, },
components: { AppList, AppCard, AddCustomer }, components: { AddCustomer },
props: { props: {
id: { id: {
type: String, type: String,
default: '' default: ''
} }
}, },
computed: { computed: {
// 列表配置 // 列表配置
tableOptions() { tableOptions() {
return { return {
// remote: { remote: {
// httpRequest: getStudentList, httpRequest: customerDetail,
// params: { params: {
// personal_name: '', created_by: '',
// telephone: '', name: '',
// id: '', group_id: this.id
// sno: '' }
// } },
// },
columns: [ columns: [
{ label: '客户名称', prop: 'customer_name', align: 'center' }, { label: '客户名称', prop: 'name', align: 'center' },
{ label: '创建时间', prop: 'created_at', align: 'center' }, { label: '创建时间', prop: 'created_at', align: 'center' },
{ label: '创建人', prop: 'created_by', align: 'center' }, { label: '创建人', prop: 'created_by', align: 'center' },
{ label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' } { label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' }
],
data: [
{
group_name: '1213'
}
] ]
} }
} }
}, },
mounted() {},
methods: { methods: {
success() { success() {
// this.$parent.$parent.getDetail() // this.$parent.$parent.getDetail()
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
import AppList from '@/components/base/AppList.vue' import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue' import AppCard from '@/components/base/AppCard.vue'
import AddEmployees from '../components/AddEmployees.vue' import AddEmployees from '../components/AddEmployees.vue'
import { employeeDetail } from '../api'
export default { export default {
data() { data() {
return { return {
...@@ -35,33 +36,27 @@ export default { ...@@ -35,33 +36,27 @@ export default {
// 列表配置 // 列表配置
tableOptions() { tableOptions() {
return { return {
// remote: { // data: this.detail,
// httpRequest: getStudentList, remote: {
// params: { httpRequest: employeeDetail,
// personal_name: '', params: {
// telephone: '', group_id: this.id
// id: '', }
// sno: '' },
// }
// },
columns: [ columns: [
{ label: '员工姓名', prop: 'group_name', align: 'center' }, { label: '员工姓名', prop: 'username', align: 'center' },
{ label: '手机号', prop: 'sub_mobile', align: 'center' }, { label: '手机号', prop: 'mobile', align: 'center' },
{ label: '创建时间', prop: 'created_at', align: 'center' }, { label: '创建时间', prop: 'created_at', align: 'center' },
{ label: '创建人', prop: 'created_by', align: 'center' }, { label: '创建人', prop: 'created_by', align: 'center' },
{ label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' } { label: '操作', slots: 'table-x', align: 'center', width: '300', fixed: 'right' }
],
data: [
{
group_name: '1213'
}
] ]
} }
} }
}, },
methods: { methods: {
success() { success() {
// this.$parent.$parent.getDetail() this.$parent.$parent.getDetail()
}, },
// 删除 // 删除
onRemove(row) { onRemove(row) {
......
...@@ -10,7 +10,7 @@ const routes = [ ...@@ -10,7 +10,7 @@ const routes = [
meta: { title: '客户组管理' } meta: { title: '客户组管理' }
}, },
{ {
name: 'update', name: 'detail',
path: 'customergroup/detail', path: 'customergroup/detail',
component: () => import('./views/Detail.vue'), component: () => import('./views/Detail.vue'),
meta: { title: '客户组详情' } meta: { title: '客户组详情' }
......
<template> <template>
<div> <div>
<el-tabs type="card"> <el-tabs type="card" v-model="tabsActive">
<el-tab-pane label="客户"> <el-tab-pane label="客户" name="customer"> <Customer :id="id" /> </el-tab-pane>
<Customer :id="id" /> <el-tab-pane label="员工" name="employees" lazy><Employees :id="id" /> </el-tab-pane>
</el-tab-pane>
<el-tab-pane label="员工">
<Employees :id="id" />
</el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
...@@ -17,23 +13,19 @@ import Employees from '../components/Employees.vue' ...@@ -17,23 +13,19 @@ import Employees from '../components/Employees.vue'
export default { export default {
data() { data() {
return { return {
id: '' tabsActive: 'customer'
}
},
computed: {
id() {
return this.$route.query.id
} }
}, },
components: { components: {
Customer, Customer,
Employees Employees
}, },
mounted() { methods: {}
this.id = this.$route.query.id
this.getDetail()
},
methods: {
getDetail() {
// getGroupDetail().then(res => {
// })
}
}
} }
</script> </script>
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
</el-row> </el-row>
</template> </template>
<template v-slot:table-x="{ row }"> <template v-slot:table-x="{ row }">
<router-link :to="{ path: 'customergroup/detail', query: { id: row.id } }"> <!-- <router-link :to="{ name: 'update', query: { id: row.id } }"> -->
<el-button type="text" style="margin-left: 10px">查看</el-button> <el-button type="text" style="margin-left: 10px" @click="toDetail(row)">查看</el-button>
</router-link> <!-- </router-link> -->
<el-button type="text" style="margin-left: 10px" @click="edit(row)">编辑</el-button> <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> <el-button type="text" @click="onRemove(row)" style="margin-left: 10px">删除</el-button>
</template> </template>
...@@ -21,12 +21,10 @@ ...@@ -21,12 +21,10 @@
<script> <script>
// 组件 // 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import AddCustomerGroup from '../components/AddCustomerGroup.vue' import AddCustomerGroup from '../components/AddCustomerGroup.vue'
import { getCustomerGroup } from '../api' import { getCustomerGroup } from '../api'
export default { export default {
components: { AppCard, AppList, AddCustomerGroup }, components: { AddCustomerGroup },
data() { data() {
return { return {
id: '', id: '',
...@@ -56,6 +54,14 @@ export default { ...@@ -56,6 +54,14 @@ export default {
} }
}, },
methods: { methods: {
toDetail(row) {
this.$router.push({
name: 'detail',
query: {
id: row.id
}
})
},
addGroup() { addGroup() {
this.isShowDialog = true this.isShowDialog = true
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论