This commit is contained in:
Paidax
2024-07-23 09:52:35 +08:00
parent f734d9511c
commit e2f6a9f4b1
221 changed files with 12004 additions and 14330 deletions
@@ -5,44 +5,43 @@ layout("/mobile/platform.html"){
<div id="app" v-cloak>
<van-nav-bar title="填写慰问申请" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<van-form ref="addForm" :show-error-message="false" input-align="right">
<van-form ref="addForm" :show-error-message="false" input-align="right" style="margin-bottom: 60px">
<van-cell-group inset class="mt10">
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="manager_name"
label="申请入"></van-field>
label="经办人姓名"></van-field>
<van-field readonly value="${@shiro.getPrincipalProperty('loginname')}" name="manager_name"
label="经办人工号"></van-field>
<van-field @input="userRemoteMethod" name="be_user_name"
required
v-model="formData.be_user_name" label="慰问对象" placeholder="请输入慰问对象"
:rules="[{ required: true, message: '请填写慰问对象' }]"></van-field>
<van-action-sheet v-model="sheetShow"
:actions="userList"
cancel-text="重新输入姓名或工号查询"
@cancel="userList = []; formData.be_user_name = ''"
:close-on-click-overlay="false"
@select="onUserSelect">
</van-action-sheet>
<van-field readonly :value="formData.apply_time" name="apply_time"
label="申请时间"
></van-field>
<van-field @input="userRemoteMethod" name="be_user_name"
required
v-model="formData.be_user_name" label="慰问对象" placeholder="请输入慰问对象"
:rules="[{ required: true, message: '请填写慰问对象' }]"></van-field>
<van-action-sheet v-model="sheetShow"
:actions="userList"
cancel-text="重新输入姓名或工号查询"
@cancel="userList = []"
:close-on-click-overlay="false"
@select="onUserSelect">
</van-action-sheet>
<van-field @input="payeeUserRemoteMethod" name="payee_name"
required :rules="[{ required: true, message: '请选择收款人' }]"
v-model="formData.payee_name" label="收款人" placeholder="请输入收款人"></van-field>
<van-action-sheet v-model="payeeSheetShow"
:actions="payeeUserList"
cancel-text="重新输入姓名或工号查询"
@cancel="payeeUserList = []"
@cancel="payeeUserList = []; formData.payee_name = ''"
:close-on-click-overlay="false"
@select="payeeOnUserSelect">
</van-action-sheet>
<van-field v-model="formData.payee_bank_number" name="payee_bank_number" type="number"
<!--<van-field v-model="formData.payee_bank_number" name="payee_bank_number" type="number"
label="收款人银行卡" placeholder="请输入收款人银行卡"></van-field>
<van-field v-model="formData.payee_bank_name" name="payee_bank_name"
label="收款人开户行" placeholder="请输入收款人开户行"></van-field>
label="收款人开户行" placeholder="请输入收款人开户行"></van-field>-->
<van-field readonly clickable name="type" :value="formData.typeName"
@@ -67,10 +66,22 @@ layout("/mobile/platform.html"){
</van-picker>
</van-popup>
<van-field v-model="formData.money" name="money" type="number" label="慰问金额"
placeholder="请填写慰问金额"
:rules="[{ required:true, message: '请填写慰问金额' }]"></van-field>
<!-- 孩次 -->
<van-field readonly clickable name="type" v-model="formData.birth_child_num"
required v-if="formData.type==='2'"
label="孩次"
@click="showChildPicker = true" placeholder="点击选择孩次"
:rules="[{ required:true, message: '请选择孩次'}]"></van-field>
<van-popup v-model:show="showChildPicker" position="bottom" round>
<van-picker show-toolbar :columns="childColumns" @confirm="onChildConfirm"
@cancel="showChildPicker = false">
</van-picker>
</van-popup>
<van-field
required
:rules="[{ required:true, message: '请填写慰问时间' }]"
@@ -88,23 +99,47 @@ layout("/mobile/platform.html"){
:max-date="maxDate"
:color="themeColor"></van-calendar>
<template
v-if="['c7175af55693441e8233be4552cef9d5','0872ea0b95aa463fb8d98c46bdf72537'].includes(formData.type)">
<van-field :value="formData.hospital_stay"
readonly clickable required
@click="hospital_stay = true"
name="hospital_stay" label="住院时间"
placeholder="请选择住院时间"
:rules="[{ required:true, message: '请选择住院时间' }]"></van-field>
<van-calendar v-model="hospital_stay" type="range" @confirm="onConfirm"
:min-date="new Date('1999-01-01')"
:color="themeColor"></van-calendar>
<van-field v-model="formData.the_hospital" name="the_hospital" name="type" label="所在医院"
placeholder="请填写所在医院" required
:rules="[{ required:true, message: '请填写所在医院' }]"></van-field>
<template v-if="['3','4'].includes(formData.type)">
<van-field v-model="formData.the_hospital" name="the_hospital" label="治疗医院"
placeholder="请填写治疗医院" required
:rules="[{ required:true, message: '请填写治疗医院' }]"></van-field>
<van-field v-model="formData.the_hospital_house_num" name="the_hospital_house_num" label="病房号"
placeholder="请填写病房号" required
:rules="[{ required:true, message: '请填写病房号' }]"></van-field>
<van-field v-model="formData.the_hospital_house_bed_num" name="the_hospital_house_bed_num" label="床号"
placeholder="请填写床号" required
:rules="[{ required:true, message: '请填写床号' }]"></van-field>
</template>
<template v-if="['4'].includes(formData.type)">
<van-field v-model="formData.hospital_by" name="hospital_by" label="患病病种"
placeholder="请填写患病病种" required
:rules="[{ required:true, message: '请填写患病病种' }]"></van-field>
</template>
<template v-if="['6'].includes(formData.type)">
<van-field v-model="formData.deadImmediateFamily" name="deadImmediateFamily" label="直系亲属"
placeholder="配偶、父亲、母亲、子女" required
:rules="[{ required:true, message: '必填' }]"></van-field>
</template>
<!-- <template-->
<!-- v-if="['c7175af55693441e8233be4552cef9d5','0872ea0b95aa463fb8d98c46bdf72537'].includes(formData.type)">-->
<!-- <van-field :value="formData.hospital_stay"-->
<!-- readonly clickable required-->
<!-- @click="hospital_stay = true"-->
<!-- name="hospital_stay" label="住院时间"-->
<!-- placeholder="请选择住院时间"-->
<!-- :rules="[{ required:true, message: '请选择住院时间' }]"></van-field>-->
<!-- <van-calendar v-model="hospital_stay" type="range" @confirm="onConfirm"-->
<!-- :min-date="new Date('1999-01-01')"-->
<!-- :color="themeColor"></van-calendar>-->
<!-- <van-field v-model="formData.the_hospital" name="the_hospital" name="type" label="所在医院"-->
<!-- placeholder="请填写所在医院" required-->
<!-- :rules="[{ required:true, message: '请填写所在医院' }]"></van-field>-->
<!-- </template>-->
<van-field v-model="formData.remark" name="remark" label="申请事由" style="flex-flow: column"
required
:rules="[{ required:true, message: '请填写申请事由' }]"
@@ -115,55 +150,9 @@ layout("/mobile/platform.html"){
<div class="mb10">申请事由</div>
</template>
</van-field>
</van-cell-group>
<van-cell-group inset class="mt10 up_down">
<div class="van-cell">
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
<div style="display: flex;">
<div class="van-field__left-icon">
<i class="van-icon van-icon-friends-o"></i>
</div>
<div class="van-cell__title van-field__label" style="width: auto">
<span>购置物品及价格</span>
</div>
</div>
<van-button v-if="goods && goods.length>0 && goods.length<3" style="width: 40px"
icon="plus" type="primary" round size="mini"
@click="goods.push({})"
native-type="button"></van-button>
</div>
<van-divider></van-divider>
<template v-if="goods && goods.length>0">
<div v-for="o,i in goods" class="mt5">
<div style="font-weight: 700;display: flex;justify-content: space-between">
<span>物品{{toChinesNum(i+1)}}</span>
<van-button style="width: 40px"
icon="minus" type="danger" round size="mini"
@click="goods.splice(i,1)"
native-type="button"></van-button>
</div>
<van-field label="名称" v-model="o.name" placeholder="请填写物品名称"
:rules="[{ required:true, message: '请填写物品名称' }]"></van-field>
<van-field label="价格" v-model="o.price" placeholder="请填写物品价格"
type="number"
:rules="[{ required:true, message: '请填写物品价格' }]" @input="priceInput"></van-field>
</div>
</template>
<template v-else>
<div style="padding: 50px;text-align: center">
<van-button style="width: 50px"
icon="plus" type="primary" round size="mini"
@click="goods.push({})"
native-type="button"></van-button>
</div>
</template>
</div>
</van-cell-group>
<van-cell-group inset class="mt10">
<van-cell-group inset class="mt10" v-if="isUploadFile === true">
<van-field name="files" label="附&emsp;&emsp;件" required
style="flex-flow: column" input-align="left">
<template #label>
@@ -173,6 +162,9 @@ layout("/mobile/platform.html"){
<vant-file-upload :files.sync="formData.files"></vant-file-upload>
</template>
</van-field>
<div style="margin: 0 0 7px 15px;" v-if="isUploadFile && uploadFileDesc">
<span style="color:red;">上传附件说明:{{ uploadFileDesc }}</span>
</div>
</van-cell-group>
<van-cell-group inset class="mt10">
@@ -192,6 +184,16 @@ layout("/mobile/platform.html"){
</van-button>
</div>
</van-form>
<div>
<van-tabbar v-model="tarBarActive" style="z-index: 99">
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请
</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录
</van-tabbar-item>
</van-tabbar>
</div>
</div>
<script>
@@ -200,6 +202,7 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
tarBarActive: 0,
goods: [],
payeeSheetShow: false,
payeeUserList: [],
@@ -216,7 +219,11 @@ layout("/mobile/platform.html"){
// minDate: moment().subtract(5, 'year')._d,
minDate: new Date(2010, 1, 1),
maxDate: new Date(),
money: 0
money: 0,
isUploadFile: true,
uploadFileDesc: null,
showChildPicker:false,
childColumns:[{value:'一孩',text:'一孩'},{value:'二孩',text:'二孩'},{value:'三孩',text:'三孩'}],
}
},
watch: {
@@ -232,9 +239,14 @@ layout("/mobile/platform.html"){
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue?v='+new Date().getTime()),
},
methods: {
onChildConfirm(data){
console.log(data)
this.formData.birth_child_num = data.value
this.showChildPicker = false
},
priceInput() {
let num = 0
this.goods.forEach(v => {
@@ -293,6 +305,11 @@ layout("/mobile/platform.html"){
this.$set(this.formData, "typeName", val.text)
this.$set(this.formData, "type", val.value)
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id: val.value})
console.log(data)
this.isUploadFile = data.isUploadFile
this.uploadFileDesc = data.uploadFileDesc
this.$set(this, "money", data.money)
await this.moneyChange(val.value)
this.showTypePicker = false;
@@ -316,15 +333,14 @@ layout("/mobile/platform.html"){
return
}
this.$refs.signature.submitSign()
/* if (this.$refs.signature.checkNull()) {
vant.Toast('请签名!')
return
}*/
if (this.$refs.signature.checkNull()) {
this.$toast('请签名!')
return
}
await this.$refs.signature.updateSign()
const formData = clone(this.formData)
formData.mobile = "${@shiro.getPrincipalProperty('mobile')}"
formData.files = JSON.stringify(formData.files)
formData.goods = this.goods
this.$refs['addForm'].validate().then(async () => {
this.$toast.loading('提交中...')
const res = await $.post('/platform/fw/condolence/apply/doAdd', {
@@ -334,7 +350,6 @@ layout("/mobile/platform.html"){
if (res.code === 0) {
this.$toast.success('申请成功');
setTimeout(() => {
location.replace('/mobile/condolence/apply')
}, 1000)
} else {
@@ -352,6 +367,8 @@ layout("/mobile/platform.html"){
},
async created() {
this.formData.apply_time = moment().format('YYYY-MM-DD')
this.formData.be_user = "${@shiro.getPrincipalProperty('id')}"
//this.formData.be_user_name = "${@shiro.getPrincipalProperty('username')}" + "(" + "${@shiro.getPrincipalProperty('loginname')}" + ")"
const {code, data} = await $.get("/platform/condolence/type/getAll")
data.forEach(v => {
this.typeColumns.push({value: v.id, text: v.name + "(" + v.code + ")"})
@@ -383,4 +400,4 @@ layout("/mobile/platform.html"){
</style>
<!--#
}
#-->
#-->
@@ -59,4 +59,4 @@ layout("/mobile/platform.html"){
</script>
<!--#
}
#-->
#-->
@@ -70,9 +70,19 @@ layout("/mobile/platform.html"){
<!-- </van-button>-->
</div>
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg"
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image"
image="/none.svg"
description="暂无数据">
</van-empty>
<div>
<van-tabbar v-model="tarBarActive">
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请
</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录
</van-tabbar-item>
</van-tabbar>
</div>
</div>
<script>
@@ -81,6 +91,7 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
tarBarActive: 1,
visible: true,
typeOption: [
{value: null, text: '全部'}
@@ -143,4 +154,4 @@ layout("/mobile/platform.html"){
</script>
<!--#
}
#-->
#-->
@@ -106,7 +106,7 @@ layout("/mobile/platform.html"){
},
async flushUnits() {
//this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
await mCommon.getUnitList(this.pageForm.unionId)
} else {
await mCommon.getUnitList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
@@ -7,11 +7,11 @@ layout("/mobile/platform.html"){
@click-left="history.back()"></van-nav-bar>
<condolence-info ref="info" :id.sync="id" title="二级党组织审核" :handle="handle">
<condolence-info ref="info" :id.sync="id" title="校工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt20">
<div class="van-sidebar-item van-sidebar-item--select">
二级党组织审核
校工会审核
</div>
</div>
<van-form>
@@ -24,11 +24,6 @@ layout("/mobile/platform.html"){
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o"
readonly></van-field>
<van-field v-model="formData.money" label="慰问金额" type="number"
left-icon="balance-list-o"
required :rules="[{ required:true, message: '请输入慰问金额' }]"
></van-field>
<van-field v-model="formData.opinion"
left-icon="chat-o"
@@ -41,7 +36,6 @@ layout("/mobile/platform.html"){
placeholder="请输入审核意见"
></van-field>
<van-field label="签字" required style="flex-flow: column">
<template #label>
<div class="mb10">签&emsp;&emsp;字</div>
@@ -100,15 +94,13 @@ layout("/mobile/platform.html"){
return
}
this.$refs.signature.submitSign()
/* if (this.$refs.signature.checkNull()) {
vant.Toast('请签名!')
return
}*/
if (this.$refs.signature.checkNull()) {
vant.Toast('请签名!')
return
}
await this.$refs.signature.updateSign()
this.formData.pass = pass
const resp = await $.post("/platform/fw/condolence/fr/doReview", this.formData)
if (resp.code === 0) {
this.$toast.success('审核成功')
setTimeout(() => {
@@ -128,7 +120,6 @@ layout("/mobile/platform.html"){
time: moment().format('YYYY-MM-DD'),
opinion: null,
sign: "",
money: data.money
}
}
@@ -138,4 +129,4 @@ layout("/mobile/platform.html"){
<!--#
}
#-->
#-->
@@ -7,11 +7,11 @@ layout("/mobile/platform.html"){
@click-left="history.back()"></van-nav-bar>
<condolence-info ref="info" :id.sync="id" title="校工会审核" :handle="handle">
<condolence-info ref="info" :id.sync="id" title="校工会主席审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt10">
<div class="van-sidebar-item van-sidebar-item--select">
校工会审核
校工会主席审核
</div>
</div>
<van-form>
@@ -26,6 +26,23 @@ layout("/mobile/platform.html"){
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o"
readonly></van-field>
<van-field v-model="formData.money" label="慰问金额" type="number"
left-icon="balance-list-o"
required :rules="[{ required:true, message: '请输入慰问金额' }]"
></van-field>
<van-field v-model="auditType" label="审核类型" left-icon="clock-o"
@click="typePicker = true" required readonly></van-field>
<van-popup v-model="typePicker" position="bottom">
<van-picker
show-toolbar
:columns="['审核通过','审核通过(线下提交资料)', '审核拒绝']"
@confirm="typeChange"
@cancel="typePicker = false"
></van-picker>
</van-popup>
<van-field v-model="formData.opinion"
rows="1"
required
@@ -51,7 +68,6 @@ layout("/mobile/platform.html"){
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
</van-button>
</van-col>
<van-col span="8">
<van-button color="red" block plain @click="doAudit(2)">返回修改
</van-button>
@@ -76,6 +92,8 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
typePicker: false,
auditType: '审核通过',
handle: true,
id: "",
formData: {},
@@ -87,19 +105,31 @@ layout("/mobile/platform.html"){
},
methods: {
typeChange(value, index) {
if(value === '审核通过') {
this.formData.opinion = '情况属实,同意申请。'
} else if (value === '审核通过(线下提交资料)') {
this.$set(this.formData, 'opinion', '请将纸质发票经办人、分工会主席签字后交至行政楼A426办公室。')
} else {
this.formData.opinion = ''
}
this.typePicker = false
},
async doAudit(pass) {
if (!this.formData.opinion) {
this.$toast.fail('请填写审核意见');
return
}
this.$refs.signature.submitSign()
if (this.$refs.signature.checkNull()) {
vant.Toast('请签名')
return
}
if (pass === 3 && this.$refs.signature.checkNull()) {
vant.Toast('请签名!')
return
}
await this.$refs.signature.updateSign()
this.formData.pass = pass
if(this.auditType === '审核通过(线下提交资料)') {
pass = 4
}
const resp = await $.post("/platform/fw/condolence/vcr/doReview", this.formData)
if (resp.code === 0) {
this.$toast.success('审核成功');
@@ -113,12 +143,14 @@ layout("/mobile/platform.html"){
},
async created() {
this.id = GetQueryString("id")
const {data} = await $.get("/platform/fw/condolence/findOne", {id: this.id})
this.formData = {
id: this.id,
username: "${@shiro.getPrincipalProperty('username')}",
time: moment().format('YYYY-MM-DD'),
opinion: null,
sign: ""
opinion: '情况属实,同意申请。',
sign: "",
money: data.money
}
}
@@ -7,11 +7,11 @@ layout("/mobile/platform.html"){
@click-left="history.back()"></van-nav-bar>
<condolence-info ref="info" :id.sync="id" title="单位领导审核" :handle="handle">
<condolence-info ref="info" :id.sync="id" title="分工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt10">
<div class="van-sidebar-item van-sidebar-item--select">
单位领导审核
分工会审核
</div>
</div>
<van-form>
@@ -50,7 +50,6 @@ layout("/mobile/platform.html"){
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
</van-button>
</van-col>
<van-col span="8">
<van-button color="red" block @click="doAudit(2)">返回修改
</van-button>
@@ -95,14 +94,13 @@ layout("/mobile/platform.html"){
this.$refs.signature.submitSign()
if (this.$refs.signature.checkNull()) {
vant.Toast('请签名')
vant.Toast('请签名!')
return
}
await this.$refs.signature.updateSign()
this.formData.pass = pass
const resp = await $.post("/platform/fw/condolence/ucr/doReview", this.formData)
if (resp.code === 0) {
await doCompletes();
this.$toast.success('审核成功');
setTimeout(() => {
history.back()
@@ -5,7 +5,7 @@ layout("/mobile/platform.html"){
<div id="app" v-cloak>
<van-nav-bar title="困难补助申请" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<van-form ref="addForm" :show-error-message="false" input-align="right">
<van-form ref="addForm" :show-error-message="false" input-align="right" style="margin-bottom: 60px">
<van-cell-group inset class="mt10">
<van-field readonly
value="${@shiro.getPrincipalProperty('username')} ( ${@shiro.getPrincipalProperty('loginname')} )"
@@ -114,6 +114,17 @@ layout("/mobile/platform.html"){
</van-button>
</div>
</van-form>
<div>
<van-tabbar v-model="tarBarActive" style="z-index: 99">
<van-tabbar-item icon="home-o" replace url="/mobile/difficulty/apply/index">困难补助申请
</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace url="/mobile/difficulty/apply/apply_list">
困难补助记录
</van-tabbar-item>
</van-tabbar>
</div>
</div>
<script src="/assets/platform/module/difficulty/common.js?v=1.0.0"></script>
@@ -123,6 +134,7 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
tarBarActive: 0,
id: GetQueryString("id"),
hospitalized_timeShow: false,
sq_bzlxShow: false,
@@ -173,7 +185,7 @@ layout("/mobile/platform.html"){
this.$set(this.formData, 'unitname', "${@shiro.getPrincipalProperty('unit').getName()}")
this.$set(this.formData, 'birthday', "${@shiro.getPrincipalProperty('birthday')}")
this.$set(this.formData, 'lxfs', "${@shiro.getPrincipalProperty('mobile')}")
this.$set(this.formData, 'idcard', "${@shiro.getPrincipalProperty('idCard')}")
this.$set(this.formData, 'idcard', "${@shiro.getPrincipalProperty('idcard')}")
} else if (val === 2) {
this.formData = {}
this.$set(this.formData, 'apply_mode', 2)
@@ -216,6 +228,7 @@ layout("/mobile/platform.html"){
formData.files = JSON.stringify(formData.files)
formData.applicantsign = formData.sqsign
formData.bbzrusername = formData.difficultyUser
formData.flag = true
this.$refs['addForm'].validate().then(async () => {
this.$toast.loading('提交中...')
const res = await $.post('/platform/fw/difficulty/apply/doAdd', formData)
@@ -269,4 +282,4 @@ layout("/mobile/platform.html"){
</script>
<!--#
}
#-->
#-->
@@ -103,7 +103,7 @@ layout("/mobile/platform.html"){
}, 600)
},
async flushUnits() {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
await mCommon.getUnitList(this.pageForm.unionId)
} else {
await mCommon.getUnitList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
@@ -23,7 +23,7 @@ layout("/mobile/platform.html"){
></van-field>
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
<van-field v-model="formData.xghbzje" label="补助金额"></van-field>
<van-field v-model="formData.xghbzje" label="初审金额"></van-field>
<van-field v-model="formData.opinion"
rows="1"
@@ -91,10 +91,7 @@ layout("/mobile/platform.html"){
return
}
this.$refs.signature.submitSign()
if (this.$refs.signature.checkNull()) {
vant.Toast('请签名')
return
}
await this.$refs.signature.updateSign()
this.formData.pass = pass
const resp = await $.post("/platform/fw/difficulty/schoolmanager/doReview", this.formData)
@@ -11,7 +11,7 @@ layout("/mobile/platform.html"){
<template #handle>
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
院级工会主席审核
分工会主席审核
</div>
</div>
<van-form>
@@ -90,10 +90,6 @@ layout("/mobile/platform.html"){
return
}
this.$refs.signature.submitSign()
if (this.$refs.signature.checkNull()) {
vant.Toast('请签名')
return
}
await this.$refs.signature.updateSign()
this.formData.pass = pass
const resp = await $.post("/platform/fw/difficulty/unionchairman/doReview", this.formData)
@@ -4,369 +4,376 @@ layout("/mobile/platform.html"){
<style>
.van-doc-card {
background-color: #fff;
border-radius: 6px;
box-shadow: 0 8px 12px #ebedf0;
line-height: 20px;
position: relative;
}
.van-doc-card {
background-color: #fff;
border-radius: 6px;
box-shadow: 0 8px 12px #ebedf0;
line-height: 20px;
position: relative;
}
.van-doc-card > div:first-child {
border: 2px #0e78c5 solid;
width: 26px;
border-radius: 6px;
position: absolute;
top: 0;
left: 20px;
}
.van-doc-card > div:first-child {
border: 2px #0e78c5 solid;
width: 26px;
border-radius: 6px;
position: absolute;
top: 0;
left: 20px;
}
.van-card-header {
padding: 14px 20px;
border-bottom: 1px solid #ebeef5;
box-sizing: border-box;
color: #0e78c5;
font-weight: bold;
}
.van-card-header {
padding: 14px 20px;
border-bottom: 1px solid #ebeef5;
box-sizing: border-box;
color: #0e78c5;
font-weight: bold;
}
.van-card-body {
padding: 0px 10px 0px 10px
}
.van-card-body {
padding: 0px 10px 0px 10px
}
.join_content {
padding: 10px;
overflow-y: auto;
height: calc(100vh - 46px - 20px - 60px);
}
.join_content {
padding: 10px;
overflow-y: auto;
height: calc(100vh - 46px - 20px - 60px);
}
.basic .van-cell {
flex-direction: row-reverse;
}
.basic .van-cell {
flex-direction: row-reverse;
}
.van-cell__label {
color: #323233;
font-size: 14px;
line-height: 24px;
margin-top: 0;
}
.van-cell__label {
color: #323233;
font-size: 14px;
line-height: 24px;
margin-top: 0;
}
.empty_text {
text-align: center;
padding: 10px 0px;
font-size: 14px;
color: grey;
}
.empty_text {
text-align: center;
padding: 10px 0px;
font-size: 14px;
color: grey;
}
.van-tabs__wrap {
margin: 6px;
}
.van-tabs__wrap {
margin: 6px;
}
.van-tabs__nav--card {
border: none;
}
.van-tabs__nav--card {
border: none;
}
.van-tabs__nav--card .van-tab.van-tab--active {
border-radius: 6px;
}
.van-tabs__nav--card .van-tab.van-tab--active {
border-radius: 6px;
}
.van-tabs__nav--card .van-tab {
border-right: 0 !important;
}
.van-tabs__nav--card .van-tab {
border-right: 0 !important;
}
.footer {
background-color: white;
position: fixed;
bottom: 0;
width: 100%;
height: 60px;
display: flex;
justify-content: space-evenly;
align-items: center;
left: 0;
z-index: 99;
}
.footer {
background-color: white;
position: fixed;
bottom: 0;
width: 100%;
height: 60px;
display: flex;
justify-content: space-evenly;
align-items: center;
left: 0;
z-index: 99;
}
.footer .van-button {
height: 34px;
border-radius: 6px;
width: 90% !important;
}
.footer .van-button {
height: 34px;
border-radius: 6px;
width: 90% !important;
}
.join {
background-color: #0e78c5;
color: white;
}
.join {
background-color: #0e78c5;
color: white;
}
.join_submit {
width: 90% !important;
}
.join_submit {
width: 90% !important;
}
.van-hairline--top-bottom::after, .van-hairline-unset--top-bottom::after {
border: none;
}
.van-hairline--top-bottom::after, .van-hairline-unset--top-bottom::after {
border: none;
}
.pre_text {
white-space: break-spaces;
padding-left: 7px;
/*margin-top: 30px;*/
}
.pre_text {
white-space: break-spaces;
padding-left: 7px;
/*margin-top: 30px;*/
}
</style>
<div id="app" v-cloak>
<van-sticky>
<van-nav-bar title="体检套餐选择" left-arrow
@click-left="history.go(-1)"></van-nav-bar>
</van-sticky>
<van-sticky>
<van-nav-bar title="体检套餐选择" left-arrow
@click-left="history.go(-1)"></van-nav-bar>
</van-sticky>
<div class="join_content">
<div class="join_content">
<van-form @submit="joinSubmit">
<van-form @submit="joinSubmit">
<div class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header">
体检套餐
</div>
<div class="van-card-body">
<van-radio-group v-model="formData.subjectId" class="basic">
<van-cell-group>
<van-cell title="" :key="item.id" v-for="item in project.healthCheckupProjectSubjects">
<template #label>
<div style="display: flex; justify-content: space-between; margin-left: 8px">
<div>{{ item.optionName }}</div>
<div @click="viewDesc(item)" style="color: #0e78c5">查看说明</div>
</div>
</template>
<template #right-icon>
<van-radio :name="item.id"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</div>
<div class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header">
体检套餐
</div>
<div class="van-card-body">
<van-radio-group v-model="formData.subjectId" class="basic">
<van-cell-group>
<van-cell title="" :key="item.id" v-for="item in project.healthCheckupProjectSubjects">
<template #label>
<div style="display: flex; justify-content: space-between; margin-left: 8px">
<div>{{ item.optionName }}</div>
<div @click="viewDesc(item)" style="color: #0e78c5">查看说明</div>
</div>
</template>
<template #right-icon>
<van-radio :name="item.id"></van-radio>
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
</div>
<div class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header">
基础信息
</div>
<div class="van-card-body">
<van-field @click="campusVisible = true" readonly is-link label="院区" name="campus"
placeholder="请选择体检院区" v-model="formData.campusName"
:rules="[{ required: true }]"></van-field>
<van-field :rules="[{ required: true, message: '请选择家属是否体检' }]" label="家属体检" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="formData.isFamily">
<van-radio name="是" shape="square">是</van-radio>
<van-radio name="否" shape="square">否</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
</div>
<div class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header">
基础信息
</div>
<div class="van-card-body">
<van-field @click="campusVisible = true" readonly is-link label="院区" name="campus"
placeholder="请选择体检院区" v-model="formData.campusName"
:rules="[{ required: true }]"></van-field>
<!-- <van-field :rules="[{ required: true, message: '请选择家属是否体检' }]" label="家属体检" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="formData.isFamily" disabled>
<van-radio name="是" shape="square">是</van-radio>
<van-radio name="否" shape="square">否</van-radio>
</van-radio-group>
</template>
</van-field>-->
</div>
</div>
<div class="van-doc-card" style="margin-bottom: 16px" v-if="formData.isFamily === '是'">
<div></div>
<div class="van-card-header" style="display: flex; justify-content: space-between; align-items: center">
<span style="float:left;">家属信息</span>
<div>
<van-tag @click="delCompanion" size="large" type="primary" color="lightgrey">删除家属</van-tag>
<van-tag @click="addCompanion" size="large" type="primary" color="#1867b0">添加家属</van-tag>
</div>
</div>
<div v-if="formData.companionList.length > 0" class="van-card-body">
<van-tabs v-model="active" type="card" color="#0e78c5" animated>
<van-tab v-for="item, index in formData.companionList" :title="'家属' + (index + 1)">
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
:rules="[{ required: true }]"></van-field>
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="item.sex">
<van-radio name="男" shape="square">男</van-radio>
<van-radio name="女" shape="square">女</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field :rules="[{ required: true, message: '请选择婚否' }]" label="婚否" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="item.marry">
<van-radio name="未婚" shape="square">未婚</van-radio>
<van-radio name="已婚" shape="square">已婚</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field label="年龄" name="age" placeholder="请填写年龄" type="digit"
:rules="[{ required: true }]" v-model="item.age"></van-field>
<van-field label="身份证号" name="idCard" placeholder="请填写身份证号" type="digit"
:rules="[{ required: true }]" v-model="item.idCard"></van-field>
<van-field label="手机号" name="mobile" placeholder="请填写手机号" type="digit"
:rules="[{ required: true }]" v-model="item.mobile"></van-field>
</van-tab>
</van-tabs>
</div>
<div v-if="formData.companionList.length == 0" class="empty_text">
<div class="van-doc-card" style="margin-bottom: 16px" v-if="formData.isFamily === '是'">
<div></div>
<div class="van-card-header" style="display: flex; justify-content: space-between; align-items: center">
<span style="float:left;">家属信息</span>
<div>
<van-tag @click="delCompanion" size="large" type="primary" color="lightgrey">删除家属</van-tag>
<van-tag @click="addCompanion" size="large" type="primary" color="#1867b0">添加家属</van-tag>
</div>
</div>
<div v-if="formData.companionList.length > 0" class="van-card-body">
<van-tabs v-model="active" type="card" color="#0e78c5" animated>
<van-tab v-for="item, index in formData.companionList" :title="'家属' + (index + 1)">
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
:rules="[{ required: true }]"></van-field>
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="item.sex">
<van-radio name="男" shape="square">男</van-radio>
<van-radio name="女" shape="square">女</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field :rules="[{ required: true, message: '请选择婚否' }]" label="婚否" name="validator">
<template #input>
<van-radio-group direction="horizontal" v-model="item.marry">
<van-radio name="未婚" shape="square">未婚</van-radio>
<van-radio name="已婚" shape="square">已婚</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field label="年龄" name="age" placeholder="请填写年龄" type="digit"
:rules="[{ required: true }]" v-model="item.age"></van-field>
<van-field label="身份证号" name="idCard" placeholder="请填写身份证号" type="digit"
:rules="[{ required: true }]" v-model="item.idCard"></van-field>
<van-field label="手机号" name="mobile" placeholder="请填写手机号" type="digit"
:rules="[{ required: true }]" v-model="item.mobile"></van-field>
</van-tab>
</van-tabs>
</div>
<div v-if="formData.companionList.length == 0" class="empty_text">
<span>
如有家属,请添加家属
</span>
</div>
</div>
</div>
</div>
<div class="footer">
<van-button class="join join_submit">提交选择</van-button>
</div>
<div class="footer">
<van-button class="join join_submit">提交选择</van-button>
</div>
</van-form>
</van-form>
</div>
</div>
<!--体检院区弹出框-->
<van-popup position="bottom" round v-model="campusVisible">
<van-picker
title="院区" show-toolbar
:columns="campusList" value-key="campusName"
@confirm="(value, index) => {formData.campusName = value.campusName; formData.campus = value.id; campusVisible = false}"
@cancel="campusVisible = false">
</van-picker>
</van-popup>
<!--体检院区弹出框-->
<van-popup position="bottom" round v-model="campusVisible">
<van-picker
title="院区" show-toolbar
:columns="campusList" value-key="campusName"
@confirm="(value, index) => {formData.campusName = value.campusName; formData.campus = value.id; campusVisible = false}"
@cancel="campusVisible = false">
</van-picker>
</van-popup>
<!--查看说明-->
<van-popup position="bottom" round v-model="descVisible" :style="{ height: '60%' }">
<div v-html="desc" class="pre_text"></div>
</van-popup>
<!--查看说明-->
<van-popup position="bottom" round v-model="descVisible" :style="{ height: '60%' }">
<div v-html="desc" class="pre_text"></div>
</van-popup>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
id: '',
selectId: '',
active: 0,
project: {},
formData: {
companionList: [],
isFamily: '否',
const vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
id: '',
selectId: '',
active: 0,
project: {},
formData: {
companionList: [],
isFamily: '否',
},
campusList: [],
campusVisible: false,
descVisible: false,
desc: '',
}
},
campusList: [],
campusVisible: false,
descVisible: false,
desc: '',
}
},
methods: {
viewDesc(o) {
if(o.description) {
this.desc = o.description
this.descVisible = true
} else {
vant.Toast('暂无详细说明')
}
},
async joinSubmit() {
if(!this.formData.subjectId) {
vant.Toast('请选择体检套餐')
return
}
const p = this.project.healthCheckupProjectSubjects.find(o => o.id === this.formData.subjectId)
const res = await $.post('/mobile/healthCheckup/validCondition', {
cndId: p.conditionStructureId,
})
if(res.code !== 0) {
vant.Dialog.alert({
title: '提示',
message: res.msg,
confirmButtonColor: '#1867b0'
})
return
}
vant.Dialog.confirm({
title: '温馨提醒',
message: '您确定要选择' + p.optionName + '吗?',
}).then(async () => {
const toast = vant.Toast.loading({
duration: 0,
forbidClick: true,
overlay: true,
message: '努力提交中',
})
const cloneData = clone(this.formData)
if(cloneData.isFmaily === '否') {
cloneData.companionList = []
}
cloneData.companionList.forEach((item, index) => {
if (item.userName === '') {
cloneData.companionList.splice(index, 1)
methods: {
viewDesc(o) {
if (o.description) {
this.desc = o.description
this.descVisible = true
} else {
vant.Toast('暂无详细说明')
}
},
async joinSubmit() {
if (!this.formData.subjectId) {
vant.Toast('请选择体检套餐')
return
}
//如果等于家属
if (this.project.healthCheckupType === 'js' && this.formData.companionList && this.formData.companionList.length === 0) {
vant.Toast('当前体检项目需要填写家属信息,请填写家属信息。')
return
}
const p = this.project.healthCheckupProjectSubjects.find(o => o.id === this.formData.subjectId)
const res = await $.post('/mobile/healthCheckup/validCondition', {
cndId: p.conditionStructureId,
})
if (res.code !== 0) {
vant.Dialog.alert({
title: '提示',
message: res.msg,
confirmButtonColor: '#1867b0'
})
return
}
vant.Dialog.confirm({
title: '温馨提醒',
message: '您确定要选择' + p.optionName + '吗?',
}).then(async () => {
const toast = vant.Toast.loading({
duration: 0,
forbidClick: true,
overlay: true,
message: '努力提交中',
})
const cloneData = clone(this.formData)
if (cloneData.isFmaily === '否') {
cloneData.companionList = []
}
cloneData.companionList.forEach((item, index) => {
if (item.userName === '') {
cloneData.companionList.splice(index, 1)
}
})
cloneData.projectId = this.id
const resp = await $.post('/mobile/healthCheckup/doSubmit', {
userSelection: JSON.stringify(cloneData),
})
setTimeout(() => {
if (resp.code === 0) {
toast.message = '提交成功'
toast.type = 'success'
} else {
toast.message = resp.msg
toast.type = 'fail'
}
setTimeout(() => {
toast.clear()
}, 500)
if (resp.code === 0) {
location.href = '/mobile/healthCheckup/mine'
}
}, 1000)
}).catch(() => {
})
},
addCompanion() {
this.formData.companionList.push({userName: '', sex: '', marry: '',})
},
delCompanion() {
this.formData.companionList.splice(this.active, 1)
},
//查询有哪些体检套餐
async findSubject() {
const resp = await $.post('/platform/healthCheckup/project/mange/findOne', {id: this.id})
this.project = resp.data
this.formData.isFamily = this.project.healthCheckupType === 'jzg' ? "否" : "是"
//const sex = "${@shiro.getPrincipalProperty('sex')}";
//this.project.healthCheckupProjectSubjects = this.project.healthCheckupProjectSubjects.filter(o => o.sex === sex || o.sex === '' || o.sex === null)
},
//获取院区
async getCampus() {
const resp = await $.post('/mobile/healthCheckup/getCampus')
this.campusList = resp.data
},
//获取报名信息
async getSelectInfo() {
const resp = await $.post('/mobile/healthCheckup/getSelectInfo', {id: this.selectId})
this.formData = resp.data
const o = this.campusList.find(o => o.id === this.formData.campus)
this.formData.campusName = o.campusName
},
},
async created() {
this.id = GetQueryString('projectId')
this.selectId = GetQueryString('selectId')
await this.getCampus()
if (GetQueryString('selectId')) {
await this.getSelectInfo()
}
})
cloneData.projectId = this.id
const resp = await $.post('/mobile/healthCheckup/doSubmit', {
userSelection: JSON.stringify(cloneData),
})
setTimeout(() => {
if (resp.code === 0) {
toast.message = '提交成功'
toast.type = 'success'
} else {
toast.message = resp.msg
toast.type = 'fail'
}
setTimeout(() => {
toast.clear()
}, 500)
if (resp.code === 0) {
location.href = '/mobile/healthCheckup/mine'
}
}, 1000)
}).catch(() => {})
},
addCompanion() {
this.formData.companionList.push({userName: '', sex: '', marry: '',})
},
delCompanion() {
this.formData.companionList.splice(this.active, 1)
},
//查询有哪些体检套餐
async findSubject() {
const resp = await $.post('/platform/healthCheckup/project/mange/findOne', {id: this.id})
this.project = resp.data
//const sex = "${@shiro.getPrincipalProperty('sex')}";
//this.project.healthCheckupProjectSubjects = this.project.healthCheckupProjectSubjects.filter(o => o.sex === sex || o.sex === '' || o.sex === null)
},
//获取院区
async getCampus() {
const resp = await $.post('/mobile/healthCheckup/getCampus')
this.campusList = resp.data
},
//获取报名信息
async getSelectInfo() {
const resp = await $.post('/mobile/healthCheckup/getSelectInfo', {id: this.selectId})
this.formData = resp.data
const o = this.campusList.find(o => o.id === this.formData.campus)
this.formData.campusName = o.campusName
},
},
async created() {
this.id = GetQueryString('projectId')
this.selectId = GetQueryString('selectId')
await this.getCampus()
if(GetQueryString('selectId')) {
await this.getSelectInfo()
}
await this.findSubject()
},
})
window.onload = () => {
window.addEventListener('pageshow', e => {
if (e.persisted) {
window.location.reload()
}
await this.findSubject()
},
})
}
window.onload = () => {
window.addEventListener('pageshow', e => {
if (e.persisted) {
window.location.reload()
}
})
}
</script>
<!--#
}
@@ -129,12 +129,6 @@ layout("/mobile/platform.html"){
<van-empty v-else description="暂无数据"></van-empty>
</template>
<div>
<van-tabbar v-model="tarBarActive">
<van-tabbar-item icon="home-o" replace url="/mobile/healthCheckup/list">套餐选择</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace url="/mobile/healthCheckup/mine">我的套餐</van-tabbar-item>
</van-tabbar>
</div>
</div>
<script>
@@ -143,7 +137,6 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
tarBarActive: 0,
tabName: 'ing',
}
},
@@ -126,13 +126,6 @@ layout("/mobile/platform.html"){
<van-empty v-else description="暂无数据"></van-empty>
</template>
<div>
<van-tabbar v-model="tarBarActive">
<van-tabbar-item icon="home-o" replace url="/mobile/healthCheckup/list">套餐选择</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace url="/mobile/healthCheckup/mine">我的套餐</van-tabbar-item>
</van-tabbar>
</div>
</div>
<script>
new Vue({
@@ -140,7 +133,7 @@ layout("/mobile/platform.html"){
mixins: [mobileMixins],
data() {
return {
tarBarActive: 1,
}
},
methods: {
@@ -156,7 +149,7 @@ layout("/mobile/platform.html"){
const res = await $.post('/mobile/healthCheckup/cancel', {id: o.id, projectId: o.projectId})
if(res.code === 0) {
vant.Toast('取消成功')
this.getData()
this.doSearch()
}else {
vant.Toast(res.msg)
}
@@ -123,7 +123,7 @@ layout("/mobile/platform.html"){
data() {
return {
tabName: 'ing',
tarBarActive: 0,
tarBarActive: 0
}
},
methods: {
@@ -135,23 +135,11 @@ layout("/mobile/platform.html"){
provideTimeEnd,
provideTimeStart,
choiceTimeEnd,
selfUnionId,
unionIdList,
isAnnualFestival
choiceTimeStart
} = o
/* const resp = await $.get('/mobile/welfare/mine/isReceive', {projectId: id})
const isReceive = resp.data*/
if (isAnnualFestival && !unionIdList.includes(selfUnionId)){
vant.Dialog.confirm({
title: '提醒',
message: '您不在选择范围内,系统已为您默认选择完毕,是否前往查看',
}).then(() => {
location.href = '/mobile/welfare/list/receive_success?projectId=' + id + '&provideMode=' + provideMode
})
return
}
if (this.tabName === 'ing') {
if (flexible) {
if (moment().valueOf() < moment(provideTimeEnd).valueOf() &&
@@ -213,10 +201,9 @@ layout("/mobile/platform.html"){
this.pageForm.tabName = 'ing'
this.pageData()
this.closeLoading()
},
}
},
async created() {
created() {
this.init()
},
@@ -229,7 +229,7 @@ layout("/mobile/platform.html"){
async-change
button-size="20"
theme="round"
:disabled="confirmButtonInfo.disabled || option.isSystemDefault"
:disabled="confirmButtonInfo.disabled"
integer
disable-input
v-model="option.selectNum"></van-stepper>
@@ -410,7 +410,6 @@ layout("/mobile/platform.html"){
}
return null
},
confirmButtonInfo() {
if (this.projectInfo) {
const {choiceTimeEnd, choiceTimeStart, overdueChoiceTimeEnd} = this.projectInfo
@@ -592,11 +591,6 @@ layout("/mobile/platform.html"){
if (resp.code === 0) {
resp.data.multiSelectNum = resp.data.multiSelectNum ? resp.data.multiSelectNum : 1
this.projectInfo = resp.data
this.projectInfo.welfareProjectSubjects[0].options.map(v=>{
if (v.isSystemDefault){
v.selectNum = 1
}
})
this.getUserSelection(this.projectId)
}
},
@@ -39,8 +39,15 @@ layout("/mobile/platform.html"){
background-color: #f3f3f3;
}
.van-empty{
.van-action-sheet__header {
font-weight: bold;
}
.courierNumberSheet .van-empty {
position: relative;
left: unset !important;
top: unset !important;
transform: unset !important;
}
</style>
@@ -51,17 +58,18 @@ layout("/mobile/platform.html"){
title="我的福利"></van-nav-bar>
<van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="pageForm.year" :options="yearOption" @change="yearChange"></van-dropdown-item>
<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
v-if="tableData.length>=0"
: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">
@@ -89,7 +97,7 @@ layout("/mobile/platform.html"){
v-if="item.cover">
<img src="/assets/mobile/svg/welfare/welfareHome.svg"
style="width: 88px;height: 88px"
v-else></img>
v-else/>
</template>
<div slot="tags" style="margin-top: 5px;padding-left: 30px;"
v-if="item.gifts">
@@ -104,8 +112,10 @@ layout("/mobile/platform.html"){
<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="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>
@@ -116,12 +126,12 @@ layout("/mobile/platform.html"){
</template>
<!--查看详情-->
<van-popup :style="{ height: '80%', background:'#f9f9f9','padding-top':'30px'}"
closeable
position="bottom"
round
safe-area-inset-bottom
v-model="descPopup">
<!-- :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"
@@ -134,10 +144,14 @@ layout("/mobile/platform.html"){
:num="item.selectNum"
:thumb="FILE_STREAM_PREVIEW_ADDRESS+'?id='+item.imgUrl"
:title="item.optionName"
desc=""
style="border-radius: 8px;background: #FFFFFF"
v-for="item in selectedOptions"
></van-card>
>
<template #desc>
<div>{{item.supplier}}</div>
<div>{{item.simpleDesc}}</div>
</template>
</van-card>
</van-cell>
</div>
@@ -168,18 +182,37 @@ layout("/mobile/platform.html"){
</div>
</van-popup>
</van-action-sheet>
<!--评价-->
<van-popup :style="{ background:'#f9f9f9','padding-top':'30px'}"
<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>
@@ -191,7 +224,6 @@ layout("/mobile/platform.html"){
:gutter="10"
:readonly="evaluateFormData.id"
:size="40"
allow-half
color="#ffd21e"
v-model="evaluateFormData.evaluateScore"
void-color="#eee"
@@ -261,6 +293,50 @@ layout("/mobile/platform.html"){
</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>
@@ -295,7 +371,14 @@ layout("/mobile/platform.html"){
stepsActive: 0,
yearOption:[]
yearOption: [],
courierNumberShow: false,
courierNumberActions: [],
activeName: null,
optionCourierNumberInfo: []
}
},
@@ -315,19 +398,23 @@ layout("/mobile/platform.html"){
},
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 $.get('/platform/welfare/mine/getUserSelection', {projectId})
const {code, data, msg} = await this.getUserSelection(projectId)
if (code === 0) {
if (data.length === 0) {
this.$modal.msg('您还没有选择福利,请先到职工福利》福利列表下选择')
this.$modal.msg('您还没有选择福利,请先到职工福利->福利列表下选择')
return
}
this.descPopup = true
@@ -337,20 +424,36 @@ layout("/mobile/platform.html"){
//打开评价
async openEvaluate(item) {
if(!item.courierNumber){
if (!item.courierNumber) {
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,
data
} = await $.get('/platform/welfare/mine/finOneWelfareEvaluate', {projectId: item.projectId})
msg
} = await $.post("/platform/welfare/mine/finOneWelfareEvaluate", {
projectId: projectId,
optionId: optionId
})
if (code === 0) {
this.evaluateFormData = data ? data : {}
this.evaluateFormData.projectId = item.projectId
this.evaluatePopup = true
if (data) {
this.evaluateFormData = data
} else {
this.evaluateFormData = {
projectId: projectId,
optionId: optionId
}
}
} else {
this.$message.warning(msg)
}
@@ -411,12 +514,27 @@ layout("/mobile/platform.html"){
//打开物流
async openExpress(item) {
if (!item.courierNumber) {
this.$toast('未发货无法查询物流信息,请耐心等待!')
return
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 {
this.$modal.msgError(msg)
}
await this.getExpressInfo(item)
this.expressPopup = true
},
yearChange(val) {