Compare commits

...

5 Commits

Author SHA1 Message Date
PQZ
b46a55cbfd Merge branch 'master' of http://122.51.230.86:3000/dianliang/lanan-system-vue
# Conflicts:
#	src/views/login.vue
2024-09-20 22:59:32 +08:00
PQZ
7cb8a585cd 1 2024-09-20 22:58:32 +08:00
PQZ
614b816bc4 1 2024-09-20 20:39:38 +08:00
PQZ
695ed397f2 Merge branch 'master' of http://122.51.230.86:3000/dianliang/lanan-system-vue 2024-09-20 16:24:03 +08:00
PQZ
6f6bb47263 1 2024-09-20 16:23:59 +08:00
7 changed files with 236 additions and 37 deletions

View File

@ -214,6 +214,12 @@ export const DICT_TYPE = {
MEMBER_CAR:"member_car", MEMBER_CAR:"member_car",
//活动类型 //活动类型
MEMBER_ACTIVE:"member_active", MEMBER_ACTIVE:"member_active",
//规则
BALANCE_CHANGE_RULE:"balance_change_rule",
//主体
BALANCE_CHANGE_MAIN:"balance_change_main",
//类型
BALANCE_CHANGE_TYPE:"balance_change_type",
} }

View File

@ -1,31 +0,0 @@
<template>
<div>
</div>
</template>
<script>
import * as CustomerMainApi from '@/api/base/customer';
export default {
name: "BindCar",
data() {
return {
};
},
created() {
const row = this.$route.query.row
},
methods: {
/**通过id客户信息查询*/
getById(){
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,201 @@
<template>
<div>
<!-- 会员信息 -->
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-weight: bold">{{ formData.levelName }}</span>
</div>
<!--客户基本信息-->
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item>
<template slot="label">
会员名称
</template>
{{ formData.cusName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
性别
</template>
<dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="formData.sex"/>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联系方式
</template>
{{ formData.phoneNumber }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
生日
</template>
{{ parseTime(formData.birthday, '{y}-{m}-{d}') }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
客户来源
</template>
<dict-tag :type="DICT_TYPE.DICT_CUS_DATA_FROM" :value="formData.dataFrom"/>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最近办理业务
</template>
<dict-tag :type="DICT_TYPE.DICT_CUS_BUSI_TYPE" :value="formData.nearDoContent"/>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联系地址
</template>
{{ formData.address }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
绑定车辆
</template>
<template v-for="item in formData.carList">
<el-popover
placement="top-start"
width="200"
trigger="hover"
:content="item.licenseNumber">
<el-tag
style="margin-left: 5px"
:key="item.id"
slot="reference">
{{ item.brandStr }}({{ item.modelStr }})
</el-tag>
</el-popover>
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
会员标签
</template>
<template v-for="item in formData.labelList">
<el-popover
placement="top-start"
width="200"
trigger="hover"
:content="item.labelContent">
<el-tag
style="margin-left: 5px"
:key="item.id"
slot="reference"
:type="item.labelType">
{{ item.labelName }}
</el-tag>
</el-popover>
</template>
</el-descriptions-item>
</el-descriptions>
</el-card>
<!-- 余额卡券 -->
<el-row >
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-weight: bold">余额/积分</span>
</div>
</el-card>
</el-col>
<el-col :span="16">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-weight: bold">卡券</span>
</div>
</el-card>
</el-col>
</el-row>
<!-- 可参与活动 -->
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-weight: bold">可参与活动</span>
</div>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column width="100" label="活动名称" align="left" prop="name"/>
<el-table-column label="活动描述" show-overflow-tooltip align="left" prop="remark"/>
<el-table-column label="活动开始时间" align="center" prop="beginTime" width="150">
<template v-slot="scope">
<span>{{ parseTime(scope.row.beginTime) }}</span>
</template>
</el-table-column>
<el-table-column label="活动结束时间" align="center" prop="endTime" width="150">
<template v-slot="scope">
<span>{{ parseTime(scope.row.endTime) }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-delete"
v-hasPermi="['member:active-main:delete']">删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getActiveList"/>
</el-card>
</div>
</template>
<script>
import * as CustomerMainApi from '@/api/base/customer';
import * as ActiveMainApi from '@/api/member/active';
export default {
name: "CustomerMember",
data() {
return {
//
param: {},
//
formData: {},
//
loading: true,
//
list:[],
//
total: 0,
//
queryParams: {
pageNo: 1,
pageSize: 10,
isNow:'1'
},
};
},
created() {
const row = this.$route.query.row
this.param = row
this.getById(row.id)
this.getActiveList()
},
methods: {
/**通过id客户信息查询*/
async getById(id) {
const res = await CustomerMainApi.getCustomerMain(id);
this.formData = res.data;
},
/**可参与活动列表*/
async getActiveList() {
try {
this.loading = true;
const res = await ActiveMainApi.getActiveMainPage(this.queryParams);
this.list = res.data.records;
this.total = res.data.total;
} finally {
this.loading = false;
}
},
}
}
</script>
<style scoped>
</style>

View File

@ -45,6 +45,7 @@
<dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex"/> <dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="80" label="会员等级" align="center" prop="levelName" />
<el-table-column width="110" label="联系方式" align="center" prop="phoneNumber"/> <el-table-column width="110" label="联系方式" align="center" prop="phoneNumber"/>
<el-table-column width="100" label="生日" align="center" prop="birthday"> <el-table-column width="100" label="生日" align="center" prop="birthday">
<template v-slot="scope"> <template v-slot="scope">
@ -107,6 +108,7 @@
v-hasPermi="['base:customer-main:car']">绑定车辆</el-dropdown-item> v-hasPermi="['base:customer-main:car']">绑定车辆</el-dropdown-item>
<el-dropdown-item command="openFormAttn" size="mini" type="text" icon="el-icon-s-custom" <el-dropdown-item command="openFormAttn" size="mini" type="text" icon="el-icon-s-custom"
v-hasPermi="['base:customer-main:attn']">经办人</el-dropdown-item> v-hasPermi="['base:customer-main:attn']">经办人</el-dropdown-item>
<el-dropdown-item command="bindLabel" size="mini" type="text" icon="el-icon-s-management">打标签</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
@ -119,6 +121,7 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<CustomerMainForm ref="formRef" @success="getList"/> <CustomerMainForm ref="formRef" @success="getList"/>
<CustomerCarForm ref="carFormRef" @success="getList"/> <CustomerCarForm ref="carFormRef" @success="getList"/>
<CustomerLabelForm ref="labelFormRef" @success="getList"/>
</div> </div>
</template> </template>
@ -126,10 +129,11 @@
import * as CustomerMainApi from '@/api/base/customer'; import * as CustomerMainApi from '@/api/base/customer';
import CustomerMainForm from '@/views/base/customer/CustomerMainForm.vue'; import CustomerMainForm from '@/views/base/customer/CustomerMainForm.vue';
import CustomerCarForm from '@/views/base/customer/CustomerCarForm.vue'; import CustomerCarForm from '@/views/base/customer/CustomerCarForm.vue';
import CustomerLabelForm from '@/views/base/customer/CustomerLabelForm.vue';
export default { export default {
name: "CorpCustomer", name: "CorpCustomer",
components: { components: {
CustomerMainForm,CustomerCarForm CustomerMainForm,CustomerCarForm,CustomerLabelForm
}, },
props: { props: {
typeCode: { typeCode: {
@ -195,6 +199,9 @@ export default {
// //
this.openFormAttn(row); this.openFormAttn(row);
break; break;
case 'bindLabel':
this.bindLabel(row);
break;
default: default:
break; break;
} }
@ -207,6 +214,11 @@ export default {
this.$refs["carFormRef"].open(row); this.$refs["carFormRef"].open(row);
}, },
/**打标签*/
bindLabel(row){
this.$refs["labelFormRef"].open(row);
},
/** 查询列表 */ /** 查询列表 */
async getList() { async getList() {
try { try {

View File

@ -40,8 +40,7 @@
<dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex" /> <dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="80" label="会员等级" align="center" prop="levelName"> <el-table-column width="80" label="会员等级" align="center" prop="levelName" />
</el-table-column>
<el-table-column width="110" label="联系方式" align="center" prop="phoneNumber"/> <el-table-column width="110" label="联系方式" align="center" prop="phoneNumber"/>
<el-table-column width="100" label="生日" align="center" prop="birthday"> <el-table-column width="100" label="生日" align="center" prop="birthday">
<template v-slot="scope"> <template v-slot="scope">
@ -204,7 +203,7 @@ export default {
*/ */
customerDetail(row){ customerDetail(row){
this.$router.push({ this.$router.push({
name: "CustomerDetail", name: "CustomerMember",
query:{ query:{
row: row row: row
} }

View File

@ -30,6 +30,7 @@
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column width="100" label="客户名称" align="center" prop="cusName"/> <el-table-column width="100" label="客户名称" align="center" prop="cusName"/>
<el-table-column width="80" label="会员等级" align="center" prop="levelName" />
<el-table-column width="60" label="性别" align="center" prop="sex"> <el-table-column width="60" label="性别" align="center" prop="sex">
<template v-slot="scope"> <template v-slot="scope">
<dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex" /> <dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="scope.row.sex" />
@ -82,6 +83,8 @@
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="bindCar" size="mini" type="text" icon="el-icon-truck" <el-dropdown-item command="bindCar" size="mini" type="text" icon="el-icon-truck"
v-hasPermi="['base:customer-main:car']">绑定车辆</el-dropdown-item> v-hasPermi="['base:customer-main:car']">绑定车辆</el-dropdown-item>
<el-dropdown-item command="bindLabel" size="mini" type="text" icon="el-icon-s-management">打标签</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
@ -93,6 +96,7 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<CustomerMainForm ref="formRef" @success="getList"/> <CustomerMainForm ref="formRef" @success="getList"/>
<CustomerCarForm ref="carFormRef" @success="getList"/> <CustomerCarForm ref="carFormRef" @success="getList"/>
<CustomerLabelForm ref="labelFormRef" @success="getList"/>
</div> </div>
</template> </template>
@ -100,10 +104,11 @@
import * as CustomerMainApi from '@/api/base/customer'; import * as CustomerMainApi from '@/api/base/customer';
import CustomerMainForm from '@/views/base/customer/CustomerMainForm.vue'; import CustomerMainForm from '@/views/base/customer/CustomerMainForm.vue';
import CustomerCarForm from '@/views/base/customer/CustomerCarForm.vue'; import CustomerCarForm from '@/views/base/customer/CustomerCarForm.vue';
import CustomerLabelForm from '@/views/base/customer/CustomerLabelForm.vue';
export default { export default {
name: "TodoCustomer", name: "TodoCustomer",
components: { components: {
CustomerMainForm,CustomerCarForm CustomerMainForm,CustomerCarForm,CustomerLabelForm
}, },
props:{ props:{
typeCode: { typeCode: {
@ -165,6 +170,9 @@ export default {
// //
this.bindCar(row); this.bindCar(row);
break; break;
case 'bindLabel':
this.bindLabel(row);
break;
default: default:
break; break;
} }
@ -175,6 +183,10 @@ export default {
bindCar(row){ bindCar(row){
this.$refs["carFormRef"].open(row); this.$refs["carFormRef"].open(row);
}, },
/**打标签*/
bindLabel(row){
this.$refs["labelFormRef"].open(row);
},
/** 查询列表 */ /** 查询列表 */
async getList() { async getList() {
try { try {

View File

@ -133,8 +133,8 @@ export default {
}, },
data() { data() {
return { return {
// tenantCode:"lanan",
tenantCode:"lighting", tenantCode:"lighting",
// tenantCode:"lanan",
codeUrl: "", codeUrl: "",
// //
captchaEnable: false, captchaEnable: false,