Compare commits
3 Commits
688a2d9ab1
...
09c4fb088d
Author | SHA1 | Date |
---|---|---|
|
09c4fb088d | |
|
c6e8e6f2e3 | |
|
046bf46262 |
|
@ -23,3 +23,19 @@ export function del(params) {
|
|||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function recordList(data) {
|
||||
return request({
|
||||
url: '/api/convenience/fingertipIntegral/recordList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function settlementList(data) {
|
||||
return request({
|
||||
url: '/api/convenience/fingertipIntegral/settlementList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -59,10 +59,21 @@ export default {
|
|||
<style>
|
||||
.el-menu-item {
|
||||
height: 80px;
|
||||
/* justify-content: center; */
|
||||
display: flex;
|
||||
/* flex-direction: column; */
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
.el-submenu__title{
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
.el-submenu .el-menu-item {
|
||||
height: 40px;
|
||||
padding-left: 65px !important;
|
||||
}
|
||||
.el-submenu__title i {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -385,9 +385,28 @@ export const asyncRoutes = [
|
|||
name: 'FingertipIntegralList',
|
||||
meta: {
|
||||
title: '规则列表',
|
||||
icon: 'townRanking',
|
||||
affix: true,
|
||||
parentTitle: '积分管理'
|
||||
parentTitle: '规则列表'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'recordList',
|
||||
component: () => import('@/views/fingertipIntegral/recordList'),
|
||||
name: 'FingertipIntegralRecordList',
|
||||
meta: {
|
||||
title: '积分流水',
|
||||
affix: true,
|
||||
parentTitle: '积分流水'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'settlementList',
|
||||
component: () => import('@/views/fingertipIntegral/settlementList'),
|
||||
name: 'FingertipIntegralSettlementList',
|
||||
meta: {
|
||||
title: '积分结算',
|
||||
affix: true,
|
||||
parentTitle: '积分结算'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -14,15 +14,15 @@ $menuText:#ffffff;
|
|||
// $menuActiveText:#409EFF;
|
||||
$menuActiveText:#ffffff;
|
||||
// $subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951
|
||||
$subMenuActiveText:#5d94ff;
|
||||
$subMenuActiveText:#ffffff;
|
||||
|
||||
// $menuBg:#304156;
|
||||
$menuBg:#4081ff;
|
||||
// $menuHover:#263445;
|
||||
$menuHover:#5d94ff;
|
||||
|
||||
$subMenuBg:#1f2d3d;
|
||||
$subMenuHover:#001528;
|
||||
$subMenuBg:#4081ff;
|
||||
$subMenuHover:#5d94ff;
|
||||
|
||||
$sideBarWidth: 230px;
|
||||
// $sideBarWidth: 150px;
|
||||
|
|
|
@ -115,6 +115,21 @@
|
|||
<el-radio v-model="form.all" :label="true">是</el-radio>
|
||||
<el-radio v-model="form.all" :label="false">否</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="form.ruleType === 'FINAL'" label="商户结算具体要求" prop="specialBusinessContent">
|
||||
<el-input
|
||||
v-model="form.specialBusinessContent"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.ruleType === 'FINAL'" label="商户结算积分最低限额" prop="specialBusinessMin">
|
||||
<el-input
|
||||
v-model="form.specialBusinessMin"
|
||||
type="number"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="申请办件积分" prop="apply">
|
||||
<el-input
|
||||
v-model="form.apply"
|
||||
|
@ -157,6 +172,13 @@
|
|||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="特殊工单类型奖励积分(医保卫生)" prop="specialWorkType">
|
||||
<el-input
|
||||
v-model="form.specialWorkType"
|
||||
type="number"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="超期办件扣分(负数)" prop="timeOut">
|
||||
<el-input
|
||||
v-model="form.timeOut"
|
||||
|
@ -221,15 +243,22 @@ export default {
|
|||
read: undefined,
|
||||
realNameAuthentication: undefined,
|
||||
sendACircleOfFriends: undefined,
|
||||
specialWorkType: undefined,
|
||||
timeOut: undefined,
|
||||
verySatisfied: undefined
|
||||
verySatisfied: undefined,
|
||||
|
||||
specialBusinessContent: undefined,
|
||||
specialBusinessMin: undefined
|
||||
},
|
||||
rules: {
|
||||
name: [{ required: true, message: '请输入', trigger: 'change' }],
|
||||
ruleType: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
regionIds: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
all: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
dateRange: [{ required: true, message: '请选择', trigger: 'change' }]
|
||||
dateRange: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
|
||||
specialBusinessContent: [{ required: true, message: '请输入', trigger: 'change' }],
|
||||
specialBusinessMin: [{ required: true, message: '请输入', trigger: 'change' }]
|
||||
},
|
||||
|
||||
ruleTypeOptions: [
|
||||
|
@ -326,8 +355,12 @@ export default {
|
|||
read: undefined,
|
||||
realNameAuthentication: undefined,
|
||||
sendACircleOfFriends: undefined,
|
||||
specialWorkType: undefined,
|
||||
timeOut: undefined,
|
||||
verySatisfied: undefined
|
||||
verySatisfied: undefined,
|
||||
|
||||
specialBusinessContent: undefined,
|
||||
specialBusinessMin: undefined
|
||||
}
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
|
|
|
@ -0,0 +1,169 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<!-- <el-input
|
||||
v-model="listQuery.keyword"
|
||||
style="width:200px;margin-right:10px"
|
||||
class="filter-item"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
/> -->
|
||||
<el-select v-model="listQuery.source" clearable class="filter-item" placeholder="请选择积分来源">
|
||||
<el-option v-for="item of sourceOptions" :key="item.value" v-bind="item" />
|
||||
</el-select>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-left:10px"
|
||||
@click="handleSearch"
|
||||
>搜索</el-button>
|
||||
</div>
|
||||
<el-table :data="list" border style="width: 100%">
|
||||
<el-table-column label="用户名" prop="residentInformation.name" />
|
||||
<el-table-column label="积分来源" prop="source">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.source | optionsFilter(sourceOptions)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="获取积分数" prop="num" />
|
||||
|
||||
<el-table-column label="获取时间">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-if="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.lastPageIndex"
|
||||
:limit.sync="listQuery.size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
import { recordList } from '@/api/fingertipIntegral'
|
||||
export default {
|
||||
components: { Pagination },
|
||||
filters: {
|
||||
optionsFilter(value, options = []) {
|
||||
const findItem = options.find((option) => option.value === value)
|
||||
if (findItem) {
|
||||
return findItem.label
|
||||
}
|
||||
return ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
total: 0,
|
||||
listQuery: {
|
||||
lastPageIndex: 1,
|
||||
// params: {},
|
||||
size: 10,
|
||||
category: undefined,
|
||||
id: undefined,
|
||||
innerCategory: undefined,
|
||||
keyword: undefined,
|
||||
source: undefined,
|
||||
status: undefined,
|
||||
userId: undefined
|
||||
},
|
||||
list: undefined,
|
||||
|
||||
sourceOptions: [
|
||||
{
|
||||
value: 'REAL_NAME_AUTHENTICATION',
|
||||
label: '实名认证'
|
||||
},
|
||||
{
|
||||
value: 'HANDLING',
|
||||
label: '处理办件'
|
||||
},
|
||||
{
|
||||
value: 'APPLY',
|
||||
label: '申请办件'
|
||||
},
|
||||
{
|
||||
value: 'TIMEOUT',
|
||||
label: '超期办件扣分'
|
||||
},
|
||||
{
|
||||
value: 'VERY_SATISFIED',
|
||||
label: '非常满意得分'
|
||||
},
|
||||
{
|
||||
value: 'NEGATIVE_COMMENT',
|
||||
label: '差评扣分'
|
||||
},
|
||||
{
|
||||
value: 'READ',
|
||||
label: '阅读'
|
||||
},
|
||||
{
|
||||
value: 'SEND_A_CIRCLE_OF_FRIENDS',
|
||||
label: '发朋友圈'
|
||||
},
|
||||
{
|
||||
value: 'CONSUMPTION',
|
||||
label: '消费'
|
||||
},
|
||||
{
|
||||
value: 'MERCHANT_SETTLEMENT',
|
||||
label: '商户结算'
|
||||
},
|
||||
{
|
||||
value: 'POINT_REFUND',
|
||||
label: '积分回退'
|
||||
},
|
||||
{
|
||||
value: 'REGULATORY_PUNISHMENT_AND_REWARD',
|
||||
label: '监管惩罚'
|
||||
},
|
||||
{
|
||||
value: 'SPECIAL_WORK_TYPE',
|
||||
label: '特殊工单类型奖励积分(医保卫生)'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'listQuery.lastPageIndex': {
|
||||
handler(val) {
|
||||
this.getList()
|
||||
},
|
||||
deep: true // true 深度监听
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
recordList(this.listQuery).then(res => {
|
||||
this.list = res.d.records
|
||||
this.total = res.d.total
|
||||
// this.pageSize = res.d.pageSize
|
||||
})
|
||||
},
|
||||
handleSearch() {
|
||||
const { listQuery } = this
|
||||
this.listQuery.lastPageIndex = 1
|
||||
Object.keys(listQuery).forEach(key => {
|
||||
if (listQuery[key] === '') listQuery[key] = undefined
|
||||
})
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
|
@ -0,0 +1,163 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<!-- <el-input
|
||||
v-model="listQuery.keyword"
|
||||
style="width:200px;margin-right:10px"
|
||||
class="filter-item"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
/> -->
|
||||
<el-select v-model="listQuery.settlementStatus" clearable class="filter-item" style="width:200px;margin-right:10px" placeholder="请选择结算状态">
|
||||
<el-option v-for="item of statusOptions" :key="item.value" v-bind="item" />
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.dealStatus" clearable class="filter-item" style="width:200px;margin-right:10px" placeholder="请选择已处理状态">
|
||||
<el-option v-for="item of dealStatusOptions" :key="item.value" v-bind="item" />
|
||||
</el-select>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-left:10px"
|
||||
@click="handleSearch"
|
||||
>搜索</el-button>
|
||||
</div>
|
||||
<el-table :data="list" border style="width: 100%">
|
||||
<el-table-column label="用户名" prop="residentInformation.name" />
|
||||
<el-table-column label="结算积分数" prop="num" />
|
||||
|
||||
<el-table-column label="提交时间">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结算状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.settlementStatus | optionsFilter(statusOptions)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="已处理状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.dealStatus | optionsFilter(dealStatusOptions)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理备注" prop="remark" />
|
||||
<el-table-column label="发票状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.invoiceStatus | optionsFilter(invoiceStatusOptions)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-if="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.lastPageIndex"
|
||||
:limit.sync="listQuery.size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
import { settlementList } from '@/api/fingertipIntegral'
|
||||
export default {
|
||||
components: { Pagination },
|
||||
filters: {
|
||||
optionsFilter(value, options = []) {
|
||||
const findItem = options.find((option) => option.value === value)
|
||||
if (findItem) {
|
||||
return findItem.label
|
||||
}
|
||||
return ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
total: 0,
|
||||
listQuery: {
|
||||
lastPageIndex: 1,
|
||||
size: 10,
|
||||
category: undefined,
|
||||
dealStatus: undefined,
|
||||
endDate: undefined,
|
||||
id: undefined,
|
||||
innerCategory: undefined,
|
||||
keyword: undefined,
|
||||
settlementStatus: undefined,
|
||||
startDate: undefined,
|
||||
status: undefined
|
||||
},
|
||||
list: undefined,
|
||||
|
||||
statusOptions: [
|
||||
{
|
||||
label: '待处理',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '已处理',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
dealStatusOptions: [
|
||||
{
|
||||
label: '兑换',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '不兑换',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
invoiceStatusOptions: [
|
||||
{
|
||||
label: '未收',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '已收',
|
||||
value: '1'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'listQuery.lastPageIndex': {
|
||||
handler(val) {
|
||||
this.getList()
|
||||
},
|
||||
deep: true // true 深度监听
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
settlementList(this.listQuery).then(res => {
|
||||
this.list = res.d.records
|
||||
this.total = res.d.total
|
||||
// this.pageSize = res.d.pageSize
|
||||
})
|
||||
},
|
||||
handleSearch() {
|
||||
const { listQuery } = this
|
||||
this.listQuery.lastPageIndex = 1
|
||||
Object.keys(listQuery).forEach(key => {
|
||||
if (listQuery[key] === '') listQuery[key] = undefined
|
||||
})
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
|
@ -1,5 +1,49 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.params.name"
|
||||
style="width:200px;margin-right:10px"
|
||||
class="filter-item"
|
||||
placeholder="姓名"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-model="listQuery.params.phone"
|
||||
style="width:200px;margin-right:10px"
|
||||
class="filter-item"
|
||||
placeholder="手机号"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-model="listQuery.params.idCard"
|
||||
style="width:200px;margin-right:10px"
|
||||
class="filter-item"
|
||||
placeholder="身份证号"
|
||||
clearable
|
||||
/>
|
||||
<el-cascader
|
||||
v-model="regionSearchVal"
|
||||
class="filter-item"
|
||||
style="width:240px"
|
||||
:options="regions"
|
||||
:props="{ checkStrictly: true }"
|
||||
placeholder="行政区域"
|
||||
clearable
|
||||
/>
|
||||
<el-checkbox
|
||||
v-model="isStaff"
|
||||
style="margin-left:10px"
|
||||
@change="handleIsStaff"
|
||||
>是否是便民工作人员</el-checkbox>
|
||||
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-left:10px"
|
||||
@click="handleSearch"
|
||||
>搜索</el-button>
|
||||
</div>
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
|
@ -196,8 +240,13 @@ export default {
|
|||
total: 0,
|
||||
listQuery: {
|
||||
lastPageIndex: 1,
|
||||
// params: {},
|
||||
size: 10
|
||||
size: 10,
|
||||
params: {
|
||||
name: undefined,
|
||||
phone: undefined,
|
||||
idCard: undefined,
|
||||
isConvenience: undefined
|
||||
}
|
||||
},
|
||||
list: undefined,
|
||||
|
||||
|
@ -235,7 +284,10 @@ export default {
|
|||
value: 'TEMPORARY'
|
||||
}
|
||||
],
|
||||
regions: []
|
||||
regions: [],
|
||||
|
||||
isStaff: undefined,
|
||||
regionSearchVal: undefined
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -285,7 +337,7 @@ export default {
|
|||
const countyArr = [] // 县,1
|
||||
tempData.map(county => {
|
||||
const countyObj = {
|
||||
value: county.root.id,
|
||||
value: county.root.name,
|
||||
label: county.root.name,
|
||||
disabled: !county.root.check,
|
||||
children: []
|
||||
|
@ -293,7 +345,7 @@ export default {
|
|||
countyArr.push(countyObj)
|
||||
county.node.map(town => {
|
||||
const townObj = {
|
||||
value: town.root.id,
|
||||
value: town.root.name,
|
||||
label: town.root.name,
|
||||
disabled: !town.root.check,
|
||||
children: []
|
||||
|
@ -301,7 +353,7 @@ export default {
|
|||
countyObj.children.push(townObj)
|
||||
town.node.map(country => {
|
||||
townObj.children.push({
|
||||
value: country.root.id,
|
||||
value: country.root.name,
|
||||
label: country.root.name,
|
||||
disabled: !country.root.check
|
||||
})
|
||||
|
@ -392,6 +444,42 @@ export default {
|
|||
// },
|
||||
closeDia() {
|
||||
this.diaVisible = false
|
||||
},
|
||||
handleIsStaff(val) {
|
||||
if (val === false) {
|
||||
this.listQuery.params.isConvenience === undefined
|
||||
const temp = Object.assign({}, this.listQuery)
|
||||
temp.params.isConvenience === undefined
|
||||
this.listQuery = temp
|
||||
}
|
||||
},
|
||||
handleSearch() {
|
||||
this.listQuery.params.isConvenience = this.isStaff ? true : undefined
|
||||
if (this.regionSearchVal) {
|
||||
switch (this.regionSearchVal.length) {
|
||||
case 1:
|
||||
this.listQuery.params.PermanentResidenceRegion = this.regionSearchVal[0]
|
||||
this.listQuery.params.PermanentResidenceTown = undefined
|
||||
this.listQuery.params.PermanentResidenceTownShip = undefined
|
||||
break
|
||||
case 2:
|
||||
this.listQuery.params.PermanentResidenceTown = this.regionSearchVal[1]
|
||||
this.listQuery.params.PermanentResidenceRegion = undefined
|
||||
this.listQuery.params.PermanentResidenceTownShip = undefined
|
||||
break
|
||||
case 3:
|
||||
this.listQuery.params.PermanentResidenceTownShip = this.regionSearchVal[2]
|
||||
this.listQuery.params.PermanentResidenceRegion = undefined
|
||||
this.listQuery.params.PermanentResidenceTown = undefined
|
||||
break
|
||||
default:
|
||||
this.listQuery.params.PermanentResidenceRegion = undefined
|
||||
this.listQuery.params.PermanentResidenceTown = undefined
|
||||
this.listQuery.params.PermanentResidenceTownShip = undefined
|
||||
break
|
||||
}
|
||||
}
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue