2111A-cloud-web/src/views/pay/customer/index.vue

355 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="app-container">
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="68px" size="small">
<el-form-item label="客户名称">
<el-input
v-model="queryParams.appName"
clearable
placeholder="请输入客户名称"
style="width: 240px"
@keyup.enter.native="getList"
/>
</el-form-item>
<el-form-item label="客户编码">
<el-input
v-model="queryParams.appCode"
clearable
placeholder="请输入客户编码"
style="width: 240px"
@keyup.enter.native="getList"
/>
</el-form-item>
<el-form-item label="客户状态" prop="configType">
<el-select v-model="queryParams.status" clearable placeholder="客户状态">
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
v-hasPermi="['system:config:add']"
icon="el-icon-plus"
plain
size="mini"
type="primary"
@click="handleAdd"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
v-hasPermi="['pay:user:export']"
icon="el-icon-download"
plain
size="mini"
type="warning"
@click="handleExport"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-row :gutter="10">
<el-empty description="暂无支付客户" v-if="customerList.length == 0"></el-empty>
<el-col :span="8" v-for="customer in customerList" v-if="customerList.length != 0">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size: 18px;font-weight: 900;">{{customer.appName}}</span>
<el-switch
style="float: right;padding: 5px; margin: 4px 5px 0;"
v-model="customer.status"
active-value="Y"
inactive-value="N"
active-color="#13ce66"
inactive-color="#ff4949"
@change="handleStatusChange(customer)"
>
</el-switch>
<!-- <el-popconfirm-->
<!-- confirm-button-text='好的'-->
<!-- cancel-button-text='不用了'-->
<!-- icon="el-icon-info"-->
<!-- icon-color="red"-->
<!-- title="这是一段内容确定删除吗?"-->
<!-- @confirm="handleDelete(customer.id)"-->
<!-- >-->
<!-- <el-button slot="reference">删除</el-button>-->
<!-- </el-popconfirm>-->
<el-button style="float: right;padding: 5px; margin: 0 5px" type="danger" icon="el-icon-delete" circle @click="handleDelete(customer.id)"></el-button>
<el-button style="float: right;padding: 5px; margin: 0 5px" type="primary" icon="el-icon-edit" circle @click="handleUpdate(customer.id)"></el-button>
</div>
<div >
<el-descriptions class="margin-top" :column="1" :size="size" border>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"> </i>客户名称</template>
{{customer.appName}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"> </i>客户编码</template>
{{customer.appCode}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"> </i>创建人</template>
{{customer.createBy}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"> </i>创建时间</template>
{{customer.createTime}}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="center">近五笔交易记录</el-divider>
<el-table
:data="customer.orderPaySimpleRespList"
style="width: 100%">
<el-table-column prop="cusOrderNumber" label="客户单号"/>
<el-table-column prop="price" label="支付金额"/>
<el-table-column prop="channelTypeName" label="渠道商"/>
</el-table>
</div>
</el-card>
</el-col>
</el-row>
<el-dialog
:title="title"
:visible.sync="open"
width="50%">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-form-item label="客户编码" prop="appCode">
<span v-if="this.form.id !=null" style="font-size: 16px">{{form.appCode}}</span>
<el-select v-if="this.form.id == null" v-model="form.appCode" placeholder="选择未入住的客户" >
<el-option
v-for="item in appCodeList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="客户名称" prop="appName">
<el-input v-model="form.appName"></el-input>
</el-form-item>
<el-form-item label="激活开通" prop="status">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="客户备注">
<el-input v-model="form.remark" type="textarea" rows="6"></el-input>
</el-form-item>
<el-form-item label="详细描述">
<editor v-model="form.appDesc" :min-height="192"/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="open = false">取 消</el-button>
<el-button type="primary" @click="submitForm()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
//这里可以导入其他文件比如组件工具js第三方插件jsjson文件图片文件等等,
//例如import 《组件名称》 from '《组件路径》,
import {addConfig, listConfig, updateConfig} from "@/api/system/config";
import {customerAll, delite, disable, enable, get, save, selectList, update} from "@/api/pay/customer";
import {delUser} from "@/api/system/user";
export default {
name: "Customer",
dicts: ['sys_yes_no'],
data() {
//这里存放数据"
return {
//描述列表大小
size: '',
//客户列表
customerList:[],
//标题
title: "",
//对话框开关状态
open: false,
switchValue: true,
//显示搜索条件
showSearch: true,
// 查询条件
queryParams: {
"appName": "",
"appCode": "",
"status": "Y"
},
form: {
"appName": "",
"appCode": "",
"appDesc": "",
"status": "Y",
"remark": ""
},
//未接入编码下拉框数据
appCodeList: [],
// 表单校验
rules: {
appCode: [
{required: true, message: "选择客户编码", trigger: "change"},
],
appName: [
{required: true, message: "客户名称不能为空", trigger: "blur"}
],
status: [
{required: true, message: "请选择客户是否开通", trigger: "blur"}
]
},
}
},
//方法集合",
methods: {
/**客户状态更改触发 */
handleStatusChange(row){
if (row.status == 'Y'){
enable(row.id).then(response=>{
this.$modal.msgSuccess("启用成功");
this.getList();
})
}else {
disable(row.id).then(response=>{
this.$modal.msgSuccess("禁用成功");
this.getList();
})
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加支付单客户信息";
},
/** 修改按钮操作 */
handleUpdate(orderCustomerId) {
this.reset();
//TODO 请求接口
get(orderCustomerId).then(response=>{
this.form = response.data;
this.open = true;
this.title = "修改支付单客户信息";
})
},
// 表单重置
reset() {
this.form = {
"appName": "",
"appCode": "",
"appDesc": "",
"status": "Y",
"remark": ""
};
this.resetForm("form");
// this.customerList = [];
customerAll().then(response =>{
this.appCodeList = response.data;
})
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != undefined) {
update(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
save(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(id) {
this.$modal.confirm('是否确认删除用户编号为"' + id + '"的数据项?').then(function () {
return delite(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('pay/customer/export', {
...this.queryParams
}, `customer_${new Date().getTime()}.xlsx`)
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
"appName": "",
"appCode": "",
"status": "Y"
},
this.resetForm("queryForm");
this.getList();
},
/** 查询参数列表 */
getList() {
selectList(this.queryParams).then(response =>{
this.customerList = response.data;
})
},
},
//生命周期 - 创建完成可以访问当前this实例",
created() {
this.getList();
},
};
</script>
<style scoped>
.el-card{
margin: 10px 0;
}
</style>