积分申请

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

View File

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

View File

@@ -5,35 +5,32 @@
<div class="cards">
<div class="cards-left">申请人</div>
<div class="cards-right">{{ detail.beginTime }}</div>
<div class="cards-right">{{ detail.residentName }}</div>
</div>
<div class="cards">
<div class="cards-left">申请时间</div>
<div class="cards-right">
<span style="color: #1c6bdf">{{ detail.realNum }}</span>
<span>{{ detail.createTime }}</span>
</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-left">积分类型</div>
<div class="cards-right">{{ $dict.getLabel('marriageType', detail.status) }}</div>
<div class="cards-right">
{{ $dict.getLabel('atWillReportType', detail.applyIntegralType) }}
</div>
</div>
<div class="cards">
<div class="cards-left">申请描述</div>
<div class="cards-right">{{ detail.areaName }}</div>
<div class="cards-right">{{ detail.description }}</div>
</div>
<div class="cardes">
<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>
@@ -42,34 +39,38 @@
<div class="cards">
<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 class="cards">
<div class="cards-left">积分规则类型</div>
<div class="cards-right">
<span style="color: #1c6bdf">{{ detail.realNum }}</span>
<span style="color: #1c6bdf">
{{ $dict.getLabel('atWillReportType', detail.applyIntegralType) }}
</span>
</div>
</div>
<div class="cards">
<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 class="cards">
<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 class="cards">
<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 class="cards">
<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>
@@ -101,16 +102,14 @@ export default {
},
onLoad(option) {
this.id = option.id
this.$dict.load('marriageType').then(() => {
this.$dict.load('atWillReportType', 'auditStatus').then(() => {
this.getDetail()
})
},
onShow() {},
methods: {
getDetail() {
var ids = 'f16e54058cab4099bf3ee6e03e750b93'
this.$instance.post(`/app/appvillageactivityinfo/queryDetailById?id=${ids}`).then((res) => {
this.$instance.post(`/app/appvillagerintegraldeclare/queryDetailById?id=${this.id}`).then((res) => {
if (res.code == 0) {
this.detail = res.data
}
@@ -122,7 +121,6 @@ export default {
<style scoped lang="scss">
.page {
width: 100%;
height: 100%;
background-color: #fff;
.top,
@@ -150,6 +148,16 @@ export default {
.cards-right {
color: #333;
}
.status0 {
color: #42d784;
}
.status1 {
color: #ff4466;
}
.status2 {
color: #ff883c;
}
}
.cardes {
border-bottom: 2px solid #eee;