|
|
@@ -1,109 +1,157 @@
|
|
|
<template>
|
|
|
<div class="form-wrap">
|
|
|
- <el-form
|
|
|
- class="search-box"
|
|
|
- ref="form"
|
|
|
- :model="form"
|
|
|
- :inline="true"
|
|
|
- >
|
|
|
- <div class="block-title">
|
|
|
- 查询条件
|
|
|
- </div>
|
|
|
- <el-form-item
|
|
|
- label="团队名称"
|
|
|
- prop="name">
|
|
|
- <el-input v-model="form.name" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="联系人"
|
|
|
- prop="contactName">
|
|
|
- <el-input v-model="form.contactName" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="联系方式"
|
|
|
- prop="contactPhone">
|
|
|
- <el-input v-model="form.contactPhone" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="备注"
|
|
|
- prop="remark">
|
|
|
- <el-input v-model="form.remark" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <div class="btn-wrap">
|
|
|
- <el-button
|
|
|
- @click="reset">
|
|
|
- 重置
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="getList(true)">
|
|
|
- 搜索
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="openAddDialog(true)">
|
|
|
- 新增团队
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
-
|
|
|
- <div class="table-box">
|
|
|
- <!-- <div class="block-title">
|
|
|
- 团队列表
|
|
|
- </div> -->
|
|
|
- <el-table
|
|
|
- border
|
|
|
- v-loading="loading"
|
|
|
- :data="tableData">
|
|
|
- <el-table-column
|
|
|
- prop="name"
|
|
|
- label="团队名称">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="contactName"
|
|
|
- label="联系人">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="contactPhone"
|
|
|
- label="联系方式">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="remark"
|
|
|
- label="备注">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- width="150px"
|
|
|
- label="操作">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-link
|
|
|
+ <el-tabs v-model="activeTab">
|
|
|
+ <el-tab-pane label="团队管理" name="teamManage">
|
|
|
+ <el-form
|
|
|
+ class="search-box"
|
|
|
+ ref="form"
|
|
|
+ :model="form"
|
|
|
+ :inline="true"
|
|
|
+ >
|
|
|
+ <div class="block-title">
|
|
|
+ 查询条件
|
|
|
+ </div>
|
|
|
+ <el-form-item
|
|
|
+ label="团队名称"
|
|
|
+ prop="name">
|
|
|
+ <el-input v-model="form.name" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="联系人"
|
|
|
+ prop="contactName">
|
|
|
+ <el-input v-model="form.contactName" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="联系方式"
|
|
|
+ prop="contactPhone">
|
|
|
+ <el-input v-model="form.contactPhone" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="备注"
|
|
|
+ prop="remark">
|
|
|
+ <el-input v-model="form.remark" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="btn-wrap">
|
|
|
+ <el-button
|
|
|
+ @click="reset">
|
|
|
+ 重置
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
type="primary"
|
|
|
- @click="openEditDialog(scope.row)"
|
|
|
- >
|
|
|
- 编辑
|
|
|
- </el-link>
|
|
|
-
|
|
|
- <el-link
|
|
|
+ @click="getList(true)">
|
|
|
+ 搜索
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="openAddDialog">
|
|
|
+ 新增团队
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
type="primary"
|
|
|
- @click="deleteGroup(scope.row)">
|
|
|
- 删除
|
|
|
- </el-link>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :current-page.sync="form.pageNum"
|
|
|
- :page-sizes="[10, 20, 50, 100]"
|
|
|
- :page-size="form.pageSize"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="getList()"
|
|
|
- :total="total"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- <!-- 弹框 -->
|
|
|
+ @click="reportExport">
|
|
|
+ 导出
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div class="table-box">
|
|
|
+ <el-table
|
|
|
+ border
|
|
|
+ v-loading="loading"
|
|
|
+ :data="tableData">
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="团队名称">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="contactName"
|
|
|
+ label="联系人">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="contactPhone"
|
|
|
+ label="联系方式">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="balance"
|
|
|
+ label="余额">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="creditLimit"
|
|
|
+ label="授信额度">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="remark"
|
|
|
+ label="备注">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ width="350px"
|
|
|
+ label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ @click="openEditDialog(scope.row)"
|
|
|
+ >
|
|
|
+ 编辑
|
|
|
+ </el-link>
|
|
|
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ @click="deleteGroup(scope.row)"
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </el-link>
|
|
|
+
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ v-if="hasPermission('team-money-manage')"
|
|
|
+ @click="openRechargeDialog(scope.row)"
|
|
|
+ >
|
|
|
+ 充值
|
|
|
+ </el-link>
|
|
|
+
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ v-if="hasPermission('team-money-manage')"
|
|
|
+ @click="openDeductDialog(scope.row)"
|
|
|
+ >
|
|
|
+ 扣款
|
|
|
+ </el-link>
|
|
|
+
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ v-if="hasPermission('team-money-manage')"
|
|
|
+ @click="openAdjustDialog(scope.row)"
|
|
|
+ >
|
|
|
+ 调整授信额度
|
|
|
+ </el-link>
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ @click="gotoRecord(scope.row)"
|
|
|
+ >
|
|
|
+ 账户记录
|
|
|
+ </el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :current-page.sync="form.pageNum"
|
|
|
+ :page-sizes="[10, 20, 50, 100]"
|
|
|
+ :page-size="form.pageSize"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="getList()"
|
|
|
+ :total="total"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="账户记录" name="accountFlow">
|
|
|
+ <TeamAccountFlow v-if="activeTab === 'accountFlow'" :teamId="selectedTeamId" :teamName="selectedTeamName" />
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+
|
|
|
+ <!-- 新增/编辑团队弹框 -->
|
|
|
<ElDialog
|
|
|
:title="`${currentItem.id ? '编辑' : '新增'}团队`"
|
|
|
width="500px"
|
|
|
@@ -112,7 +160,7 @@
|
|
|
<el-form
|
|
|
inline
|
|
|
:model="currentItem"
|
|
|
- ref="form"
|
|
|
+ ref="editForm"
|
|
|
class="form-wrap"
|
|
|
label-width="150px"
|
|
|
style="margin-top: 20px">
|
|
|
@@ -132,6 +180,18 @@
|
|
|
prop="contactPhone">
|
|
|
<el-input v-model="currentItem.contactPhone"></el-input>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ v-if="!currentItem.id"
|
|
|
+ label="余额"
|
|
|
+ prop="balance">
|
|
|
+ <el-input-number v-model="currentItem.balance" :precision="2" :step="1" :controls="false" style="width: 200px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ v-if="!currentItem.id"
|
|
|
+ label="授信额度"
|
|
|
+ prop="creditLimit">
|
|
|
+ <el-input-number v-model="currentItem.creditLimit" :min="0" :precision="2" :step="100" :controls="false" style="width: 200px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item
|
|
|
label="备注"
|
|
|
prop="remark">
|
|
|
@@ -143,45 +203,161 @@
|
|
|
<el-button type="primary" @click="confirmOptGroup">确定</el-button>
|
|
|
</div>
|
|
|
</ElDialog>
|
|
|
+
|
|
|
+ <!-- 充值弹框 -->
|
|
|
+ <ElDialog
|
|
|
+ title="充值"
|
|
|
+ width="500px"
|
|
|
+ v-model="rechargeDialogVisible"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ inline
|
|
|
+ :model="moneyForm"
|
|
|
+ ref="moneyForm"
|
|
|
+ class="form-wrap"
|
|
|
+ label-width="150px"
|
|
|
+ style="margin-top: 20px">
|
|
|
+ <el-form-item
|
|
|
+ label="充值金额"
|
|
|
+ verify
|
|
|
+ prop="amount">
|
|
|
+ <el-input-number v-model="moneyForm.amount" :min="0.01" :precision="2" :step="1"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="备注"
|
|
|
+ prop="remark">
|
|
|
+ <el-input v-model="moneyForm.remark"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="margin: 20px; float: right;">
|
|
|
+ <el-button @click="rechargeDialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="confirmRecharge">确定</el-button>
|
|
|
+ </div>
|
|
|
+ </ElDialog>
|
|
|
+
|
|
|
+ <!-- 扣款弹框 -->
|
|
|
+ <ElDialog
|
|
|
+ title="扣款"
|
|
|
+ width="500px"
|
|
|
+ v-model="deductDialogVisible"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ inline
|
|
|
+ :model="moneyForm"
|
|
|
+ ref="deductForm"
|
|
|
+ class="form-wrap"
|
|
|
+ label-width="150px"
|
|
|
+ style="margin-top: 20px">
|
|
|
+ <el-form-item
|
|
|
+ label="扣款金额"
|
|
|
+ verify
|
|
|
+ prop="amount">
|
|
|
+ <el-input-number v-model="moneyForm.amount" :min="0.01" :precision="2" :step="1"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="备注"
|
|
|
+ prop="remark">
|
|
|
+ <el-input v-model="moneyForm.remark"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="margin: 20px; float: right;">
|
|
|
+ <el-button @click="deductDialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="confirmDeduct">确定</el-button>
|
|
|
+ </div>
|
|
|
+ </ElDialog>
|
|
|
+
|
|
|
+ <!-- 调整授信额度弹框 -->
|
|
|
+ <ElDialog
|
|
|
+ title="调整授信额度"
|
|
|
+ width="500px"
|
|
|
+ v-model="adjustDialogVisible"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ inline
|
|
|
+ :model="adjustForm"
|
|
|
+ ref="adjustForm"
|
|
|
+ class="form-wrap"
|
|
|
+ label-width="150px"
|
|
|
+ style="margin-top: 20px">
|
|
|
+ <el-form-item
|
|
|
+ label="调整后额度"
|
|
|
+ verify
|
|
|
+ prop="amount">
|
|
|
+ <el-input-number v-model="adjustForm.amount" :min="0" :precision="2" :step="100"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="备注"
|
|
|
+ prop="remark">
|
|
|
+ <el-input v-model="adjustForm.remark"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="margin: 20px; float: right;">
|
|
|
+ <el-button @click="adjustDialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="confirmAdjust">确定</el-button>
|
|
|
+ </div>
|
|
|
+ </ElDialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getTeamList, addTeam, updateTeam, deleteTeam } from '@/api/checker'
|
|
|
+import { getTeamList, addTeam, updateTeam, deleteTeam, teamRecharge, teamDeduct, teamAdjust } from '@/api/checker'
|
|
|
import ElDialog from '@/components/Dialog'
|
|
|
|
|
|
-// import ConfigSetting from './deviceManage/ConfigSetting'
|
|
|
+const TeamAccountFlow = () => import('./TeamAccountFlow.vue')
|
|
|
+
|
|
|
export default {
|
|
|
data () {
|
|
|
return {
|
|
|
+ activeTab: 'teamManage',
|
|
|
form: {
|
|
|
- name: '', // 名称
|
|
|
+ name: '',
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- contactName: '', // 联系人
|
|
|
- contactPhone: '', // 联系电话
|
|
|
- remark: '' // 备注
|
|
|
+ contactName: '',
|
|
|
+ contactPhone: '',
|
|
|
+ remark: ''
|
|
|
},
|
|
|
loading: false,
|
|
|
+ selectedTeamId: null,
|
|
|
+ selectedTeamName: '',
|
|
|
tableData: [],
|
|
|
total: 0,
|
|
|
dialogVisible: false,
|
|
|
- configDialogVisible: false,
|
|
|
- currentItem: {}
|
|
|
+ currentItem: {},
|
|
|
+ rechargeDialogVisible: false,
|
|
|
+ moneyForm: {
|
|
|
+ teamId: null,
|
|
|
+ amount: 0,
|
|
|
+ remark: ''
|
|
|
+ },
|
|
|
+ deductDialogVisible: false,
|
|
|
+ adjustDialogVisible: false,
|
|
|
+ adjustForm: {
|
|
|
+ teamId: null,
|
|
|
+ amount: 0,
|
|
|
+ remark: ''
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
scenicList () {
|
|
|
return this.$store.state.app.scenicList
|
|
|
+ },
|
|
|
+ permissionList () {
|
|
|
+ return this.$store.state.user.menuList || []
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
|
this.getList()
|
|
|
},
|
|
|
components: {
|
|
|
- ElDialog
|
|
|
+ ElDialog,
|
|
|
+ TeamAccountFlow
|
|
|
},
|
|
|
methods: {
|
|
|
+ hasPermission (key) {
|
|
|
+ return !!this.permissionList.some(item => item.code === key)
|
|
|
+ },
|
|
|
reset () {
|
|
|
this.$refs.form.resetFields()
|
|
|
},
|
|
|
@@ -189,7 +365,6 @@ export default {
|
|
|
this.form.pageSize = size
|
|
|
this.getList()
|
|
|
},
|
|
|
- // 获取通道列表
|
|
|
getList (goFirst) {
|
|
|
let params = { ...this.form }
|
|
|
|
|
|
@@ -202,13 +377,14 @@ export default {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
- // 打开弹框
|
|
|
openAddDialog () {
|
|
|
this.currentItem = {
|
|
|
id: '',
|
|
|
name: '',
|
|
|
contactName: '',
|
|
|
contactPhone: '',
|
|
|
+ balance: 0,
|
|
|
+ creditLimit: 0,
|
|
|
remark: ''
|
|
|
}
|
|
|
this.dialogVisible = true
|
|
|
@@ -236,11 +412,72 @@ export default {
|
|
|
this.dialogVisible = false
|
|
|
this.getList()
|
|
|
})
|
|
|
+ },
|
|
|
+ openRechargeDialog (row) {
|
|
|
+ Object.assign(this.moneyForm, {
|
|
|
+ teamId: row.id,
|
|
|
+ amount: 0,
|
|
|
+ remark: ''
|
|
|
+ })
|
|
|
+ this.rechargeDialogVisible = true
|
|
|
+ },
|
|
|
+ confirmRecharge () {
|
|
|
+ teamRecharge(this.moneyForm).then(() => {
|
|
|
+ this.$message.success('充值成功')
|
|
|
+ this.rechargeDialogVisible = false
|
|
|
+ this.getList()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openDeductDialog (row) {
|
|
|
+ Object.assign(this.moneyForm, {
|
|
|
+ teamId: row.id,
|
|
|
+ amount: 0,
|
|
|
+ remark: ''
|
|
|
+ })
|
|
|
+ this.deductDialogVisible = true
|
|
|
+ },
|
|
|
+ confirmDeduct () {
|
|
|
+ teamDeduct(this.moneyForm).then(() => {
|
|
|
+ this.$message.success('扣款成功')
|
|
|
+ this.deductDialogVisible = false
|
|
|
+ this.getList()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openAdjustDialog (row) {
|
|
|
+ Object.assign(this.adjustForm, {
|
|
|
+ teamId: row.id,
|
|
|
+ amount: row.creditLimit || 0,
|
|
|
+ remark: ''
|
|
|
+ })
|
|
|
+ this.adjustDialogVisible = true
|
|
|
+ },
|
|
|
+ confirmAdjust () {
|
|
|
+ teamAdjust(this.adjustForm).then(() => {
|
|
|
+ this.$message.success('调整授信额度成功')
|
|
|
+ this.adjustDialogVisible = false
|
|
|
+ this.getList()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ gotoRecord (row) {
|
|
|
+ this.selectedTeamId = row.id
|
|
|
+ this.selectedTeamName = row.name
|
|
|
+ this.activeTab = 'accountFlow'
|
|
|
+ },
|
|
|
+ reportExport () {
|
|
|
+ const params = {
|
|
|
+ ...this.form,
|
|
|
+ export: true
|
|
|
+ }
|
|
|
+ getTeamList(params).then(() => {
|
|
|
+ this.$message.success('导出成功。')
|
|
|
+ this.goToDownload()
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message.error('导出失败。')
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-
|
|
|
</style>
|