Compare commits

..

2 Commits

Author SHA1 Message Date
HuskyOo 6e8c0cd37e 工单管理添加扣分操作 一些页面添加字段 2022-05-13 15:05:58 +08:00
HuskyOo 30b0d587af 积分活动管理 2022-05-13 15:04:18 +08:00
8 changed files with 760 additions and 295 deletions

View File

@ -77,8 +77,8 @@ export function communicationList(data) {
}
/**
* 监察工单列表
* @param {*} data
* @returns
* @param {*} data
* @returns
*/
export function listOnlyLook(data) {
return request({
@ -91,8 +91,8 @@ export function listOnlyLook(data) {
// /convenience/v2/services/listForData
/**
* 统计数据工单列表筛选
* @param {*} data
* @returns
* @param {*} data
* @returns
*/
export function listForData(data) {
return request({
@ -104,8 +104,8 @@ export function listForData(data) {
/**
* LeaderTv
* @param {*} data
* @returns
* @param {*} data
* @returns
*/
export function leaderTVData(data) {
return request({
@ -113,4 +113,17 @@ export function leaderTVData(data) {
method: 'post',
data
})
}
}
/**
* LeaderTv
* @param {*} data
* @returns
*/
export function leaderDeal(data) {
return request({
url: '/api/convenience/v2/services/leaderDeal',
method: 'post',
data
})
}

View File

@ -47,3 +47,35 @@ export function settlementDeal(data) {
data
})
}
export function activityList(data) {
return request({
url: '/api/convenience/fingertipIntegralActivity/list',
method: 'post',
data
})
}
export function activityUpdate(data) {
return request({
url: '/api/convenience/fingertipIntegralActivity',
method: 'post',
data
})
}
export function activityInfo(params) {
return request({
url: '/api/convenience/fingertipIntegralActivity/info',
method: 'get',
params
})
}
export function activityDel(params) {
return request({
url: '/api/convenience/fingertipIntegralActivity',
method: 'DELETE',
params
})
}

View File

@ -408,6 +408,49 @@ export const asyncRoutes = [
affix: true,
parentTitle: '积分结算'
}
},
{
path: 'activityList',
component: () => import('@/views/fingertipIntegral/activity/list'),
name: 'FingertipIntegralActivityList',
meta: {
title: '活动列表',
affix: true,
parentTitle: '活动列表'
}
},
{
path: 'activityCreate',
component: () => import('@/views/fingertipIntegral/activity/detail'),
name: 'FingertipIntegralActivityCreate',
meta: {
title: '创建活动',
affix: true,
parentTitle: '创建活动'
},
hidden: true
},
{
path: 'activityDetail',
component: () => import('@/views/fingertipIntegral/activity/detail'),
name: 'FingertipIntegralActivityDetail',
meta: {
title: '活动详情',
affix: true,
parentTitle: '活动详情'
},
hidden: true
},
{
path: 'activityChange',
component: () => import('@/views/fingertipIntegral/activity/detail'),
name: 'FingertipIntegralActivityChange',
meta: {
title: '活动修改',
affix: true,
parentTitle: '活动修改'
},
hidden: true
}
]
},

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,103 @@
<template>
<div class="app-container">
<el-form
ref="convenienceForm"
style="width:680px"
:model="form"
:rules="rules"
:disabled="pageQuery.type === 'detail'"
label-width="80px"
class="el-form"
>
<el-form-item label="标题" prop="title">
<el-input
v-model="form.title"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="简介" prop="introduction">
<el-input
v-model="form.introduction"
type="textarea"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="图片" prop="images">
<template v-if="pageQuery.type === 'detail'">
<el-image v-for="item of form.images" :key="item" :src="item" />
</template>
<CutUploadImage v-else :disabled="pageQuery.type === 'detail'" :init-url="form.images" multiple @imgupload="imgUpload" />
</el-form-item>
<el-form-item label="内容" prop="content">
<UEditor v-model="form.content" :disabled="pageQuery.type === 'detail'" />
</el-form-item>
<el-form-item v-if="pageQuery.type !== 'detail'">
<el-button type="primary" @click="handleAdd">提交</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { activityUpdate, activityInfo } from '@/api/fingertipIntegral'
import UEditor from '@/components/UEditor'
import CutUploadImage from '@/components/cutUploadImage'
export default {
components: { UEditor, CutUploadImage },
data() {
return {
pageQuery: {
type: undefined,
id: undefined
},
form: {
active: true,
audioImage: undefined,
audioUrl: undefined,
content: undefined,
images: [],
introduction: undefined,
show: true,
subtitle: undefined,
title: undefined,
videoUrl: undefined
},
rules: {
title: [{ required: true, message: '请输入', trigger: 'change' }]
}
}
},
created() {
this.pageQuery = this.$route.query
if (this.pageQuery.id) this.getInfo()
},
methods: {
getInfo() {
activityInfo({ id: this.pageQuery.id }).then(res => {
console.log(res)
this.form = res.d
})
},
imgUpload(e) {
this.form.images = e
},
handleAdd() {
this.$refs.convenienceForm.validate(valid => {
if (valid) {
const form = this.form
activityUpdate(form).then(res => {
this.$message({
type: 'success',
message: '操作成功!'
})
this.$router.back()
})
}
})
}
}
}
</script>
<style scope></style>

View File

@ -0,0 +1,235 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-input
v-model="listQuery.title"
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-button
type="primary"
size="mini"
style="margin-bottom:20px"
@click="handleAdd"
>新增活动</el-button>
<el-table v-loading="loading" :data="list" border style="width: 100%">
<el-table-column label="标题" prop="title" />
<el-table-column label="简介" prop="introduction" />
<el-table-column label="图片" prop="images">
<template v-if="scope.row.images && scope.row.images.length" slot-scope="scope">
<el-image
style="width: 100px; height: 100px"
:src="scope.row.images[0]"
:preview-src-list="scope.row.images"
/>
</template>
</el-table-column>
<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="操作" fixed="right" align="center" width="280px">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
round
style="font-size:14px;padding:10px 20px"
@click="handleDetail(scope.row)"
>查看详情</el-button>
<el-button
size="mini"
type="primary"
round
style="font-size:14px;padding:10px 20px"
@click="handleUpdate(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="danger"
round
style="font-size:14px;padding:10px 20px"
@click="handleDel(scope.row)"
>删除</el-button>
</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 { activityList, activityDel } 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 {
loading: false,
total: 0,
listQuery: {
lastPageIndex: 1,
size: 10,
title: 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() {
this.loading = true
activityList(this.listQuery).then(res => {
this.list = res.d.records
this.total = res.d.total
// this.pageSize = res.d.pageSize
this.loading = false
}).catch(() => {
this.loading = false
})
},
handleDel(item) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
activityDel({ id: item.id }).then(() => {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getList()
})
})
},
handleAdd() {
this.$router.push({
path: '/fingertipIntegral/activityCreate'
})
},
handleUpdate(item) {
this.$router.push({
path: '/fingertipIntegral/activityChange',
query: {
id: item.id
}
})
},
handleDetail(item) {
this.$router.push({
path: '/fingertipIntegral/activityDetail',
query: {
type: 'detail',
id: item.id
}
})
},
handleSearch() {
const { listQuery } = this
this.listQuery.lastPageIndex = 1
Object.keys(listQuery).forEach(key => {
if (listQuery[key] === '') listQuery[key] = undefined
})
this.getList()
}
}
}
</script>
<style></style>

