积分申请

This commit is contained in:
花有清香月有阴
2022-02-16 17:54:40 +08:00
parent 5cdd6b74a8
commit 93d1761e5d
3 changed files with 88 additions and 116 deletions

View File

@@ -4,7 +4,7 @@
<div class="middle"> <div class="middle">
<div class="nav"> <div class="nav">
<div class="navLeft" @click="show = true"> <div class="navLeft" @click="showType = true">
<span>{{ name ? name : '全部类型' }}</span> <span>{{ name ? name : '全部类型' }}</span>
<u-icon name="arrow-down" v-if="!name"></u-icon> <u-icon name="arrow-down" v-if="!name"></u-icon>
@@ -16,17 +16,16 @@
<template v-if="data.length"> <template v-if="data.length">
<div class="items" v-for="(item, i) in data" :key="i" @click="toAdd(0, item)"> <div class="items" v-for="(item, i) in data" :key="i" @click="toAdd(0, item)">
<div class="cards"> <div class="cards">
<div class="cont">{{ item.content }}</div> <div class="cont">{{ item.description }}</div>
<div class="flex"> <div class="flex">
<span class="tags">{{ item.address }}</span> <span class="tags">{{ $dict.getLabel('atWillReportType', item.applyIntegralType) }}</span>
<span class="times">{{ item.createTime }}</span> <span class="times">{{ item.createTime }}</span>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<!-- status0 成功 status1 未通过 status2 待审核--> <span :style="{ class: item.auditStatus == 0 ? 'status0' : item.auditStatus == 1 ? 'status1' : 'status2' }" class="status status0">{{ $dict.getLabel('auditStatus', item.auditStatus) }}</span>
<span class="status status0">{{ item.name }}</span>
</div> </div>
</div> </div>
</template> </template>
@@ -36,11 +35,13 @@
<div class="fixedBtn" @click="toAdd(1)">我要申请</div> <div class="fixedBtn" @click="toAdd(1)">我要申请</div>
<u-select v-model="show" :list="lists" @confirm="confirm"></u-select> <u-select v-model="showType" :list="$dict.getDict('atWillReportType')" value-name="dictValue" label-name="dictName" @confirm="confirm"></u-select>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from 'vuex'
export default { export default {
name: 'AppIntegralApply', name: 'AppIntegralApply',
appName: '积分申请', appName: '积分申请',
@@ -61,17 +62,7 @@ export default {
}, },
], ],
currentTab: 0, currentTab: 0,
show: false, showType: false,
lists: [
{
value: '0',
label: '江',
},
{
value: '1',
label: '湖',
},
],
value: '', value: '',
name: '', name: '',
searchObj: '', searchObj: '',
@@ -79,10 +70,14 @@ export default {
current: 1, current: 1,
} }
}, },
computed: {}, computed: {
...mapState(['user']),
},
watch: {}, watch: {},
onLoad() { onLoad() {
this.getList() this.$dict.load('atWillReportType', 'auditStatus').then(() => {
this.getList()
})
}, },
onshow() { onshow() {
uni.$on('updateList', () => { uni.$on('updateList', () => {
@@ -92,11 +87,14 @@ export default {
methods: { methods: {
getList() { getList() {
this.$instance this.$instance
.post('/app/appmarriagefuneralinfo/list', null, { .post('/app/appvillagerintegraldeclare/list', null, {
params: { params: {
size: 6, size: 6,
current: this.current, current: this.current,
searchObj: this.searchObj, residentId: this.user.residentId,
description: this.searchObj,
applyIntegralType: this.value,
auditStatus: this.currentTab == '0' ? '' : this.currentTab == '1' ? '0' : this.currentTab == 2 ? '1|2' : '',
}, },
}) })
.then((res) => { .then((res) => {
@@ -108,11 +106,9 @@ export default {
toAdd(index, item) { toAdd(index, item) {
if (index == '0') { if (index == '0') {
console.log(index, '详情')
this.$linkTo(`./detail?id=${item.id}`) this.$linkTo(`./detail?id=${item.id}`)
} }
if (index == '1') { if (index == '1') {
console.log(index, '新增')
this.$linkTo(`./add`) this.$linkTo(`./add`)
} }
}, },
@@ -124,8 +120,10 @@ export default {
}, },
change(index) { change(index) {
this.init()
this.currentTab = index this.currentTab = index
this.data = []
this.current = 1
this.getList()
}, },
confirm(e) { confirm(e) {

View File

@@ -6,34 +6,29 @@
<u-input v-model="forms.name" placeholder="请输入申请人" maxlength="30" /> <u-input v-model="forms.name" placeholder="请输入申请人" maxlength="30" />
</u-form-item> </u-form-item>
<u-form-item label="申请时间" prop="beginTime" required :border-bottom="false" right-icon="arrow-right"> <u-form-item label="申请时间" prop="auditTime" required :border-bottom="false" right-icon="arrow-right">
<u-input v-model="forms.beginTime" disabled placeholder="请选择申请时间" @click="showStartTime = true" /> <u-input v-model="forms.auditTime" disabled placeholder="请选择申请时间" @click="showStartTime = true" />
<!-- <u-picker mode="time" :params="params" v-model="showStartTime" @confirm="confirmPicker"></u-picker> -->
<u-calendar mode="date" v-model="showStartTime" @change="changeCalendar"></u-calendar> <u-calendar mode="date" v-model="showStartTime" @change="changeCalendar"></u-calendar>
</u-form-item> </u-form-item>
<u-form-item label="位置" prop="address" required :border-bottom="false"> <div class="line"></div>
<u-input v-model="forms.address" disabled placeholder="请选择位置" @click="chooseAddress" />
<u-form-item label="积分类型" prop="applyIntegralType" required :border-bottom="false" right-icon="arrow-right">
<u-input v-model="forms.applyIntegralType" disabled placeholder="请选择积分类型" @click="showStstus = true" />
<u-select v-model="showStstus" :list="$dict.getDict('atWillReportType')" value-name="dictValue" label-name="dictName" @confirm="selectStatus"></u-select>
</u-form-item> </u-form-item>
<u-form-item label="申请描述" prop="description" required :border-bottom="false" label-position="top" class="contents">
<u-input v-model="forms.description" placeholder="请输入详细描述信息" type="textarea" :auto-height="true" maxlength="500" />
</u-form-item>
<div class="wordLength">{{ forms.description.length }}/500</div>
<div class="line"></div> <div class="line"></div>
<u-form-item label="积分类型" prop="type" required :border-bottom="false" right-icon="arrow-right"> <u-form-item label="图片上传 (最多9张)" prop="applyFiles" :border-bottom="false" class="avatars" label-position="top">
<u-input v-model="forms.type" disabled placeholder="请选择积分类型" @click="showStstus = true" /> <AiUploader v-model="forms.applyFiles" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
<u-select v-model="showStstus" :list="$dict.getDict('marriageType')" value-name="dictValue" label-name="dictName" @confirm="selectStatus"></u-select>
</u-form-item>
<u-form-item label="申请描述" prop="content" :border-bottom="false" label-position="top" class="contents">
<u-input v-model="forms.content" placeholder="请输入详细描述信息" type="textarea" :auto-height="true" maxlength="500" />
</u-form-item>
<div class="wordLength">{{ forms.content.length }}/500</div>
<div class="line"></div>
<u-form-item label="图片上传 (最多9张)" prop="files" :border-bottom="false" class="avatars" label-position="top">
<AiUploader :v-model="forms.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</u-form-item> </u-form-item>
<div class="line"></div> <div class="line"></div>
@@ -55,25 +50,14 @@ export default {
return { return {
forms: { forms: {
name: '', name: '',
beginTime: '', auditTime: '',
address: '', applyIntegralType: '',
lat: '', applyIntegralTypeValue: '',
lng: '', description: '',
applyFiles: [],
type: '',
typeValue: '',
phone: '',
address: '',
content: '',
personType: 1,
files: [],
}, },
showStstus: false, showStstus: false,
showModeType: false,
flag: false, flag: false,
showStartTime: false, showStartTime: false,
params: { params: {
year: true, year: true,
@@ -88,7 +72,7 @@ export default {
}, },
computed: { ...mapState(['user']) }, computed: { ...mapState(['user']) },
onLoad() { onLoad() {
this.$dict.load('marriageType', 'modeType') this.$dict.load('atWillReportType').then(() => {})
}, },
onShow() {}, onShow() {},
@@ -102,39 +86,32 @@ export default {
if (!this.forms.name) { if (!this.forms.name) {
return this.$u.toast('请输入申请人') return this.$u.toast('请输入申请人')
} }
if (!this.forms.beginTime) { // if (!this.forms.auditTime) {
return this.$u.toast('请选择申请时间') // return this.$u.toast('请选择申请时间')
} // }
if (!this.forms.address) {
return this.$u.toast('请选择位置') if (!this.forms.applyIntegralType) {
}
if (!this.forms.type) {
return this.$u.toast('请选择积分类型') return this.$u.toast('请选择积分类型')
} }
if (!this.forms.content) { if (!this.forms.description) {
return this.$u.toast('请输入描述信息') return this.$u.toast('请输入描述信息')
} }
const imgs = [] const imgs = []
if (this.forms.files) { if (this.forms.applyFiles) {
this.forms.files.map((e) => { this.forms.applyFiles.map((e) => {
imgs.push({ url: e.url, id: e.id }) imgs.push({ url: e.url, id: e.id })
}) })
} }
this.flag = true this.flag = true
this.$instance this.$instance
.post(`/app/appmarriagefuneralinfo/addOrUpdate`, { .post(`/app/appvillagerintegraldeclare/addOrUpdate`, {
name: this.forms.name, name: this.forms.name,
beginTime: this.forms.beginTime, applyIntegralType: this.forms.applyIntegralTypeValue,
address: this.forms.address, description: this.forms.description,
lat: this.forms.lat, applyFiles: imgs || [],
lng: this.forms.lng, residentId: this.user.residentId,
type: this.forms.typeValue,
content: this.forms.content,
files: imgs || [],
}) })
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
@@ -157,23 +134,12 @@ export default {
}, },
selectStatus(e) { selectStatus(e) {
this.forms.type = e[0].label this.forms.applyIntegralType = e[0].label
this.forms.typeValue = e[0].value this.forms.applyIntegralTypeValue = e[0].value
}, },
changeCalendar(e) { changeCalendar(e) {
this.forms.beginTime = e.result this.forms.auditTime = e.result
},
chooseAddress() {
uni.chooseLocation({
success: (res) => {
console.log(res)
this.forms.address = res.address
this.forms.lat = res.latitude
this.forms.lng = res.longitude
},
})
}, },
}, },
} }

View File

@@ -5,35 +5,32 @@
<div class="cards"> <div class="cards">
<div class="cards-left">申请人</div> <div class="cards-left">申请人</div>
<div class="cards-right">{{ detail.beginTime }}</div> <div class="cards-right">{{ detail.residentName }}</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">申请时间</div> <div class="cards-left">申请时间</div>
<div class="cards-right"> <div class="cards-right">
<span style="color: #1c6bdf">{{ detail.realNum }}</span> <span>{{ detail.createTime }}</span>
</div> </div>
</div> </div>
<div class="cards">
<div class="cards-left">位置</div>
<div class="cards-right" style="width: 75%; text-align: right">{{ detail.address }}</div>
</div>
<div class="cards"> <div class="cards">
<div class="cards-left">积分类型</div> <div class="cards-left">积分类型</div>
<div class="cards-right">{{ $dict.getLabel('marriageType', detail.status) }}</div> <div class="cards-right">
{{ $dict.getLabel('atWillReportType', detail.applyIntegralType) }}
</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">申请描述</div> <div class="cards-left">申请描述</div>
<div class="cards-right">{{ detail.areaName }}</div> <div class="cards-right">{{ detail.description }}</div>
</div> </div>
<div class="cardes"> <div class="cardes">
<div class="img-top">图片资料</div> <div class="img-top">图片资料</div>
<img src="../../static/img/jfph.png" alt="" v-for="(item, index) in 4" :key="index" style="width: 122px; height: 122px; margin-right: 4px" /> <img :src="item.url" alt="" v-for="(item, index) in detail.applyFiles" :key="index" style="width: 122px; height: 122px; margin-right: 4px" />
</div> </div>
</div> </div>
@@ -42,34 +39,38 @@
<div class="cards"> <div class="cards">
<div class="cards-left">审核结果</div> <div class="cards-left">审核结果</div>
<div class="cards-right">{{ detail.beginTime }}</div> <div class="cards-right" :style="{ class: detail.auditStatus == 0 ? 'status0' : detail.auditStatus == 1 ? 'status1' : 'status2' }">
{{ $dict.getLabel('auditStatus', detail.auditStatus) }}
</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">积分规则类型</div> <div class="cards-left">积分规则类型</div>
<div class="cards-right"> <div class="cards-right">
<span style="color: #1c6bdf">{{ detail.realNum }}</span> <span style="color: #1c6bdf">
{{ $dict.getLabel('atWillReportType', detail.applyIntegralType) }}
</span>
</div> </div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">积分规则事项</div> <div class="cards-left">积分规则事项</div>
<div class="cards-right" style="width: 75%; text-align: right">{{ detail.areaName }}{{ detail.address }}</div> <div class="cards-right" style="width: 75%; text-align: right">{{ detail.areaName }}</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">积分调整</div> <div class="cards-left">积分调整</div>
<div class="cards-right" style="width: 75%; text-align: right">{{ detail.areaName }}{{ detail.address }}</div> <div class="cards-right" style="width: 75%; text-align: right">{{ detail.auditIntegral }}</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">审核人</div> <div class="cards-left">审核人</div>
<div class="cards-right" style="width: 75%; text-align: right">{{ detail.areaName }}{{ detail.address }}</div> <div class="cards-right" style="width: 75%; text-align: right">{{ detail.auditUserName }}</div>
</div> </div>
<div class="cards"> <div class="cards">
<div class="cards-left">审核时间</div> <div class="cards-left">审核时间</div>
<div class="cards-right" style="width: 75%; text-align: right">{{ detail.areaName }}{{ detail.address }}</div> <div class="cards-right" style="width: 75%; text-align: right">{{ detail.auditTime }}</div>
</div> </div>
</div> </div>
@@ -101,16 +102,14 @@ export default {
}, },
onLoad(option) { onLoad(option) {
this.id = option.id this.id = option.id
this.$dict.load('atWillReportType', 'auditStatus').then(() => {
this.$dict.load('marriageType').then(() => {
this.getDetail() this.getDetail()
}) })
}, },
onShow() {}, onShow() {},
methods: { methods: {
getDetail() { getDetail() {
var ids = 'f16e54058cab4099bf3ee6e03e750b93' this.$instance.post(`/app/appvillagerintegraldeclare/queryDetailById?id=${this.id}`).then((res) => {
this.$instance.post(`/app/appvillageactivityinfo/queryDetailById?id=${ids}`).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.detail = res.data this.detail = res.data
} }
@@ -122,7 +121,6 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.page { .page {
width: 100%; width: 100%;
height: 100%;
background-color: #fff; background-color: #fff;
.top, .top,
@@ -150,6 +148,16 @@ export default {
.cards-right { .cards-right {
color: #333; color: #333;
} }
.status0 {
color: #42d784;
}
.status1 {
color: #ff4466;
}
.status2 {
color: #ff883c;
}
} }
.cardes { .cardes {
border-bottom: 2px solid #eee; border-bottom: 2px solid #eee;