Browse Source

用户注册模块前后端功能完善,增加后端注册信息、个人信息补充、企业信息补充的数据关联,前端对应的操作关联。修改页签ICON、登录面背景图、部分标题描述。

main
TonyStark 2 months ago
parent
commit
f57256b346
  1. 2
      .env.development
  2. 2
      .env.production
  3. BIN
      public/favicon.ico
  4. 18
      src/api/business/userRegister.js
  5. BIN
      src/assets/images/login-background.jpg
  6. 15
      src/views/business/userInfo/index.vue
  7. 267
      src/views/business/userRegister/index.vue

2
.env.development

@ -1,5 +1,5 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 老挝支付金控系统 VUE_APP_TITLE = 老挝金融支付管理系统
# 开发环境配置 # 开发环境配置
ENV = 'development' ENV = 'development'

2
.env.production

@ -1,5 +1,5 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 老挝支付金控系统 VUE_APP_TITLE = 老挝金融支付管理系统
# 生产环境配置 # 生产环境配置
ENV = 'production' ENV = 'production'

BIN
public/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

18
src/api/business/userRegister.js

@ -42,3 +42,21 @@ export function delUserRegister(id) {
method: 'delete' method: 'delete'
}) })
} }
// 新增用户信息
export function addUserInfo(data) {
return request({
url: '/business/userInfo',
method: 'post',
data: data
})
}
// 新增用户信息-商户扩展
export function addUserInfoBus(data) {
return request({
url: '/business/userInfoBus',
method: 'post',
data: data
})
}

BIN
src/assets/images/login-background.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

15
src/views/business/userInfo/index.vue

@ -8,7 +8,7 @@
<el-input v-model="queryParams.name" :placeholder="$t('business.userInfo.namePlaceholder')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.name" :placeholder="$t('business.userInfo.namePlaceholder')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('business.userInfo.gender')" prop="gender"> <el-form-item :label="$t('business.userInfo.gender')" prop="gender">
<el-select v-model="form.region" placeholder="请选择性别"> <el-select v-model="form.gender" placeholder="请选择性别">
<el-option label="男" value="1"></el-option> <el-option label="男" value="1"></el-option>
<el-option label="女" value="0"></el-option> <el-option label="女" value="0"></el-option>
</el-select> </el-select>
@ -48,9 +48,13 @@
<el-table v-loading="loading" :data="userInfoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('business.userInfo.userCode')" align="center" prop="userCode" />
<el-table-column :label="$t('business.userInfo.name')" align="center" prop="name" /> <el-table-column :label="$t('business.userInfo.name')" align="center" prop="name" />
<el-table-column :label="$t('business.userInfo.gender')" align="center" prop="gender" /> <el-table-column :label="$t('business.userInfo.gender')" align="center" prop="gender" >
<template slot-scope="scope">
<el-tag v-if="scope.row.gender == '1'"></el-tag>
<el-tag v-if="scope.row.gender == '0'"></el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('business.userInfo.idCard')" align="center" prop="idCard" /> <el-table-column :label="$t('business.userInfo.idCard')" align="center" prop="idCard" />
<el-table-column :label="$t('business.userInfo.phone')" align="center" prop="phone" /> <el-table-column :label="$t('business.userInfo.phone')" align="center" prop="phone" />
<el-table-column :label="$t('business.userInfo.age')" align="center" prop="age" /> <el-table-column :label="$t('business.userInfo.age')" align="center" prop="age" />
@ -78,14 +82,11 @@
<!-- 添加或修改用户信息对话框 --> <!-- 添加或修改用户信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> <el-form ref="form" :model="form" :rules="rules" label-width="auto">
<!-- <el-form-item :label="$t('business.userInfo.userCode')" prop="userCode">-->
<!-- <el-input v-model="form.userCode" :placeholder="$t('business.userInfo.userCodePlaceholder')" />-->
<!-- </el-form-item>-->
<el-form-item :label="$t('business.userInfo.name')" prop="name"> <el-form-item :label="$t('business.userInfo.name')" prop="name">
<el-input v-model="form.name" :placeholder="$t('business.userInfo.namePlaceholder')" /> <el-input v-model="form.name" :placeholder="$t('business.userInfo.namePlaceholder')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('business.userInfo.gender')" prop="gender"> <el-form-item :label="$t('business.userInfo.gender')" prop="gender">
<el-select v-model="form.region" placeholder="请选择性别"> <el-select v-model="form.gender" placeholder="请选择性别">
<el-option label="男" value="1"></el-option> <el-option label="男" value="1"></el-option>
<el-option label="女" value="0"></el-option> <el-option label="女" value="0"></el-option>
</el-select> </el-select>

267
src/views/business/userRegister/index.vue

@ -1,9 +1,9 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="登录账号" prop="name"> <el-form-item label="登录账号" prop="account">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.account"
placeholder="请输入登录账号" placeholder="请输入登录账号"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@ -91,13 +91,38 @@
<el-table v-loading="loading" :data="userRegisterList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userRegisterList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="登录账号" align="center" prop="name" /> <el-table-column label="登录账号" align="center" prop="account" />
<el-table-column label="电话" align="center" prop="phone" /> <el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="用户类型" align="center" prop="userType" /> <el-table-column label="用户状态" align="center" prop="status" >
<el-table-column label="用户级别" align="center" prop="userLevel" /> <template slot-scope="scope">
<el-tag type="primary" v-if="scope.row.status == '0'">发起</el-tag>
<el-tag type="warning" v-if="scope.row.status == '1'">拒绝</el-tag>
<el-tag type="success" v-if="scope.row.status == '2'">通过</el-tag>
<el-tag type="danger" v-if="scope.row.status == '3'">冻结</el-tag>
</template>
</el-table-column>
<el-table-column label="用户类型" align="center" prop="userType" >
<template slot-scope="scope">
<span v-if="scope.row.userType == '0'">普通用户</span>
<span v-if="scope.row.userType == '1'">商企用户</span>
</template>
</el-table-column>
<el-table-column label="用户级别" align="center" prop="userLevel" >
<template slot-scope="scope">
<span v-if="scope.row.userLevel == '0'">普通用户</span>
<span v-if="scope.row.userLevel == '1'">VIP用户</span>
<span v-if="scope.row.userLevel == '2'">商企用户</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="(scope.row.name == null && scope.row.userType == '0') || (scope.row.address == null && scope.row.userType == '1')"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleAddInfo(scope.row)"
>补充</el-button>
<el-button v-if="(scope.row.name != null && scope.row.userType == '0') || (scope.row.address != null && scope.row.userType == '1')"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-view" icon="el-icon-view"
@ -132,8 +157,8 @@
<!-- 添加或修改用户注册对话框 --> <!-- 添加或修改用户注册对话框 -->
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> <el-form ref="form" :model="form" :rules="rules" label-width="auto">
<el-form-item label="登录账号" prop="name"> <el-form-item label="登录账号" prop="account">
<el-input v-model="form.name" placeholder="请输入名字" /> <el-input v-model="form.account" placeholder="请输入名字" />
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="phone"> <el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" /> <el-input v-model="form.phone" placeholder="请输入电话" />
@ -171,20 +196,134 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 用户注册详情 --> <!--添加用户注册信息弹窗-->
<el-dialog :title="title" :visible.sync="openInfo" width="700px" append-to-body>
<el-form ref="formInfo" :model="formInfo" :rules="rules" label-width="auto">
<el-form-item :label="$t('business.userInfo.name')" prop="name">
<el-input v-model="formInfo.name" :placeholder="$t('business.userInfo.namePlaceholder')" />
</el-form-item>
<el-form-item :label="$t('business.userInfo.gender')" prop="gender">
<el-select v-model="formInfo.gender" placeholder="请选择性别">
<el-option label="男" value="1"></el-option>
<el-option label="女" value="0"></el-option>
</el-select>
<!-- <el-input v-model="form.gender" :placeholder="$t('business.userInfo.genderPlaceholder')" />-->
</el-form-item>
<el-form-item :label="$t('business.userInfo.idCard')" prop="idCard">
<el-input v-model="formInfo.idCard" :placeholder="$t('business.userInfo.idCardPlaceholder')" />
</el-form-item>
<el-form-item :label="$t('business.userInfo.phone')" prop="phone">
<el-input v-model="formInfo.phone" :placeholder="$t('business.userInfo.phonePlaceholder')" />
</el-form-item>
<el-form-item :label="$t('business.userInfo.age')" prop="age">
<el-input v-model="formInfo.age" :placeholder="$t('business.userInfo.agePlaceholder')" />
</el-form-item>
<el-form-item :label="$t('business.userInfo.addr')" prop="addr">
<el-input v-model="formInfo.addr" :placeholder="$t('business.userInfo.addrPlaceholder')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitFormInfo">{{ $t('common.confirm') }}</el-button>
<el-button @click="cancel">{{ $t('common.cancel') }}</el-button>
</div>
</el-dialog>
<!-- 添加或修改用户信息-商户扩展对话框 -->
<el-dialog :title="title" :visible.sync="openInfoBus" width="700px" append-to-body>
<el-form ref="formInfoBus" :model="formInfoBus" :rules="rules" label-width="auto">
<el-form-item label="营业执照" prop="license">
<el-input v-model="formInfoBus.license" placeholder="请输入营业执照" />
</el-form-item>
<el-form-item label="其它证照信息" prop="licenseOther">
<el-input v-model="formInfoBus.licenseOther" placeholder="请输入其它证照信息" />
</el-form-item>
<el-form-item label="法人姓名" prop="legalPerson">
<el-input v-model="formInfoBus.legalPerson" placeholder="请输入法人姓名" />
</el-form-item>
<el-form-item label="营业状态" prop="operateStatus">
<el-select v-model="formInfoBus.operateStatus" placeholder="请选择营业状态" >
<el-option
v-for="item in options_operateStatus"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="经营地址" prop="operateAddr">
<el-input v-model="formInfoBus.operateAddr" placeholder="请输入经营地址" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitFormInfoBus"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 用户注册详情-个人 -->
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body> <el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body>
<el-form ref="form" :model="form" label-width="auto"> <el-form ref="formDetail" :model="formDetail" label-width="auto">
<el-form-item label="登录账号:"> <el-form-item label="登录账号:">
{{form.name}} {{formDetail.account}}
</el-form-item>
<el-form-item label="用户姓名:">
{{formDetail.userInfoVo.name}}
</el-form-item>
<el-form-item label="用户性别:">
<span v-if="formDetail.userInfoVo.gender == '1'"></span>
<span v-if="formDetail.userInfoVo.gender == '0'"></span>
</el-form-item>
<el-form-item label="用户年龄:">
{{formDetail.userInfoVo.age}}
</el-form-item>
<el-form-item label="身份证号:">
{{formDetail.userInfoVo.idCard}}
</el-form-item>
<el-form-item label="用户地址:">
{{formDetail.userInfoVo.addr}}
</el-form-item> </el-form-item>
<el-form-item label="联系电话:"> <el-form-item label="联系电话:">
{{form.phone}} {{formDetail.phone}}
</el-form-item> </el-form-item>
<el-form-item label="用户类型:"> <el-form-item label="用户类型:">
{{form.userType}} <template slot-scope="scope">
<span v-if="formDetail.userType == '0'">普通用户</span>
<span v-if="formDetail.userType == '1'">商企用户</span>
</template>
</el-form-item> </el-form-item>
<el-form-item label="用户级别:"> <el-form-item label="用户级别:">
{{form.userLevel}} <template slot-scope="scope">
<span v-if="formDetail.userLevel == '0'">普通用户</span>
<span v-if="formDetail.userLevel == '1'">VIP用户</span>
<span v-if="formDetail.userLevel == '2'">商企用户</span>
</template>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 用户注册详情-商企-->
<el-dialog :title="title" :visible.sync="detailOpenBus" width="700px" append-to-body>
<el-form ref="formDetail" :model="formDetailBus" label-width="auto">
<el-form-item label="登录账号:">
{{formDetailBus.account}}
</el-form-item>
<el-form-item label="营业执照:">
{{formDetailBus.userInfoBusVo.license}}
</el-form-item>
<el-form-item label="其它证照:">
{{formDetailBus.userInfoBusVo.licenseOther}}
</el-form-item>
<el-form-item label="法人姓名:">
{{formDetailBus.userInfoBusVo.legalPerson}}
</el-form-item>
<el-form-item label="营业状态:">
{{formDetailBus.userInfoBusVo.operateStatus}}
</el-form-item>
<el-form-item label="经营地址:">
{{formDetailBus.userInfoBusVo.operateAddr}}
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -195,7 +334,7 @@
</template> </template>
<script> <script>
import { listUserRegister, getUserRegister, delUserRegister, addUserRegister, updateUserRegister } from "@/api/business/userRegister"; import { listUserRegister, getUserRegister, delUserRegister, addUserRegister, updateUserRegister ,addUserInfo ,addUserInfoBus} from "@/api/business/userRegister";
export default { export default {
name: "UserRegister", name: "UserRegister",
@ -221,14 +360,27 @@ export default {
title: "", title: "",
// //
open: false, open: false,
// // -
detailOpen: false, detailOpen: false,
// -
detailOpenBus: false,
// -
openInfo: false,
// -
openInfoBus: false,
options_operateStatus: [{
value: '存续',
label: '存续'
}, {
value: '注销',
label: '注销'
}],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
userId: undefined, userId: undefined,
name: undefined, account: undefined,
phone: undefined, phone: undefined,
passwd: undefined, passwd: undefined,
status: undefined, status: undefined,
@ -236,11 +388,26 @@ export default {
userLevel: undefined, userLevel: undefined,
}, },
// //
form: {}, form: {
userInfoVo:{},
userInfoBusVo:{}
},
//
formDetail: {
userInfoVo:{}
},
// -
formDetailBus: {
userInfoBusVo:{}
},
// -
formInfo: {},
// -
formInfoBus: {},
// //
rules: { rules: {
name: [ account: [
{ required: true, message: "名字不能为空", trigger: "blur" } { required: true, message: "登录账号不能为空", trigger: "blur" }
], ],
userType: [ userType: [
{ required: true, message: "用户类型不能为空", trigger: "change" } { required: true, message: "用户类型不能为空", trigger: "change" }
@ -291,6 +458,9 @@ export default {
cancel() { cancel() {
this.open = false; this.open = false;
this.detailOpen = false; this.detailOpen = false;
this.detailOpenBus = false;
this.openInfo = false;
this.openInfoBus = false;
this.reset(); this.reset();
}, },
// //
@ -298,7 +468,7 @@ export default {
this.form = { this.form = {
id: undefined, id: undefined,
userId: undefined, userId: undefined,
name: undefined, account: undefined,
phone: undefined, phone: undefined,
passwd: undefined, passwd: undefined,
status: undefined, status: undefined,
@ -335,10 +505,21 @@ export default {
}, },
/** 详情按钮操作 */ /** 详情按钮操作 */
handleDetail(row){ handleDetail(row){
this.loading = true;
this.reset(); this.reset();
this.form = row; const id = row.id || this.ids
getUserRegister(id).then(response => {
this.loading = false;
if (row.userType == "0"){
this.formDetail = response.data;
this.detailOpen = true; this.detailOpen = true;
this.title = "用户详情"; }
if (row.userType == "1"){
this.formDetailBus = response.data;
this.detailOpenBus = true;
}
this.title = "用户详情信息";
});
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
@ -377,6 +558,34 @@ export default {
} }
}); });
}, },
/** 用户信息-提交按钮-个人 */
submitFormInfo() {
this.$refs["formInfo"].validate(valid => {
if (valid) {
addUserInfo(this.formInfo).then(response => {
this.$modal.msgSuccess(this.$t('common.addSuccess'));
this.openInfo = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
});
},
/** 用户信息-提交按钮-商企 */
submitFormInfoBus() {
this.$refs["formInfoBus"].validate(valid => {
if (valid) {
addUserInfoBus(this.formInfoBus).then(response => {
this.$modal.msgSuccess(this.$t('common.addSuccess'));
this.openInfoBus = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
@ -397,6 +606,18 @@ export default {
this.download('business/userRegister/export', { this.download('business/userRegister/export', {
...this.queryParams ...this.queryParams
}, `userRegister_${new Date().getTime()}.xlsx`) }, `userRegister_${new Date().getTime()}.xlsx`)
},
handleAddInfo(row) {
this.reset();
if (row.userType == "0"){
this.formInfo = row;
this.openInfo = true;
}
if (row.userType == "1"){
this.formInfoBus = row;
this.openInfoBus = true;
}
this.title = this.$t('business.userInfo.addTitle');
} }
} }
}; };

Loading…
Cancel
Save