View File

@ -131,6 +131,10 @@ export default {
{
value: 'SPECIAL_WORK_TYPE',
label: '特殊工单类型奖励积分(医保卫生)'
},
{
value: 'TITLE_EVALUATION',
label: '称号评比'
}
]
}

View File

@ -22,6 +22,7 @@
</div>
<el-table :data="list" border style="width: 100%">
<el-table-column label="用户名" prop="residentInformation.name" />
<el-table-column label="店名" prop="residentInformation.speciallyBusinessInfo.name" />
<el-table-column label="结算积分数" prop="num" />
<el-table-column label="提交时间">
@ -56,7 +57,7 @@
<el-table-column label="操作" width="300px" fixed="right" align="center">
<template slot-scope="scope">
<el-button
v-if="scope.row.dealStatus != '0'"
v-if="scope.row.invoiceStatus == '1' && scope.row.dealStatus != '0'"
type="primary"
size="mini"
style="font-size:12px;padding:10px 20px"
@ -68,7 +69,7 @@
size="mini"
style="font-size:12px;padding:10px 20px;border-radius:21px"
@click="handleDelivery(scope.row)"
>交付发票</el-button>
>收到发票</el-button>
</template>
</el-table-column>
</el-table>
@ -244,7 +245,7 @@ export default {
this.diaVisible = false
},
handleDelivery(item) {
this.$confirm('是否交付发票?', '提示', {
this.$confirm('是否收到发票?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'