first commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-cell-group--inset {
|
||||
margin: 0 16px;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.bottom-button {
|
||||
width: 160px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="地址管理" left-arrow
|
||||
@click-left="back"></van-nav-bar>
|
||||
</van-sticky>
|
||||
|
||||
<div v-if="vLoading && !vLoading.value">
|
||||
<van-address-list
|
||||
v-if="addressList && addressList.length>0 "
|
||||
v-model="chosenAddressId"
|
||||
:list="addressList"
|
||||
default-tag-text="默认"
|
||||
@add="onAdd"
|
||||
@edit="onEdit"
|
||||
></van-address-list>
|
||||
|
||||
<van-empty v-else description="暂无地址">
|
||||
<van-button round type="danger" class="bottom-button" @click="onAdd">新增地址</van-button>
|
||||
</van-empty>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("/mobile/welfare/include/mixins.js"){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins, welfareMixins],
|
||||
data() {
|
||||
return {
|
||||
projectId:GetQueryString("projectId"),
|
||||
chosenAddressId: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
if (this.projectId) {
|
||||
location.replace("/mobile/welfare/list/receive?projectId=" + this.projectId)
|
||||
} else {
|
||||
pjaxReplace("/mobile/index")
|
||||
}
|
||||
},
|
||||
onAdd() {
|
||||
pjaxReplace("/mobile/welfare/mine/addressEdit?projectId=" + this.projectId)
|
||||
},
|
||||
onEdit(item, index) {
|
||||
pjaxReplace("/mobile/welfare/mine/addressEdit?id=" + item.id)
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
|
||||
this.startLoading()
|
||||
await this.selectAddressList()
|
||||
this.closeLoading()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,115 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-cell-group--inset {
|
||||
margin: 0 16px;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="地址管理" left-arrow placeholder fixed
|
||||
@click-left="back"></van-nav-bar>
|
||||
</van-sticky>
|
||||
|
||||
<div v-if="vLoading && !vLoading.value">
|
||||
<van-address-edit
|
||||
ref="address"
|
||||
:area-list="areaList"
|
||||
:show-delete="addressId"
|
||||
:address-info="addressInfo"
|
||||
show-set-default
|
||||
show-search-result
|
||||
tel-maxlength="11"
|
||||
:area-columns-placeholder="['请选择', '请选择', '请选择']"
|
||||
@save="onSave"
|
||||
@delete="onDelete"
|
||||
></van-address-edit>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("/mobile/welfare/include/areaList.js"){};include("/mobile/welfare/include/mixins.js"){}#-->
|
||||
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins, welfareMixins],
|
||||
data() {
|
||||
return {
|
||||
projectId:GetQueryString("projectId"),
|
||||
areaList: areaList,
|
||||
addressInfo: {},
|
||||
addressId: null
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
if (this.projectId) {
|
||||
// pjaxReplace("/mobile/welfare/mine/address?projectId=" + this.projectId)
|
||||
pjaxReplace("/mobile/welfare/list/receive?projectId=" + this.projectId)
|
||||
} else {
|
||||
pjaxReplace("/mobile/welfare/mine/address")
|
||||
}
|
||||
},
|
||||
async onSave(content) {
|
||||
const loading = this.$toast.loading({
|
||||
message: '保存中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
content.userName = content.name
|
||||
const resp = await $.post('/mobile/welfare/mine/doSaveUserAddress', content)
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
this.back()
|
||||
}, 500)
|
||||
}
|
||||
},
|
||||
async onDelete(content) {
|
||||
const loading = this.$toast.loading({
|
||||
message: '删除中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
const resp = await $.post('/mobile/welfare/mine/deleteAddress', {id: content.id})
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
this.back()
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.startLoading()
|
||||
this.addressId = GetQueryString("id") === '' ? null : GetQueryString("id")
|
||||
if (this.addressId) {
|
||||
const resp = await $.get('/mobile/welfare/mine/findOneUserAddress', {id: this.addressId})
|
||||
if (resp.code === 0) {
|
||||
this.addressInfo = resp.data
|
||||
}
|
||||
this.closeLoading()
|
||||
} else {
|
||||
this.addressInfo.name = "${@shiro.getPrincipalProperty('username')}";
|
||||
this.closeLoading()
|
||||
}
|
||||
/* this.areaList.province_list = {320000: "江苏省"}
|
||||
this.areaList.city_list = {320200: "无锡市"}*/
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,64 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-cell-group--inset {
|
||||
margin: 0 16px;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="个人信息" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<div class="mt10" v-if="vLoading && !vLoading.value">
|
||||
<van-cell-group class="van-cell-group--inset">
|
||||
<van-cell>
|
||||
<template #title>
|
||||
<div style="font-weight: bold;font-size: 15px">个人信息</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell :border="false" is-link title="我选择的福利" url="/mobile/welfare/mine/myWelfare">
|
||||
<template #icon>
|
||||
<van-icon class="van-cell__left-icon" color="red" name="star"></van-icon>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell :border="false" is-link title="我的收货地址" url="/mobile/welfare/mine/address">
|
||||
<template #icon>
|
||||
<van-icon class="van-cell__left-icon" color="red" name="location"></van-icon>
|
||||
</template>
|
||||
</van-cell>
|
||||
<!-- <van-cell :border="false" is-link title="我的签名" url="/mobile/welfare/mine/sign">-->
|
||||
<!-- <template #icon>-->
|
||||
<!-- <van-icon class="van-cell__left-icon" color="red" name="coupon"></van-icon>-->
|
||||
<!-- </template>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("/mobile/welfare/include/mixins.js"){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins, welfareMixins],
|
||||
data() {
|
||||
return {
|
||||
tarBarActive: 1
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.startLoading()
|
||||
this.closeLoading()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,560 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-card {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.address-cell .van-cell__title {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell-group--inset {
|
||||
margin: 10px 16px !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.logistics_cell {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.logistics_cell .van-step__title {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.logistics_cell .van-step__title h3 {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.evaluateForm .evaluateTextField .van-field__label {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.evaluateForm .evaluateTextField .van-field__value textarea {
|
||||
padding: 10px;
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
|
||||
.van-action-sheet__header {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.courierNumberSheet .van-empty {
|
||||
position: relative;
|
||||
left: unset !important;
|
||||
top: unset !important;
|
||||
transform: unset !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="pjaxReplace('/mobile//index')" left-arrow
|
||||
title="我的福利"></van-nav-bar>
|
||||
|
||||
<van-dropdown-menu active-color="#1989fa">
|
||||
<van-dropdown-item :options="yearOption" @change="yearChange"
|
||||
v-model="pageForm.year"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
|
||||
</van-sticky>
|
||||
|
||||
<template v-if="vLoading && !vLoading.value">
|
||||
<van-list
|
||||
:finished="finished"
|
||||
@load="pageData"
|
||||
finished-text="没有更多了"
|
||||
v-if="tableData.length>=0"
|
||||
v-model="loading">
|
||||
<template v-for="item in tableData">
|
||||
<div style="padding: 10px;margin:10px 10px 0 10px;position: relative;background: #FFFFFF;border-radius: 10px">
|
||||
<div style="font-weight: bold;display: flex;align-items: center">
|
||||
<svg class="icon" height="20" p-id="4175" t="1715150952924"
|
||||
version="1.1" viewBox="0 0 1024 1024" width="20"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M513.2288 510.72m-450.816 0a450.816 450.816 0 1 0 901.632 0 450.816 450.816 0 1 0-901.632 0Z"
|
||||
fill="#FFE1E9" p-id="4176"></path>
|
||||
<path d="M777.8304 321.6896h-198.4512l62.6176-60.7744a29.2864 29.2864 0 0 0 0.6144-41.4208 29.2864 29.2864 0 0 0-41.4208-0.6144L514.4576 303.104 436.3264 219.8528a29.28128 29.28128 0 0 0-41.3696-1.3312 29.2352 29.2352 0 0 0-1.28 41.3696L451.584 321.6896H258.7648c-19.712 0-35.6352 15.9744-35.6352 35.6352v83.3024c0 19.712 15.9744 35.6352 35.6352 35.6352h27.2384v238.7456c0 45.1072 36.608 81.7152 81.7152 81.7152h301.2096c45.1072 0 81.7152-36.608 81.7152-81.7152V476.3136h27.2384c19.712 0 35.6352-15.9744 35.6352-35.6352V357.376a35.6864 35.6864 0 0 0-35.6864-35.6864z m-230.2464 342.0672c0 16.1792-13.1072 29.2864-29.2864 29.2864s-29.2864-13.1072-29.2864-29.2864v-97.7408c0-16.1792 13.1072-29.2864 29.2864-29.2864s29.2864 13.1072 29.2864 29.2864v97.7408z"
|
||||
fill="#FF3369" p-id="4177"></path>
|
||||
<path d="M776.6016 321.6896h-197.2224l62.6176-60.7744a29.2864 29.2864 0 0 0 0.6144-41.4208 29.2864 29.2864 0 0 0-41.4208-0.6144L514.4576 303.104 436.3264 219.8528a29.28128 29.28128 0 0 0-41.3696-1.3312 29.2352 29.2352 0 0 0-1.28 41.3696L451.584 321.6896H258.7648c-19.6608 0-35.6352 15.9744-35.6352 35.6352v83.3024c0 19.712 15.9744 35.6352 35.6352 35.6352h27.2384v238.7456c0 45.1072 36.608 81.7152 81.7152 81.7152H432.64c146.6368-31.8976 265.9328-136.7552 318.0032-274.7392v-45.7216h14.4896a442.2656 442.2656 0 0 0 11.4688-154.5728z m-229.0176 342.0672c0 16.1792-13.1072 29.2864-29.2864 29.2864-16.1792 0-29.2864-13.1072-29.2864-29.2864v-97.7408c0-16.1792 13.1072-29.2864 29.2864-29.2864 16.1792 0 29.2864 13.1072 29.2864 29.2864v97.7408z"
|
||||
fill="#FF4D7C" p-id="4178"></path>
|
||||
<path d="M579.3792 321.6896l62.6176-60.7744a29.2864 29.2864 0 0 0 0.6144-41.4208 29.2864 29.2864 0 0 0-41.4208-0.6144L514.4576 303.104 436.3264 219.8528a29.28128 29.28128 0 0 0-41.3696-1.3312 29.2352 29.2352 0 0 0-1.28 41.3696L451.584 321.6896H258.7648c-19.6608 0-35.6352 15.9744-35.6352 35.6352v83.3024c0 19.712 15.9744 35.6352 35.6352 35.6352h27.2384v169.0624c76.6464-11.8272 146.688-43.52 204.9024-89.4976a29.27616 29.27616 0 0 1 22.1696-18.5856c62.8224-56.6784 109.2096-131.1744 131.1744-215.552h-64.8704z"
|
||||
fill="#FF5F89" p-id="4179"></path>
|
||||
<path d="M488.3456 275.3024L436.3264 219.8528a29.28128 29.28128 0 0 0-41.3696-1.3312 29.2352 29.2352 0 0 0-1.28 41.3696L451.584 321.6896H258.7648c-19.6608 0-35.6352 15.9744-35.6352 35.6352v83.3024c0 14.4384 8.6016 26.8288 20.8896 32.4096 103.68-33.7408 190.464-105.0112 244.3264-197.7344z"
|
||||
fill="#FF7196" p-id="4180"></path>
|
||||
</svg>
|
||||
{{item.name}}
|
||||
</div>
|
||||
<van-card>
|
||||
<template #thumb>
|
||||
<img :src="FILE_STREAM_PREVIEW_ADDRESS+'?id='+item.cover" alt=""
|
||||
style="width: 88px;height: 88px"
|
||||
v-if="item.cover">
|
||||
<img src="/assets/mobile/svg/welfare/welfareHome.svg"
|
||||
style="width: 88px;height: 88px"
|
||||
v-else/>
|
||||
</template>
|
||||
<div slot="tags" style="margin-top: 5px;padding-left: 30px;"
|
||||
v-if="item.gifts">
|
||||
<div :key="item.name" class="van-card__bottom"
|
||||
v-for="gift in item.gifts">
|
||||
<div class="van-card__price">
|
||||
{{gift.name}}
|
||||
</div>
|
||||
<div class="van-card__num">x{{gift.num}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" style="margin-top: 10px;">
|
||||
<van-button @click="openEvaluate(item)" plain round size="small">评价商品
|
||||
</van-button>
|
||||
<van-button @click="openExpress(item)" plain round size="small"
|
||||
v-if="item.provideMode==3">
|
||||
物流信息
|
||||
</van-button>
|
||||
<van-button @click="openView(item)" plain round size="small">查看详情
|
||||
</van-button>
|
||||
</div>
|
||||
</van-card>
|
||||
</div>
|
||||
</template>
|
||||
</van-list>
|
||||
</template>
|
||||
|
||||
<!--查看详情-->
|
||||
<!-- :style="{ height: '80%', background:'#f9f9f9','padding-top':'30px'}"-->
|
||||
<!-- closeable-->
|
||||
<!-- position="bottom"-->
|
||||
<!-- round-->
|
||||
<!-- safe-area-inset-bottom-->
|
||||
<van-action-sheet title="查看详情" v-model="descPopup">
|
||||
<div class="van-cell-group--inset">
|
||||
<van-cell>
|
||||
<van-icon class="van-cell__left-icon" color="red" name="location"
|
||||
slot="icon"></van-icon>
|
||||
<div slot="title" style="font-weight: bold;font-size: 15px">已选福利</div>
|
||||
</van-cell>
|
||||
<van-cell style="padding: 0">
|
||||
<van-card
|
||||
:key="item.id"
|
||||
:num="item.selectNum"
|
||||
:thumb="FILE_STREAM_PREVIEW_ADDRESS+'?id='+item.imgUrl"
|
||||
:title="item.optionName"
|
||||
style="border-radius: 8px;background: #FFFFFF"
|
||||
v-for="item in selectedOptions"
|
||||
>
|
||||
<template #desc>
|
||||
<div>{{item.supplier}}</div>
|
||||
<div>{{item.simpleDesc}}</div>
|
||||
</template>
|
||||
</van-card>
|
||||
</van-cell>
|
||||
</div>
|
||||
|
||||
<!--邮寄到家 填写收货地址-->
|
||||
<div class="van-cell-group--inset" v-if="provideMode===3">
|
||||
<van-cell>
|
||||
<van-icon class="van-cell__left-icon" color="red" name="location"
|
||||
slot="icon"></van-icon>
|
||||
<div slot="title" style="font-weight: bold;font-size: 15px">收货地址</div>
|
||||
</van-cell>
|
||||
<van-cell :value="receiveAddress" class="address-cell">
|
||||
</van-cell>
|
||||
</div>
|
||||
|
||||
<!--电子签字-->
|
||||
<div class="van-cell-group--inset" v-if="signMode===2">
|
||||
<van-cell>
|
||||
<template #title>
|
||||
<div style="font-weight: bold;font-size: 15px">电子签名</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="">
|
||||
<template #label>
|
||||
<van-image :src="'/signature/getSignData?path=' + userSign"
|
||||
style="width: 100%;height: 150px;border: 1px dashed"></van-image>
|
||||
</template>
|
||||
</van-cell>
|
||||
</div>
|
||||
|
||||
|
||||
</van-action-sheet>
|
||||
|
||||
<!--评价-->
|
||||
<van-popup :style="{ height: '60%',background:'#f9f9f9','padding-top':'30px'}"
|
||||
closeable
|
||||
position="bottom"
|
||||
round
|
||||
safe-area-inset-bottom
|
||||
v-model="evaluatePopup">
|
||||
|
||||
<div style="margin-top: 20px">
|
||||
<van-radio-group v-model="evaluateFormData.optionId">
|
||||
<van-cell-group>
|
||||
<van-cell
|
||||
:key="item.selectOptionId"
|
||||
@click="optionIdClick(item.selectOptionId)"
|
||||
clickable v-for="item in selectedOptions">
|
||||
<template #title>
|
||||
{{item.optionName}}
|
||||
<span style="color: red" v-if="!item.isPj">未评价</span>
|
||||
</template>
|
||||
<template #right-icon>
|
||||
<van-radio :name="item.selectOptionId"></van-radio>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
<div class="evaluateForm">
|
||||
|
||||
|
||||
<div style="text-align: center;margin: 20px 0;font-size: 20px;color: #f18d8d;font-weight: bold;">
|
||||
您的评价让我们做的更好
|
||||
</div>
|
||||
|
||||
<div style="display: flex;justify-content: center;flex-direction: column;align-items: center">
|
||||
<div style="text-align: center;font-size: 13px;color: rgb(139 134 134)">为本次福利打分
|
||||
</div>
|
||||
<van-rate
|
||||
:gutter="10"
|
||||
:readonly="evaluateFormData.id"
|
||||
:size="40"
|
||||
color="#ffd21e"
|
||||
v-model="evaluateFormData.evaluateScore"
|
||||
void-color="#eee"
|
||||
void-icon="star"
|
||||
></van-rate>
|
||||
</div>
|
||||
|
||||
<van-field
|
||||
:readonly="evaluateFormData.id"
|
||||
autosize
|
||||
class="evaluateTextField"
|
||||
label="评价"
|
||||
label-width="0"
|
||||
maxlength="100"
|
||||
placeholder="请输入评价"
|
||||
rows="5"
|
||||
type="textarea"
|
||||
v-model="evaluateFormData.evaluateText"
|
||||
>
|
||||
<div slot="label"></div>
|
||||
</van-field>
|
||||
</div>
|
||||
<div style="padding: 10px 16px">
|
||||
<van-button @click="doSubmitEvaluate"
|
||||
block
|
||||
type="primary"
|
||||
v-if="!evaluateFormData.id">提交
|
||||
</van-button>
|
||||
|
||||
<div style="display: flex;align-items: center;color: #52c41a;justify-content: center;font-size: 20px"
|
||||
v-else>
|
||||
<svg class="icon" height="32" p-id="2914" t="1715150529722"
|
||||
version="1.1" viewBox="0 0 1024 1024" width="32"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M596.48 113.024a142.848 142.848 0 0 0-169.024 0l-49.472 36.288a62.848 62.848 0 0 1-27.648 11.52l-60.8 9.28a142.848 142.848 0 0 0-119.424 119.488l-9.344 60.8a62.848 62.848 0 0 1-11.52 27.648l-36.224 49.472a142.848 142.848 0 0 0 0 169.088l36.288 49.472a62.336 62.336 0 0 1 11.456 27.648l9.344 60.672a142.848 142.848 0 0 0 119.488 119.488l60.672 9.344a62.656 62.656 0 0 1 27.648 11.52l49.472 36.224a142.848 142.848 0 0 0 169.088 0l49.472-36.288a62.4 62.4 0 0 1 27.648-11.52l60.672-9.28a142.912 142.912 0 0 0 119.552-119.552l9.344-60.672a62.656 62.656 0 0 1 11.52-27.648l36.224-49.472a142.848 142.848 0 0 0 0-169.088l-36.288-49.472a62.848 62.848 0 0 1-11.456-27.648l-9.28-60.8a142.848 142.848 0 0 0-119.488-119.424l-60.672-9.344a62.912 62.912 0 0 1-27.648-11.52l-49.536-36.224zM474.88 177.472a62.72 62.72 0 0 1 74.368 0l49.472 36.288c18.56 13.632 40.128 22.528 62.976 26.048l60.544 9.28a62.848 62.848 0 0 1 52.672 52.672l9.28 60.608c3.52 22.784 12.416 44.352 26.048 62.976l36.288 49.408a62.72 62.72 0 0 1 0 74.368l-36.288 49.472c-13.632 18.56-22.592 40.192-26.048 62.976l-9.28 60.608a62.848 62.848 0 0 1-52.672 52.608l-60.608 9.28a142.784 142.784 0 0 0-62.976 26.112l-49.408 36.224a62.72 62.72 0 0 1-74.368 0l-49.472-36.224a142.784 142.784 0 0 0-62.976-26.112l-60.544-9.28a62.784 62.784 0 0 1-52.672-52.608l-9.28-60.672a142.848 142.848 0 0 0-26.112-62.912l-36.224-49.472a62.848 62.848 0 0 1 0-74.368l36.224-49.472a142.72 142.72 0 0 0 26.112-62.912l9.28-60.608a62.848 62.848 0 0 1 52.672-52.672l60.608-9.28c22.784-3.456 44.352-12.416 62.912-26.048l49.472-36.288z m212.096 269.44A40 40 0 0 0 630.4 390.4L458.688 562.112 393.6 497.088a40 40 0 0 0-56.576 56.512l93.376 93.312a40 40 0 0 0 56.512 0l200-200z"
|
||||
fill="#52C41A" p-id="2915"></path>
|
||||
</svg>
|
||||
评价完成
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
|
||||
<!--快递单号-->
|
||||
<van-popup :style="{ height: '80%', background:'#f9f9f9','padding-top':'30px'}"
|
||||
closeable
|
||||
position="bottom"
|
||||
round
|
||||
safe-area-inset-bottom
|
||||
v-model="expressPopup">
|
||||
<div class="van-cell-group--inset">
|
||||
<van-cell>
|
||||
<van-icon class="van-cell__left-icon" color="red" name="location"
|
||||
slot="icon"></van-icon>
|
||||
<div slot="title" style="font-weight: bold;font-size: 15px">物流信息</div>
|
||||
</van-cell>
|
||||
<van-cell :value="logisticsTrace.courierNumber" class="address-cell"
|
||||
title="快递单号"></van-cell>
|
||||
<van-cell class="logistics_cell" title="物流跟踪">
|
||||
<van-steps :active="0"
|
||||
direction="vertical">
|
||||
<van-step v-for="(item, index) in logisticsTrace.logisticsTraceDetailList">
|
||||
<h3> {{item.desc}}</h3>
|
||||
<p>{{moment(item.time).format('YYYY-MM-DD HH:mm:ss')}}</p>
|
||||
</van-step>
|
||||
</van-steps>
|
||||
</van-cell>
|
||||
</div>
|
||||
</van-popup>
|
||||
|
||||
<!--快递物流信息-->
|
||||
<van-action-sheet class="courierNumberSheet"
|
||||
title=快递物流信息
|
||||
v-model="courierNumberShow">
|
||||
<div style="padding: 16px 16px 16px">
|
||||
<div v-for="(v,k) in optionCourierNumberInfo">
|
||||
<van-cell :title="k">
|
||||
<div slot="title" style="font-weight: bold">
|
||||
{{k}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-collapse accordion v-model="activeName">
|
||||
<van-collapse-item :key="item.courierNumber" :name="item.courierNumber"
|
||||
:title="item.courierNumber" v-for="item in v">
|
||||
<template>
|
||||
|
||||
<van-cell :value="item.courierNumber" class="address-cell"
|
||||
title="快递单号">
|
||||
<div>
|
||||
{{item.courierNumber || '暂无'}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell class="logistics_cell" title="物流跟踪">
|
||||
<van-steps :active="0"
|
||||
direction="vertical"
|
||||
v-if="item.logisticsTrace && item.logisticsTrace.logisticsTraceDetailList">
|
||||
<van-step
|
||||
v-for="(timeline, timelineIndex) in item.logisticsTrace.logisticsTraceDetailList">
|
||||
<h3> {{timeline.desc}}</h3>
|
||||
<p>{{moment(timeline.time)
|
||||
.format('YYYY-MM-DD HH:mm:ss')}}</p>
|
||||
</van-step>
|
||||
</van-steps>
|
||||
<van-empty v-else></van-empty>
|
||||
</van-cell>
|
||||
|
||||
<van-divider :hairline="false"></van-divider>
|
||||
</template>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</van-action-sheet>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
<!--#include("/mobile/welfare/include/mixins.js"){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins, welfareMixins],
|
||||
data() {
|
||||
return {
|
||||
pageDataUrl: '/platform/welfare/mine/pageData',
|
||||
|
||||
fullWelfareList: [],
|
||||
welfareList: [],
|
||||
tabActive: 0,
|
||||
|
||||
descPopup: false,
|
||||
evaluatePopup: false,
|
||||
|
||||
selectedOptions: [],
|
||||
|
||||
provideMode: null,
|
||||
signMode: null,
|
||||
signData: null,
|
||||
selectAddress: null,
|
||||
|
||||
evaluateFormData: {},
|
||||
|
||||
expressPopup: false,
|
||||
logisticsTrace: {},
|
||||
|
||||
stepsActive: 0,
|
||||
|
||||
yearOption: [],
|
||||
|
||||
courierNumberShow: false,
|
||||
courierNumberActions: [],
|
||||
|
||||
activeName: null,
|
||||
optionCourierNumberInfo: []
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
receiveAddress() {
|
||||
if (this.selectedOptions && this.selectedOptions.length > 0) {
|
||||
return this.selectedOptions[0].receiveAddress
|
||||
}
|
||||
return null
|
||||
},
|
||||
userSign() {
|
||||
if (this.selectedOptions && this.selectedOptions.length > 0) {
|
||||
return this.selectedOptions[0].userSign
|
||||
}
|
||||
return null
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
optionIdClick(selectOptionId) {
|
||||
this.$set(this.evaluateFormData, 'optionId', selectOptionId)
|
||||
this.finOneWelfareEvaluate(this.evaluateFormData.projectId, selectOptionId);
|
||||
},
|
||||
async getUserSelection(projectId) {
|
||||
const resp = await $.get('/platform/welfare/mine/getUserSelection', {projectId})
|
||||
return resp
|
||||
},
|
||||
//查看选择详情
|
||||
async openView(item) {
|
||||
const {projectId, provideMode, signMode} = item
|
||||
this.provideMode = provideMode
|
||||
this.signMode = signMode
|
||||
const {code, data, msg} = await this.getUserSelection(projectId)
|
||||
if (code === 0) {
|
||||
if (data.length === 0) {
|
||||
this.$modal.msg('您还没有选择福利,请先到职工福利->福利列表下选择')
|
||||
return
|
||||
}
|
||||
this.descPopup = true
|
||||
this.selectedOptions = data
|
||||
}
|
||||
},
|
||||
|
||||
//打开评价
|
||||
async openEvaluate(item) {
|
||||
if (item.isChoose !== 1) {
|
||||
this.$modal.msg("选择后才能评价")
|
||||
return
|
||||
}
|
||||
|
||||
const resp = await this.getUserSelection(item.projectId)
|
||||
this.selectedOptions = resp.data
|
||||
if (this.selectedOptions && this.selectedOptions.length > 0) {
|
||||
await this.finOneWelfareEvaluate(item.id, this.selectedOptions[0].selectOptionId)
|
||||
}
|
||||
this.evaluatePopup = true
|
||||
},
|
||||
async finOneWelfareEvaluate(projectId, optionId) {
|
||||
const {
|
||||
data,
|
||||
code,
|
||||
msg
|
||||
} = await $.post("/platform/welfare/mine/finOneWelfareEvaluate", {
|
||||
projectId: projectId,
|
||||
optionId: optionId
|
||||
})
|
||||
if (code === 0) {
|
||||
if (data) {
|
||||
this.evaluateFormData = data
|
||||
} else {
|
||||
this.evaluateFormData = {
|
||||
projectId: projectId,
|
||||
optionId: optionId
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(msg)
|
||||
}
|
||||
},
|
||||
|
||||
//评价
|
||||
async doSubmitEvaluate() {
|
||||
if (!this.evaluateFormData.evaluateScore) {
|
||||
this.$modal.msg("请为本次福利评分")
|
||||
return
|
||||
}
|
||||
const {
|
||||
code,
|
||||
data,
|
||||
msg
|
||||
} = await $.post('/platform/welfare/mine/doEvaluate', this.evaluateFormData)
|
||||
if (code === 0) {
|
||||
this.$modal.msgSuccess("评价成功")
|
||||
this.evaluatePopup = false
|
||||
} else {
|
||||
this.$modal.msgError(msg)
|
||||
}
|
||||
},
|
||||
|
||||
tabChange(val) {
|
||||
if (val === 0) {
|
||||
this.welfareList = this.fullWelfareList
|
||||
}
|
||||
switch (val) {
|
||||
case 0: {
|
||||
this.welfareList = this.fullWelfareList
|
||||
break
|
||||
}
|
||||
case 1: {
|
||||
this.welfareList = this.fullWelfareList.filter(v => v.isReceive || [1].includes(v.provideMode))
|
||||
break
|
||||
}
|
||||
case 2: {
|
||||
this.welfareList = this.fullWelfareList.filter(v => !v.isReceive)
|
||||
break
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//获取物流信息
|
||||
async getExpressInfo(row) {
|
||||
const resp = await $.get('/platform/welfare/mine/getExpressInfo', {courierNumber: row.courierNumber})
|
||||
if (resp.code === 0) {
|
||||
resp.data.courierNumber = row.courierNumber
|
||||
resp.data.logisticsTraceDetailList.sort((a, b) => {
|
||||
return b.time - a.time;
|
||||
})
|
||||
this.logisticsTrace = resp.data
|
||||
} else {
|
||||
this.$toast.msgError(resp.msg);
|
||||
}
|
||||
},
|
||||
|
||||
//打开物流
|
||||
async openExpress(item) {
|
||||
const {
|
||||
code,
|
||||
data,
|
||||
msg
|
||||
} = await $.get('/platform/welfare/common/courierNumberInfo', {
|
||||
welfareId: item.projectId,
|
||||
userId: item.userId
|
||||
})
|
||||
if (code === 0) {
|
||||
if (data == null || data.length === 0) {
|
||||
this.$modal.msg('您还没有选择福利套餐')
|
||||
return
|
||||
}
|
||||
this.optionCourierNumberInfo = data
|
||||
const keys = Object.keys(this.optionCourierNumberInfo)
|
||||
this.activeName = this.optionCourierNumberInfo[keys[0]][0].courierNumber
|
||||
this.courierNumberShow = true
|
||||
} else {
|
||||
vant.Dialog.alert({
|
||||
title: '提示',
|
||||
message: msg
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
yearChange(val) {
|
||||
this.pageForm.year = val
|
||||
this.onRefresh()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.startLoading()
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearOption.unshift({value: i, text: i + '年'},)
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearOption[0].value)
|
||||
this.closeLoading()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,106 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
#app {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
#signature {
|
||||
/*height: calc(100vh - 136px);*/
|
||||
height: 300px;
|
||||
background: #fff;
|
||||
border: 1px dashed grey;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.button-operation {
|
||||
/* display: flex;
|
||||
height: 50px;
|
||||
align-items: center;
|
||||
position: fixed;
|
||||
!*bottom: 0;*!
|
||||
width: 100%;
|
||||
margin: 10px 0;*/
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.button-operation > div {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.button-operation > div > button {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="history.go(-1)" left-arrow
|
||||
title="我的签名"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<van-cell>
|
||||
<template #title>
|
||||
<div style="font-weight: bold;font-size: 15px">电子签名</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="">
|
||||
<template #label>
|
||||
<mobile-sign :is_value_base64="false" prefix="welfare"
|
||||
ref="signature" v-model="signData"></mobile-sign>
|
||||
</template>
|
||||
</van-cell>
|
||||
|
||||
<div class="button-operation">
|
||||
<van-button @click="save" round size="large" type="info">保存</van-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
signData: null
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
async save() {
|
||||
if (!this.signData) {
|
||||
this.$toast('请先签字!')
|
||||
return
|
||||
}
|
||||
const loading = this.$toast.loading({
|
||||
message: '保存中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
const resp = await $.post('/mobile/welfare/mine/saveMySignature', {
|
||||
signData: this.signData,
|
||||
prefix: "welfare"
|
||||
})
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.signData = resp.data
|
||||
this.$toast.success('保存成功!')
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
created() {
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user