Commit cb41a0bd authored by youjie's avatar youjie

领队报账 相关页面

parent ea4eb5ec
......@@ -230,6 +230,9 @@
.fontWeight400{
font-weight: 400;
}
.fontWeight500{
font-weight: 500;
}
.fontBold{
font-weight: bold;
}
......@@ -295,12 +298,18 @@
.fz30{
font-size: 30rpx;
}
.fz36{
font-size: 36rpx;
.fz32{
font-size: 32rpx;
}
.fz34{
font-size: 34rpx;
}
.fz36{
font-size: 36rpx;
}
.fz38{
font-size: 38rpx;
}
.fz40{
font-size: 40rpx;
}
......@@ -319,6 +328,9 @@
.ML20{
margin-left: 20rpx;
}
.ML23{
margin-left: 23rpx;
}
.ML25{
margin-left: 25rpx;
}
......@@ -415,6 +427,9 @@
.MB10{
margin-bottom: 10rpx;
}
.MB15{
margin-bottom: 15rpx;
}
.MB20{
margin-bottom: 20rpx;
}
......@@ -460,18 +475,42 @@
.PA50{
padding: 50rpx;
}
.PT10{
padding-top: 10rpx;
}
.PT15{
padding-top: 15rpx;
}
.PT20{
padding-top: 20rpx;
}
.PT25{
padding-top: 25rpx;
}
.PT30{
padding-top: 30rpx;
}
.PT38{
padding-top: 38rpx;
}
.PT40{
padding-top: 40rpx;
}
.PT50{
padding-top: 50rpx;
}
.PT65{
padding-top: 65rpx;
}
.PT123{
padding-top: 123rpx;
}
.PB10{
padding-bottom: 10rpx;
}
.PB15{
padding-bottom: 15rpx;
}
.PB20{
padding-bottom: 20rpx;
}
......@@ -484,6 +523,9 @@
.PB50{
padding-bottom: 50rpx;
}
.PB60{
padding-bottom: 60rpx;
}
.PB200{
padding-bottom: 200rpx;
}
......@@ -493,6 +535,14 @@
.PB300{
padding-bottom: 300rpx;
}
.PY10{
padding-top: 10rpx;
padding-bottom: 10rpx;
}
.PY15{
padding-top: 15rpx;
padding-bottom: 15rpx;
}
.PY20{
padding-top: 20rpx;
padding-bottom: 20rpx;
......@@ -604,6 +654,24 @@
.color2EC726{
color: #2EC726;
}
.colorF99710{
color: #F99710;
}
.color9C9C9C{
color: #9C9C9C;
}
.color666{
color: #666666;
}
.color999{
color: #999999;
}
.color333{
color: #333333;
}
.colorE1432E{
color: #E1432E;
}
.bgFFF{
background: #fff;
}
......
......@@ -69,7 +69,7 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid": "wxcf0727a7c78b501e",
"appid": "wx5564525562e92ddb",
"navigateToMiniProgramAppIdList" : [ "wxacd9f8cc3480d29e" ],
"setting" : {
"urlCheck" : true,
......
......@@ -1088,6 +1088,52 @@
"navigationBarTitleText" : "报账",
"navigationStyle": "custom"
}
},
{
"path": "billDetails",
"style":{
"navigationBarTitleText" : "账单明细",
"navigationStyle": "custom"
}
},
{
"path": "itineraryInformation",
"style":{
"navigationBarTitleText" : "行程信息",
"navigationStyle": "custom"
}
},
{
"path": "itineraryDetails",//行程详情
"enablePullDownRefresh": true,
"style": {
"navigationStyle": "custom",
"mp-alipay": {
"transparentTitle": "always",
"titlePenetrate": "YES"
}
}
},
{
"path": "roomAllocation",
"style":{
"navigationBarTitleText" : "分房表",
"navigationStyle": "custom"
}
},
{
"path": "schedule",
"style":{
"navigationBarTitleText" : "领队导游运行计划表",
"navigationStyle": "custom"
}
},
{
"path": "opinionSurvey",
"style":{
"navigationBarTitleText" : "意见调查",
"navigationStyle": "custom"
}
}
]
}
......
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.billDetailsHeaderBox{
background: linear-gradient(-30deg, #4779FF, #47A5FF);
}
.billDetailsTitle{
position: relative;
z-index: 3
}
.billDetailsTitle.fixed{
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 2;
background: linear-gradient(-30deg, #4779FF, #47A5FF);
}
.billDetailsTitle.fixed .billDetailsTsBox{
top: 22rpx;
}
.teamLeader-currency{
font-size: 24rpx;
border-radius: 30rpx;
// border: 1px solid #fff;
padding: 8rpx 20rpx;
position: absolute;
right: 210rpx;
top: 115rpx;
color: #fff;
}
.teamLeader-currency text{
margin-right: 15rpx;
}
.triangle {
width: 0;
height: 0;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
border-top: 8rpx solid #fff;
}
.billDetailsHeaderNBox{
padding: 0 30rpx;
position: relative;
}
.billDetailsHeaderNBox img{
width: 100%;
height: 298rpx;
position: absolute;
top: -50rpx;
left: 0;
right: 0;
}
.billDetailsHeaderNum{
padding: 60rpx 50rpx 57rpx 50rpx;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874803742697756.png')no-repeat #fff;
background-size:100% auto ;
position: relative;
z-index: 2;
.label{
font-size: 24rpx;
}
.value{
font-size: 32rpx;
margin-top: 20rpx;
text{
font-size: 24rpx;
margin-right: 10rpx;
}
}
}
.billDetailsCTop{
margin: 39rpx 30rpx 30rpx 30rpx;
border-radius: 8rpx;
overflow: hidden;
box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(114,114,114,0.16);
}
.billDetailsCHeader{
background: #EDF5FF;
padding: 28rpx 31rpx;
}
.billDetailsCHeaderR img{
width: 18rpx;
height: 12rpx;
}
.billDetailsCCBox{
padding: 30rpx;
}
.billDetailsCCBox img{
width: 72rpx;
height: 72rpx;
}
.billDetailsCCR{
padding: 30rpx 0;
border-bottom: 1px solid #eee;
}
.billDetailsCCBox:last-child .billDetailsCCR{
border-bottom: 0;
}
.billDetailsCHeader.billDetailsCHeaderOth{
background: #FFF5ED;
}
.billDetailsCCBox.billDetailsCCBoxOth{
background: #F5F5F5;
padding: 25rpx 22rpx;
margin: 0 30rpx;
}
.billDetailsCCBoxOth:first-child{
margin-top: 20rpx;
}
.billDetailsCCBoxOth:nth-child(2){
background: #fff;
}
</style>
<template>
<view style="height: 100vh;">
<scroll-view class="billDetailsBox" scroll-y="true"
:enable-back-to-top="true" :enable-flex="true"
@scroll="scroll" style="height: 100vh;">
<view class="billDetailsHeaderBox PB40">
<view class="billDetailsTitle">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<view class="teamLeader-currency row items-center" @click="currencyVisible=true"><text>日元</text> <view class="triangle"></view></view>
</view>
<view class="billDetailsTitle fixed"
:style="{ opacity: boxOption + '%' }">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<view class="teamLeader-currency row items-center" @click="currencyVisible=true"><text>日元</text> <view class="triangle"></view></view>
</view>
<view class="billDetailsHeaderNBox MT50">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874816517253757.png" />
<view class="billDetailsHeaderNum row justify-between">
<view class="column">
<text class="label">自费收入</text>
<text class="value"><text>¥ </text> 600.00</text>
</view>
<view class="column">
<text class="label">自费支出</text>
<text class="value"><text>¥ </text> 520.00</text>
</view>
<view class="column">
<text class="label">小费收入</text>
<text class="value"><text>¥ </text> 200.00</text>
</view>
</view>
</view>
</view>
<view>
<view class="billDetailsCTop">
<view class="billDetailsCHeader row justify-between items-center">
<view class="billDetailsCHeaderL">
<view class="fz28">1月16日</view>
<view class="fz20 MT10">2019年</view>
</view>
<view class="billDetailsCHeaderR row items-center fontBold">
<text>¥2389.00</text>
<img class="ML20" :src="downImg[0]"/>
</view>
</view>
<view>
<view class="billDetailsCCBox row items-center fz28">
<img :src="typeImgs[0]" />
<view class="billDetailsCCR flex1 row justify-between items-center">
<view class="ML23 fz28"></view>
<text class="fz28 fontWeight500">¥126</text>
</view>
</view>
</view>
</view>
<view class="billDetailsCTop">
<view class="billDetailsCHeader billDetailsCHeaderOth row justify-between items-center">
<view class="billDetailsCHeaderL">
<view class="fz28">其他费用</view>
</view>
<view class="billDetailsCHeaderR row items-center fontBold">
<text>¥2389.00</text>
<img class="ML20" :src="downImg[0]"/>
</view>
</view>
<view>
<view
v-for="(item,index) in 3"
class="billDetailsCCBox billDetailsCCBoxOth row items-center justify-between fz28">
<view class="billDetailsCCROth row items-center">
<view class="">06-01</view>
<view class="ML23"></view>
</view>
<text class="fontWeight500">¥126</text>
</view>
</view>
</view>
</view>
</scroll-view>
<currencyBottom v-if="currencyVisible"
:current="currentId"
:currencyList="currencyList"
@close="close" @change="popupCurrency"></currencyBottom>
</view>
</template>
<script>
import headers from "@/components/header/header";
import currencyBottom from "./components/currencyBottom";
export default {
components: {
headers,
currencyBottom,
},
data() {
return {
pageTitle: '账单明细',
boxOption: 0,
currencyVisible: false,
currencyList: [],
currentId: 0,
currentIndex: 0,
downImg:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827170491438.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827279495359.png',
],
typeImgs:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829614812469.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612434651.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829685012792.png'
],
}
},
onLoad(option){
},
created() {
},
mounted() {
},
methods: {
popupCurrency(value){
this.currencyVisible = false
this.currentId = value
this.currentIndex = this.dataList.findIndex(item=>item.CurrencyId==value)
},
scroll(e) {
this.boxOption = Math.floor((e.detail.scrollTop - 100) / 1.5);
this.$forceUpdate();
},
},
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.orcodeBox{
background: #fff;
border-radius: 8rpx;
}
.Title{
}
.orcodeImg img{
width: 500rpx;
height: 500rpx;
}
.SureBox{
font-size: 28rpx;
border-top: 1px solid #F2F2F2;
}
.SureBox view:last-child{
color: #295EEB;
}
.SureBox view:first-child{
border-right: 1px solid #ddd;
color: #8C8C8C;
}
</style>
<template>
<u-popup mode="center" border-radius="20"
:popup="false"
v-model="currencyVisible" :maskCloseAble="true"
length="80%" :safeAreaInsetBottom="true"
@close="close" :z-index="9999">
<view class="orcodeBox">
<view class="Title PY30 color000 column justify-center items-center">
<text class="fz28">领队小程序码(1/1)</text>
<text class="fz24">KJKSWDGGHFHGV</text>
</view>
<view class="orcodeImg row items-center justify-center PX40">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638868977886703780.png"/>
</view>
<view class="SureBox row MT40">
<view class="flex1 PY20 text-center" @click="close">取消</view>
<view class="flex1 PY20 text-center" @click="preservation">保存</view>
</view>
</view>
</u-popup>
</template>
<script>
export default {
props:['title'],
data() {
return {
currencyVisible: true,
textarea: '',
}
},
watch: {
title:{
handler(newVal,oldVal){
},
deep: true,
immediate:true,
}
},
mounted() {
this.currencyVisible = true
},
methods: {
close(){
this.currencyVisible = false
this.$emit('close')
},
preservation(){
uni.showLoading({
title: "正在生成",
});
let that = this;
uni.canvasToTempFilePath({
canvasId: "firstCanvas",
success: (res) => {
uni.hideLoading();
uni.showLoading({
title: "正在保存",
});
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function() {
uni.showToast({
title: "保存成功",
});
},
fail: function(err) {
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
uni.authorize({
scope: 'scope.writePhotosAlbum',
success: (res) => {
console.log('11111');
},
fail: (res) => {
uni.showModal({
content: '检测到您没打开保存到相册权限,是否去设置打开?',
confirmText: "确认",
cancelText: '取消',
success: (res) => {
if (res.confirm) {
uni.openSetting({
success: (res) => {
console.log(res);
if (res.authSetting['scope.writePhotosAlbum']) {
that.preservation()
}
}
})
} else {
console.log('取消');
}
}
})
}
})
} else {
that.$refs.uTips.show({
title: "保存失败,请稍后重试",
type: "error",
duration: "2300",
});
}
},
complete: function() {
uni.hideLoading();
},
});
},
fail: function(e) {
console.log(e);
that.$refs.uTips.show({
title: "生成失败,请稍后重试",
type: "error",
duration: "2300",
});
},
},
this
);
},
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.passHeader{
background: linear-gradient(-30deg, #4FA9FF, #4779FF);
}
.carrHeader-title{
width: 100%;
position: relative;
left: 0;
right: 0;
font-size: 32rpx;
}
.carrHeader-title.carrHeader-titleL{
text-indent: 80rpx;
}
.carrHeader-left{
position: absolute;
left: 32rpx;
z-index: 3;
}
.carrHeaderBox{
width: 100%;
height: 88rpx;
padding: 0 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
}
.carrHeader{
padding-top: 48rpx;
}
.passCenter{
margin-bottom: 25rpx;
}
.passCenter-L{
width: 150rpx;
}
.passCenter-R view{
font-weight: 500;
}
</style>
<template>
<u-popup mode="center" border-radius="20"
:popup="false"
v-model="showVisible" :maskCloseAble="true"
length="100%" :safeAreaInsetBottom="true"
@close="close" :z-index="9999">
<view class="column" style="height: 100vh;">
<view class="passHeader">
<view class="carrHeader" :style="[titleStyle]">
<view class="carrHeaderBox">
<view class="carrHeader-left">
<view class="carrHeader-left-icon" @click="close">
<uni-icons name="" type="closeempty" size="25" color="#fff"></uni-icons>
</view>
</view>
<view class="carrHeader-title"
:style="{'color':'#fff','text-align':'center'}">
<slot>{{pageTitle}}</slot>
</view>
</view>
</view>
</view>
<scroll-view class="flex1" :scroll-y="true" :enable-back-to-top="true" :enable-flex="true"
style="background: #ffff;">
<view class="passCenterBox PA30">
<view class="passCenter row items-center">
<view class="passCenter-L fz24">旅客</view>
<view class="passCenter-R row">
<view class="fz28">姓名</view>
<text class="ML10 color999">()</text>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">性别</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">出生日期</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">年龄类型</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">出生地</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">护照号</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">签发地</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">签发日期</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">护照有效期</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">客户手机</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">身份证</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">单价</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">业务员</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">方式</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">航位</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
<view class="passCenter row items-center">
<view class="passCenter-L fz24">签证类型</view>
<view class="passCenter-R row">
<view class="fz28">-</view>
</view>
</view>
</view>
</scroll-view>
</view>
</u-popup>
</template>
<script>
import headers from "@/components/header/header";
export default {
props:[''],
components: {
headers
},
data() {
return {
pageTitle: '旅客',
showVisible: true,
newCurrent: 0,
titleStyle: {},
}
},
watch: {
current:{
handler(newVal,oldVal){
this.newCurrent = newVal
},
immediate:true,
},
},
mounted() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
this.showVisible = true
},
methods: {
close(){
this.showVisible = false
this.$emit('close')
},
}
}
</script>
\ No newline at end of file
......@@ -205,8 +205,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -207,8 +207,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -207,8 +207,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -206,8 +206,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -206,8 +206,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -205,8 +205,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','options','currencyList'],
components: {
......
......@@ -195,8 +195,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','optionList'],
components: {
......
......@@ -183,8 +183,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','optionList'],
components: {
......
......@@ -183,8 +183,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','optionList'],
components: {
......
......@@ -183,8 +183,8 @@
</view>
</template>
<script>
import upload from "./upload";
import singleChoice from "./singleChoice";
import upload from "../upload";
import singleChoice from "../singleChoice";
export default {
props:['data','optionList'],
components: {
......
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-box>view{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
}
.infor1-box>view:last-child{
border-bottom: 0;
}
.infor1-box.infor1-boxWin>view{
padding: 3rpx 0;
border-bottom: 0;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-title fz28 PB20">部门负责人</view>
<view class="infor1-box PX30 bjFFF fz28 color333">
<view class="row">
<view class="MR40">机票</view>
<view class="flex1">周月</view>
</view>
<view class="row">
<view class="MR40">订房</view>
<view class="flex1">周月</view>
</view>
<view class="row">
<view class="MR40">车辆</view>
<view class="flex1">周月</view>
</view>
<view class="row">
<view class="MR40">订餐</view>
<view class="flex1">周月</view>
</view>
<view class="row">
<view class="MR40">门票</view>
<view class="flex1">周月</view>
</view>
</view>
<view class="infor1-title fz28 PY20">注意事项</view>
<view class="infor1-box infor1-boxWin PX30 PY30 bjFFF fz28 color333">
<view class="row">
<view class="MR10">不要签证</view>
<view class="flex1">姓名:</view>
</view>
<view class="row">
<view class="MR10">不占床</view>
<view class="flex1">姓名:</view>
</view>
<view class="row">
<view class="MR10">单地接</view>
<view class="flex1">姓名:</view>
</view>
<view class="row">
<view class="MR10">单机票</view>
<view class="flex1">姓名:</view>
</view>
<view class="row">
<view class="MR10">不去景点</view>
<view class="flex1">姓名:</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor2-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor2-line{
border-bottom: 1px dashed #AAA;
}
.infor2-line img{
width: 110rpx;
height: 9rpx;
}
</style>
<template>
<view class="PX20 PT40">
<view>
<view class="infor2-box PX30 bjFFF MB20">
<view class="infor2-line PY20 row justify-between items-center">
<view>
<view class="fz32 color000">09:00</view>
<view class="fz20 color666 MT10">双流国际机场/CTU</view>
</view>
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875792006204423.png"/>
<view class="text-right">
<view class="fz32 color000">09:00</view>
<view class="fz20 color666 MT10">双流国际机场/CTU</view>
</view>
</view>
<view class="PY20 fz24 color333 row justify-between">
<view>航班号:NH948</view>
<view>出发时间:2019-04-16</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-box>view{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
}
.infor1-box>view:last-child{
border-bottom: 0;
}
.infor1-box.infor1-boxWin>view{
padding: 3rpx 0;
border-bottom: 0;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box PX30 bjFFF fz28 color333">
<view class="row justify-between">
<view class="MR40">车配号</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">车辆公司</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">用车时间</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">车牌号</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">司机姓名</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">司机电话</view>
<view class="">周月</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center>view{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
}
.infor1-center>view:first-child{
width: 100rpx;
flex-shrink: 0;
margin-right: 20rpx;
}
.infor1-center>view:last-child{
border-bottom: 0;
}
.infor1-header{
background: #4985FF;
}
.infor1-header img{
width: 24rpx;
height: 32rpx;
display: inline-block;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box MB20 bjFFF fz28 color333">
<view class="infor1-header PY30 colorFFF">
<view class="fz32 PX30">水口世纪酒店</view>
<view class="row items-center MT10 PX30">
<view class="row">
<img class="" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png" />
</view>
<text class="ML20 fz28 flex1">水口町名坂170-1</text>
</view>
</view>
<view class="infor1-center PX30">
<view class="row justify-between">
<view class="MR40">订房号</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">入住时间</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">占床/不占床</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">实际用房</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">联系电话</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">备注</view>
<view class="flex1">周月</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center>view{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
}
.infor1-center>view:first-child{
width: 100rpx;
flex-shrink: 0;
margin-right: 20rpx;
}
.infor1-center>view:last-child{
border-bottom: 0;
}
.infor1-header{
background: #4985FF;
}
.infor1-header img{
width: 24rpx;
height: 32rpx;
display: inline-block;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box MB20 bjFFF fz28 color333">
<view class="infor1-header PY30 colorFFF">
<view class="fz32 PX30">水口世纪酒店</view>
<view class="row items-center MT10 PX30">
<view class="row">
<img class="" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png" />
</view>
<text class="ML20 fz28 flex1">水口町名坂170-1</text>
</view>
</view>
<view class="infor1-center PX30">
<view class="row justify-between">
<view class="MR40">订餐号</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">用餐时间</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">总人数</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">类别</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">联系电话</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">备注</view>
<view class="flex1">周月</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center>view{
padding: 20rpx 0;
border-bottom: 1px solid #ddd;
}
.infor1-center>view:first-child{
width: 100rpx;
flex-shrink: 0;
margin-right: 20rpx;
}
.infor1-center>view:last-child{
border-bottom: 0;
}
.infor1-header{
background: #4985FF;
}
.infor1-header img{
width: 24rpx;
height: 32rpx;
display: inline-block;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box MB20 bjFFF fz28 color333">
<view class="infor1-header PY30 colorFFF">
<view class="fz32 PX30">水口世纪酒店</view>
<view class="row items-center MT10 PX30">
<view class="row">
<img class="" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png" />
</view>
<text class="ML20 fz28 flex1">水口町名坂170-1</text>
</view>
</view>
<view class="infor1-center PX30">
<view class="row justify-between">
<view class="MR40">游览时间</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">总人数</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">联系电话</view>
<view class="">周月</view>
</view>
<view class="row justify-between">
<view class="MR40">备注</view>
<view class="flex1">周月</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center{
border-bottom: 1px solid #ddd;
}
.infor1-center:last-child{
border-bottom: 0;
}
.infor1-header{
background: #4985FF;
}
.infor1-header img{
width: 24rpx;
height: 32rpx;
display: inline-block;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box MB20 bjFFF fz28 color333">
<view class="infor1-header PY30 colorFFF">
<view class="fz32 PX30">水口世纪酒店</view>
<view class="row items-center MT10 PX30">
<view class="row">
<img class="" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png" />
</view>
<text class="ML20 fz28 flex1">水口町名坂170-1</text>
</view>
</view>
<view class="infor1-center PX30 PY20 row justify-between">
<view class="MR40">进店时间</view>
<view class="">周月</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center{
border-bottom: 1px solid #ddd;
margin-left: 30rpx;
margin-right: 30rpx;
}
.infor1-c-name{
width: 80rpx;
}
.imgbox{
margin-left: 20rpx;
margin-right: 20rpx;
}
.imgbox img{
width: 33rpx;
height: 33rpx;
display: block;
}
</style>
<template>
<view class="PT40">
<view class="infor1-box MB20 bjFFF fz28 color333">
<view class="infor1-center PY20 row items-center justify-between">
<view class="row items-center">
<view class="infor1-c-name fz32">姓名</view>
<view class="imgbox">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875723517488195.png" />
</view>
<view class="time fz28">2025-06-10</view>
<view class="tisp fz28 ML20">退休人员</view>
</view>
<view>ED1281216</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.infor1-box{
background: #FFFFFF;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
border-radius: 8rpx;
overflow: hidden;
}
.infor1-center{
border-bottom: 1px solid #ddd;
}
.infor1-center:last-child{
border-bottom: 0;
}
.infor1-c-l view{
width: 46rpx;
height: 46rpx;
background: #4985FF;
border-radius: 50%;
}
.infor1-c-l view img{
width: 30rpx;
height: 28rpx;
}
.day{
color: #4985FF;
}
.text{
font-weight: 500;
line-height: 50rpx;
}
</style>
<template>
<view class="PX20 PT40">
<view class="infor1-box PX30 MB20 bjFFF fz30">
<view class="infor1-center row"
v-for="item in 5">
<view class="infor1-c-l PY30 row">
<view class="row items-center justify-center">
<img class="" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638869669341003114.png" />
</view>
</view>
<view class="infor1-c-r PY30 colorFFF flex1">
<view class="day fz32 PX30">Day01</view>
<view class="color333 text row items-center MT10 PX30">
枯山水景致·大池禅寺,枯山水景致·大池禅寺(包含:茶道体验),骏河湾游船.喂海鸥.远眺富士山美景,富士山芝樱名所
</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</view>
</template>
<script>
export default {
props:['data'],
data() {
return {
}
},
watch: {
data:{
handler(newVal,oldVal){
},
deep:true,
immediate:false
},
},
mounted() {
},
methods:{
}
}
</script>
\ No newline at end of file
......@@ -127,7 +127,7 @@
<view class="row items-flex-end">
<text class="stip">¥</text>
</view>
<text class="num">{{ dataList[current].PlanTotalPrice }}</text>
<text class="num">{{ dataList[currentIndex].PlanTotalPrice }}</text>
</view>
</view>
</view>
......@@ -191,7 +191,8 @@
<view class="teamLeaderPath column">
<view class="teamLeaderListBox row">
<template v-for="(item,index) in pathList">
<view v-if="index<3" class="teamLeaderList column justify-center">
<view v-if="index<3" class="teamLeaderList column justify-center"
@click="goUrl(item.path)">
<view class="teamLeaderList-top">
<img :src="item.src">
</view>
......@@ -201,7 +202,8 @@
</view>
<view class="teamLeaderListBox row">
<template v-for="(item,index) in pathList">
<view v-if="index>=3" class="teamLeaderList column justify-center">
<view v-if="index>=3" class="teamLeaderList column justify-center"
@click="goUrl(item.path)">
<view class="teamLeaderList-top">
<img :src="item.src">
</view>
......@@ -214,15 +216,18 @@
:current="currentId"
:currencyList="currencyList"
@close="close" @change="popupCurrency"></currencyBottom>
<QRCode v-if="showQRCode"></QRCode>
</view>
</template>
<script>
import headers from "@/components/header/header";
import currencyBottom from "./components/currencyBottom";
import QRCode from "./components/QRCode";
export default {
components: {
headers,
currencyBottom
currencyBottom,
QRCode
},
data() {
return {
......@@ -231,7 +236,7 @@ export default {
{
name: "账单",
src: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638868998200434106.png",
path: "",
path: "/pages/teamLeader/billDetails",
id: 1,
},
{
......@@ -275,7 +280,7 @@ export default {
currencyList: [],
currentId: 0,
currentIndex: 0,
newCurrent: 0,
showQRCode: false,
}
},
onLoad(option){
......@@ -295,6 +300,11 @@ export default {
},
methods: {
goUrl(url){
uni.navigateTo({
url: url,
})
},
goBookkeeping(){
uni.navigateTo({
url: `/pages/teamLeader/reimbursementInfor?TCIDs=${this.msg.TCIDs}`,
......
<style lang="scss">
@import url("@/asset/css/flex.css");
.backBox{
width: 45rpx;
height:45rpx;
background: rgba(23,23,23,.5);
border-radius: 50%;
margin-top: 22rpx;
}
.backIcon{
display: inline-block;
margin-top: 6rpx;
}
.backBox img{
width: 19rpx;
height: 24rpx;
display: inline-block;
margin-top: 10rpx;
}
.itiner-title {
line-height: 45px !important;
font-size: 16px;
text-align: center;
position: fixed;
left: 0;
top: 0;
width: 100%;
color: #111;
box-sizing: content-box;
z-index: 5;
display: flex;
align-items: center;
background-color: #f6f6f6;
padding-left: 6rpx;
}
.bjLine{
background: #F5F5F5;
height: 30rpx;
}
.itiner-c-title{
font-weight: bold;
}
.itiner-xincheng img{
width: 31rpx;
height: 33rpx;
}
.itiner-xincheng-left{
color: #838383;
}
.itiner-xincheng-right view{
border: 1rpx solid #3581DA;
color: #3581DA;
border-radius: 8rpx;
padding: 0 8rpx;
}
.itiner-left-line{
width: 9rpx;
height: 25rpx;
border-radius: 100rpx;
background: #000;
}
.itiner-titleBox{
border-bottom: 1px solid #eee;
}
.itiner-title-c{
padding: 25rpx 20rpx;
}
.itiner-title-c.active{
position: relative;
color: #327FDE;
}
.itiner-title-c.active::after{
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5rpx;
background: #3581DA;
}
.itiner-feiyong{
background: #FF9702;
color: #fff;
border-radius: 10rpx;
padding: 0rpx 20rpx;
}
</style>
<template>
<scroll-view ref="scrollView" scroll-y="true"
style="width: 100%; height: 100vh;"
@scroll="scroll"
:scroll-top="scrollTop">
<view class="media" :style="{ opacity: 100 - boxOption + '%' }"
@click="openPicture">
<u-swiper
:list="imgsList"
:effect3d="false"
:height="545"
:interval="5000"
:border-radius="0"
name="url"
mode="number"
indicatorPos="bottomRight">
</u-swiper>
<view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx">
<view class="backBox text-center">
<u-icon class="backIcon" name="arrow-left" size="32" color="#FFF"></u-icon>
</view>
</view>
<view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
style="position: fixed; top: 0; right: 200rpx; padding-right: 6rpx">
<view class="backBox text-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762515984923148.png" />
</view>
</view>
</view>
<view class="itiner-title" :style="[titleStyle]">
<view @click="goback">
<u-icon name="arrow-left" size="38"></u-icon>
</view>
<view style="flex: 1; margin-left: 30rpx; text-align: left" class="name-ali">
名称
</view>
</view>
<view class="itiner-content">
<view class="PX30 PB20">
<view class="PT25 PB30 fz32 itiner-c-title">
名称
</view>
<view class="row justify-between items-center">
<view class="row items-center">
<view class="row items-center"><view class="fz28 color9C9C9C">同业价:</view> <text class="fontBold fz38 colorF99710">0 </text><text class="fz24 ML10"> / 人</text></view>
<view class="row items-center ML30"><view class="fz28 color9C9C9C">统一售价:</view> <text class="fontBold fz38 colorF99710">0 </text><text class="fz24 ML10"> / 人</text></view>
</view>
<view>
<u-icon class="backIcon" name="arrow-down" size="32" color="#9D9D9D"></u-icon>
<u-icon class="backIcon" name="arrow-up" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view class="colorE1432E fz28 PT10">
op备注:
</view>
</view>
<view class="bjLine"></view>
<view class="PX30 PB20">
<view class="MT15 itiner-xincheng row items-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112655075900.png"/>
<view class="itiner-xincheng-left ML30 MR30 fz26">行程天数</view>
<view class="itiner-xincheng-right fz28 row items-center"> 7<text class="ML10 MR10"></text> 6 <tetx class="ML10 MR10"></tetx> 跟团游 <view class="ML30 MR10">行程下载</view></view>
</view>
<view class="MT10 itiner-xincheng row items-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112698474332.png"/>
<view class="itiner-xincheng-left ML30 MR30 fz26">出发城市</view>
<view class="itiner-xincheng-right fz28 row items-center">上海</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">报名清单</text>
</view>
<view>
<u-icon class="backIcon" name="arrow-down" size="32" color="#9D9D9D"></u-icon>
<u-icon class="backIcon" name="arrow-up" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view class="">
<view class="fz28">本团机位</view>
<view class="fz28 PT15 PB20">报名人数</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">本团卖店</text>
</view>
<view>
<u-icon class="backIcon" name="arrow-down" size="32" color="#9D9D9D"></u-icon>
<u-icon class="backIcon" name="arrow-up" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view class="">
<view class="fz28"></view>
<view class="fz28 PB20" style="color: #7B7B7B;">暂未填写</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">航班信息</text>
</view>
<view>
<u-icon class="backIcon" name="arrow-down" size="32" color="#9D9D9D"></u-icon>
<u-icon class="backIcon" name="arrow-up" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view class="">
<view class="fz28"></view>
<view class="fz28 PB20" style="color: #7B7B7B;">暂未航班信息</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30 itiner-titleBox row items-center justify-between">
<view class="itiner-title-c fz30"
:class="[current==item.ID?'active':'']"
v-for="(item,index) in titlesList"
:key="index">
{{ item.Name }}
</view>
</view>
<view class="PX30" id="title1">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程特色</text>
</view>
<view>
<img src="" />
</view>
</view>
<view class="PX30" id="title2">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程介绍</text>
</view>
<view>
<img src="" />
</view>
</view>
<view class="PX30" id="title3">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">费用说明</text>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用包含</text>
</view>
<view class="PB20">
<view class="fz26"></view>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用不包含</text>
</view>
<view class="PB20">
<view class="fz26"></view>
</view>
</view>
<view class="PX30" id="title4">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">预定须知</text>
</view>
<view class="PB20">
<text class="itiner-win">重要提示</text>
</view>
<view class="PB20">
<view class="fz26"></view>
</view>
<view class="PB20">
<text class="itiner-tisp">温馨提示</text>
</view>
<view class="PB20">
<view class="fz26"></view>
</view>
</view>
</view>
</scroll-view>
</template>
<script>
export default {
data() {
return {
scrollTop: 100,
old: {
scrollTop: 0
},
boxOption: 0,
titleStyle: {
opacity: 0,
},
imgsList: [
{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
],
titlesList:[{
Name: '行程特色',
ID: 1,
val: 'title1',
top: 0,
},
{
Name: '7日行程',
ID: 2,
val: 'title1',
top: 0,
},
{
Name: '费用说明',
ID: 3,
val: 'title3',
top: 0,
},
{
Name: '预定须知',
ID: 4,
val: 'title4',
top: 0,
},
],
current: 1,
}
},
computed: {
},
created() {
},
onLoad(options) {
},
onShow() {
let that = this;
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0",
};
},
});
},
mounted() {
},
methods: {
goback() {
uni.navigateBack({
delta: 1,
});
},
openPicture() {
let imgObj = JSON.stringify(this.imgsList);
uni.navigateTo({
url: "/pages/hotel/picture?imgObj=" + imgObj,
});
},
scroll(e) {
this.old.scrollTop = e.detail.scrollTop
this.boxOption = Math.floor((e.detail.scrollTop - 50) / 1.5);
this.titleStyle.opacity =
e.detail.scrollTop - 100 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 100) / 100 > 1 ?
1 :
Math.floor(e.detail.scrollTop - 100) / 100;
this.$forceUpdate();
},
},
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.itinInfoHeaderBox{
background: linear-gradient(-30deg, #4779FF, #47A5FF);
}
.itinInfoTitle{
position: relative;
z-index: 3
}
.itinInfoTitle.fixed{
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 2;
background: linear-gradient(-30deg, #4779FF, #47A5FF);
}
.itinInfoTitle.fixed .itinInfoTsBox{
top: 22rpx;
}
.teamLeader-currency{
font-size: 24rpx;
border-radius: 30rpx;
// border: 1px solid #fff;
padding: 8rpx 20rpx;
position: absolute;
right: 210rpx;
top: 118rpx;
color: #fff;
}
.teamLeader-currency text{
margin-right: 15rpx;
}
.triangle {
width: 0;
height: 0;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
border-top: 8rpx solid #fff;
}
.itinInfoNum view{
border: 1px solid #75B7FF;
border-radius: 22rpx;
height: 47rpx;
line-height: 40rpx;
margin: 0 18rpx;
padding: 0 20rpx;
overflow: hidden;
}
.itinInfoCarNum{
margin-top: 38rpx;
}
.itinInfoCarNum>view{
height: 57rpx;
line-height: 50rpx;
background: rgba(1, 48, 176, .2);
}
.itinInfoCarNum>view:last-child{
background: rgba(1, 48, 176, .1);
}
.itinInfoLeader{
color: #0844B9 ;
padding: 17rpx 0;
}
.itineraryInformationCenter{
box-shadow: 0rpx 1rpx 6rpx 0rpx rgba(102,102,102,0.4);
border-radius: 10rpx;
}
.itineraryInformationCtime{
border-bottom: 1px dashed rgba(0, 0, 0, .1);
margin: 0 23rpx;
}
.itineraryInformationCtext{
margin-left: 23rpx;
margin-right: 23rpx;
align-items: flex-start;
padding: 16rpx 0;
}
.itineraryInformationCtext:last-child{
padding-top: 0;
}
.itineraryInformationCtext>view:first-child{
width: 100rpx;
text-align: right;
color: #333;
padding-top: 5rpx;
}
.itineraryInformationCtext .din{
padding: 16rpx 0;
margin-top: 12rpx;
}
.itineraryInformationCtext>view:last-child{
margin-left: 30rpx;
}
.itineraryInformationCtext view:last-child view{
border-bottom: 1px dashed rgba(0, 0, 0, .1);
padding: 16rpx 0;
}
.itineraryInformationSCenter{
box-shadow: 0rpx 1rpx 6rpx 0rpx rgba(102,102,102,0.4);
border-radius: 10rpx;
}
.itineraryInformationSCenter view view{
padding: 20rpx 0;
}
.itineraryInformationSCenter view view:first-child{
width: 150rpx;
text-align: right;
color: #333;
padding-top: 26rpx;
}
.itineraryInformationSCenter view view:last-child{
border-bottom: 1px dashed rgba(0, 0, 0, .1);
}
</style>
<template>
<view style="height: 100vh;">
<scroll-view class="itinInfoBox" scroll-y="true"
:enable-back-to-top="true" :enable-flex="true"
@scroll="scroll" style="height: 100vh;">
<view class="itinInfoHeaderBox colorFFF">
<view class="itinInfoTitle">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<view class="teamLeader-currency row items-center" @click="currencyVisible=true"><text>行程详情</text></view>
</view>
<view class="itinInfoTitle fixed"
:style="{ opacity: boxOption + '%' }">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<view class="teamLeader-currency row items-center" @click="currencyVisible=true"><text>行程详情</text></view>
</view>
<view class="fz28 row justify-center items-center fz28" style="color: #D5E2FF;">
<img class="MR20" style="width: 31rpx;height: 31rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874927031858279.png"/>
<text>团号</text>
</view>
<view class="row justify-center items-center PT20 PB10">
<text class="fz36">JVS0601OTC-CAA</text>
<view class="triangle ML10"></view>
</view>
<view class="itinInfoNum row justify-center fz24">
<view>7T+2S</view>
<view>中型(28席)</view>
<view>28人</view>
</view>
<view class="itinInfoCarNum row fz24">
<view class="flex1 row justify-center">
<view style="color: #D5E2FF;">车配号</view>
<view class="ML25">OT</view>
</view>
<view class="flex1 row justify-center">
<view style="color: #D5E2FF;">举牌接机</view>
<view class="ML25"></view>
</view>
</view>
</view>
<view class="itinInfoLeader row fz24">
<view class="flex1 row justify-center">
<view>领队:</view>
<view>OT</view>
</view>
<view class="flex1 row justify-center">
<view>导游:</view>
<view></view>
</view>
</view>
<view class="row justify-center items-center">
<img style="width: 25rpx;height: 32rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874931415480953.png"/>
<text class="ML20 fz28">行程概要</text>
</view>
<view class="itineraryInformationCBox PX30">
<view class="MT30 itineraryInformationCenter">
<view class="itineraryInformationCtime PY20 text-center fz24">2025-06-25</view>
<view class="itineraryInformationCtext row">
<view class="fz24">用车情况</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">航班</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">行程内容</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">酒店</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">酒店联系</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">结算方式</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">车牌号</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">司机信息</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">司机电话</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">司机住宿</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24">用车备注</view>
<view class="flex1 fz28 fontWeight500">酒接</view>
</view>
<view class="itineraryInformationCtext row">
<view class="fz24 din">餐食</view>
<view class="flex1 column fz28 fontWeight500">
<view class="flex1">酒接</view>
<view class="flex1">酒接</view>
<view class="flex1">酒接</view>
</view>
</view>
</view>
</view>
<view class="MT30 row justify-center items-center">
<img style="width: 32rpx;height: 27rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874937294094501.png"/>
<text class="ML20 fz28">购物店</text>
</view>
<view class="itineraryInformationCBox PX30">
<view class="MT30 PB30 itineraryInformationSCenter">
<view class="row">
<view class="fz24">2018/4/15</view>
<view class="flex1 fz28 ML30">新宿高岛屋</view>
</view>
</view>
<view class="fz26 text-center">无购物店安排</view>
</view>
<view class="MT40 row justify-center items-center">
<img style="width: 25rpx;height: 32rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874937330393349.png"/>
<text class="ML20 fz28">集团公司总部联络方式</text>
</view>
<view class="itineraryInformationCBox PX30">
<view class="MT30 PB30 itineraryInformationSCenter">
<view class="row">
<view class="fz24">车负责人</view>
<view class="flex1 fz28 ML30">唐雪梅</view>
</view>
<view class="row">
<view class="fz24">门票负责人</view>
<view class="flex1 fz28 ML30">唐雪梅</view>
</view>
<view class="row">
<view class="fz24">机票负责人</view>
<view class="flex1 fz28 ML30">唐雪梅</view>
</view>
<view class="row">
<view class="fz24">订房负责人</view>
<view class="flex1 fz28 ML30">唐雪梅</view>
</view>
<view class="row">
<view class="fz24">订餐负责人</view>
<view class="flex1 fz28 ML30">唐雪梅</view>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</scroll-view>
<currencyBottom v-if="currencyVisible"
:current="currentId"
:currencyList="currencyList"
@close="close" @change="popupCurrency"></currencyBottom>
</view>
</template>
<script>
import headers from "@/components/header/header";
import currencyBottom from "./components/currencyBottom";
export default {
components: {
headers,
currencyBottom,
},
data() {
return {
pageTitle: '行程信息',
boxOption: 0,
currencyVisible: false,
currencyList: [],
currentId: 0,
currentIndex: 0,
downImg:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827170491438.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827279495359.png',
],
typeImgs:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829614812469.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612434651.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829685012792.png'
]
}
},
onLoad(option){
},
created() {
},
mounted() {
},
methods: {
popupCurrency(value){
this.currencyVisible = false
this.currentId = value
this.currentIndex = this.dataList.findIndex(item=>item.CurrencyId==value)
},
scroll(e) {
this.boxOption = Math.floor((e.detail.scrollTop - 100) / 1.5);
this.$forceUpdate();
},
},
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.opiSurListBox{
background: #f5f5f5;
height: 100vh;
overflow: hidden;
}
.opiSurHeader{
background: linear-gradient(-30deg, #4779FF, #47A5FF);
}
.opiSurTitle view{
padding: 5rpx 20rpx;
border: 1px solid #fff;
background: #fff;
border-radius: 50rpx;
}
.opiSurTitle view.active{
border: 1px solid #4779FF;
background: #BED6FF;
color: #4779FF;
}
.opiSurListCenter{
background: #fff;
border-radius: 10rpx;
overflow: hidden;
box-shadow: 0rpx 3rpx 32rpx 0rpx rgba(71,71,71,0.16);
}
</style>
<template>
<view class="opiSurListBox column">
<view class="opiSurHeader">
<headers :title="pageTitle" color="#fff"></headers>
</view>
<view class="opiSurTitle row justify-between PX30 PY20 fz24">
<view v-for="item in titles"
:class="[msg.type==item.id?'active':'']">
{{ item.name }}({{ item.num }})
</view>
</view>
<scroll-view class="flex1 bgFFF" scroll-y="true"
:enable-back-to-top="true" :enable-flex="true"
style="overflow: hidden;">
<view class="PX30">
<view v-for="item in 20"
class="opiSurListCenter fz28 PX20 PY20 MT20 MB30 row justify-between">
<view>名字</view>
<view>未评分</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</scroll-view>
</view>
</template>
<script>
import headers from "@/components/header/header";
export default {
components: {
headers,
},
data() {
return {
pageTitle: '意见调查',
showVisible: false,
titles:[
{name:'全部',id:1,num:37},
{name:'已评分',id:2,num:12},
{name:'未评分',id:3,num:25},
],
msg:{
type: 1
}
}
},
onLoad(option){
},
created() {
},
mounted() {
},
methods: {
showPassengerInfo(){
this.showVisible = true
}
},
}
</script>
\ No newline at end of file
......@@ -129,16 +129,16 @@
<script>
import headers from "@/components/header/header";
import headeDatas from "./components/headeDatas";
import productInfor1 from "./components/productInfor1";
import productInfor2 from "./components/productInfor2";
import productInfor3 from "./components/productInfor3";
import productInfor4 from "./components/productInfor4";
import otherInfor1 from "./components/otherInfor1";
import otherInfor2 from "./components/otherInfor2";
import otherInfor3 from "./components/otherInfor3";
import otherInfor4 from "./components/otherInfor4";
import otherInfor5 from "./components/otherInfor5";
import otherInfor6 from "./components/otherInfor6";
import productInfor1 from "./components/report/productInfor1";
import productInfor2 from "./components/report/productInfor2";
import productInfor3 from "./components/report/productInfor3";
import productInfor4 from "./components/report/productInfor4";
import otherInfor1 from "./components/report/otherInfor1";
import otherInfor2 from "./components/report/otherInfor2";
import otherInfor3 from "./components/report/otherInfor3";
import otherInfor4 from "./components/report/otherInfor4";
import otherInfor5 from "./components/report/otherInfor5";
import otherInfor6 from "./components/report/otherInfor6";
export default {
components: {
headers,
......
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.roomListBox{
background: #f5f5f5;
height: 100vh;
}
.roomHeader{
background: linear-gradient(-30deg, #4779FF, #47A5FF);
position: fixed;
left: 0;
right: 0;
z-index: 2;
}
.roomListCenter{
background: #fff;
border-radius: 10rpx;
overflow: hidden;
}
.roomListC-L-type{
border-radius: 6rpx;
background: #0072FF;
padding: 5rpx 10rpx;
color: #fff;
margin-right: 20rpx;
}
.roomListCenter.active1 .roomListC-L-type{
background: #FD9700;
}
.roomListCenter.active2 .roomListC-L-type{
background: #FD9700;
}
.roomListC-box{
background: #F8F8F8;
border-radius: 4rpx;
}
.roomListC-bind view{
border: 1px solid #73AEFF;
color: #257BF1;
border-radius: 6rpx;
padding: 5rpx 10rpx;
margin-right: 20rpx;
margin-top: 20rpx;
margin-bottom: 25rpx;
}
.roomListC-info{
margin-bottom: 23rpx;
font-size: 24rpx;
}
.roomListC-info-L{
width: 350rpx;
color: #333333;
}
.roomListC-info-L view:first-child{
width: 100rpx;
text-align: right;
margin-right: 20rpx;
color: #666666;
flex-shrink: 0;
}
.roomListC-info-R {
color: #333333;
}
.roomListC-info-R view:first-child{
width: 80rpx;
text-align: right;
margin-right: 20rpx;
color: #666666;
flex-shrink: 0;
}
.roomListC-info-L view:last-child,.roomListC-info-R view:last-child{
font-weight: 500;
}
</style>
<template>
<view class="roomListBox">
<view class="roomHeader">
<headers :title="pageTitle" color="#fff"></headers>
</view>
<scroll-view scroll-y="true"
:enable-back-to-top="true" :enable-flex="true" style="height: 100%;">
<view class="PA30" style="margin-top: 160rpx;">
<view class="roomListCenter PX20 MT30">
<view class="roomListC-header PY15 row justify-between items-center">
<view class="roomListC-L row items-center fz24">
<view class="roomListC-L-type">
单间
</view>
<view class="fz28">
<text>分房:</text>
<text>20</text>
</view>
</view>
<view>
<text>人数:</text>
<text>1</text>
</view>
</view>
<view>
<view class="roomListC-box PA20 MB20">
<view class="roomListC-Title row justify-between"
@click="showPassengerInfo">
<view class="fz28 row">
<view>姓名</view>
<view class="ML20 color999">(jhggyookp[p[]])</view>
<img src="" style="width: 21rpx;height: 21rpx;"/>
</view>
<view>
<u-icon class="" name="arrow" size="32" color="#ccc"></u-icon>
</view>
</view>
<view class="roomListC-bind row fz20">
<view>未绑定</view>
<view>领队</view>
</view>
<view class="roomListC-info row">
<view class="roomListC-info-L row">
<view>护照号</view>
<view class="flex1">12121</view>
</view>
<view class="roomListC-info-R row">
<view>签发地</view>
<view class="flex1">2121</view>
</view>
</view>
<view class="roomListC-info row">
<view class="roomListC-info-L row">
<view>客户手机</view>
<view class="flex1">2121</view>
</view>
<view class="roomListC-info-R row">
<view>业务员</view>
<view class="flex1">2121</view>
</view>
</view>
<view class="roomListC-info row">
<view class="roomListC-info-L row">
<view>出生日期</view>
<view class="flex1">2121</view>
</view>
<view class="roomListC-info-R row">
<view>单价</view>
<view class="flex1">¥</view>
</view>
</view>
<view class="roomListC-info row">
<view class="roomListC-info-L row">
<view>备注</view>
<view class="flex1 colorE1432E">21211</view>
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
<passengerInfo v-if="showVisible" @close="showVisible=false"></passengerInfo>
</view>
</template>
<script>
import headers from "@/components/header/header";
import passengerInfo from "./components/passengerInfo";
export default {
components: {
headers,
passengerInfo
},
data() {
return {
pageTitle: '分房表',
showVisible: false
}
},
onLoad(option){
},
created() {
},
mounted() {
},
methods: {
showPassengerInfo(){
this.showVisible = true
}
},
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.schedule{
height: 100vh;
}
.scheduleHeaderBox{
background: linear-gradient(-30deg, #4FA9FF, #4779FF);
box-shadow: 0rpx 5rpx 35rpx 0rpx #4C97FF;
}
.scheduleTitle{
// position: relative;
z-index: 3
}
.scheduleTitle.fixed{
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 2;
background: linear-gradient(-30deg, #4FA9FF, #4779FF);
}
.scheduleTitle.fixed .scheduleTsBox{
top: 22rpx;
}
.scheduleTsBox{
// width: 60%;
// position: absolute;
// top: 118rpx;
// left: 80rpx;
// right: 300rpx;
overflow: hidden;
}
.scheduleT-text{
}
.scheduleText{
font-weight: 500;
font-size: 32rpx;
color: #ACCEFF;
white-space: nowrap;
margin-left: 22rpx;
margin-right: 22rpx;
margin-top: 22rpx;
padding: 0 20rpx;
}
.scheduleText text{
display: block;
}
.scheduleText view{
border-radius: 4rpx;
height: 8rpx;
margin-top: 15rpx;
}
.scheduleText.active{
color: #FFFFFF;
}
.scheduleText.active view{
background: #FBCF20;
}
.schedule-Touxiang{
width: 65rpx;
height: 65rpx;
background: #fff;
border-radius: 50%;
}
.schedule-title{
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
</style>
<template>
<view style="height: 100vh;">
<scroll-view class="scheduleBox" scroll-y="true"
:enable-back-to-top="true" :enable-flex="true"
@scroll="scroll" style="height: 100vh;">
<view class="scheduleHeaderBox">
<view class="scheduleTitle">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<view class="PX40 PY20">
<view class="column" style="border-radius: 8rpx;overflow: hidden;">
<view class="colorFFF relative column"
style="height: 386rpx;background-size: 100% 100%;"
:style="{'background': '',}">
<img class="absolute" style="width: 100%;height: 386rpx;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875686175608095.png"/>
<view class="absolute column" style="left: 0;right: 0;top: 0;bottom: 0;z-index: 2;">
<view class="row items-center PX30 PT30">
<view class="row items-center">
<view class="schedule-Touxiang">
<img style="width: 65rpx;height: 65rpx;display: inline-block;"/>
</view>
<view class="schedule-name ML20">
<view class="fz28">名字</view>
<view class="fz24">(领队)</view>
</view>
</view>
<view class="row items-center ML50">
<view class="schedule-Touxiang">
<img style="width: 65rpx;height: 65rpx;display: inline-block;"/>
</view>
<view class="schedule-name ML20">
<view class="fz28">名字</view>
<view class="fz24">(导游)</view>
</view>
</view>
</view>
<view class="flex1"></view>
<view class="schedule-title fz28 MB30 PX30">产品名字</view>
<view class="row PX30 justify-between items-center fz24 PB20">
<view class="row items-center">
<img style="width: 24rpx;height: 32rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"/>
<text class="ML20">成都MU</text>
</view>
<view class="row items-center">
<img style="width: 22rpx;height: 32rpx;display: inline-block;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688811834355.png"/>
<text class="ML20">20+1</text>
</view>
</view>
</view>
</view>
<view class="bgFFF PA30">
<view class="PB20 row justify-between items-center">
<view class="color666">集合时间</view>
<view class="color333">05-01 06:30</view>
</view>
<view class="PB20 row justify-between items-center">
<view class="color666">出发时间</view>
<view class="color333">05-01 06:30</view>
</view>
<view class="row justify-between items-center">
<view class="color666">进出点</view>
<view class="color333">05-01 06:30</view>
</view>
</view>
</view>
</view>
<scroll-view class="scheduleTsBox" :scroll-x="true"
:scroll-left="scrollLeft"
@scroll="scrollHandler">
<view class="scheduleT-text row-aic-n">
<view class="scheduleText"
:class="[params.type==item.id?'active':'']"
v-for="(item,index) in titles"
:key="index"
@click="getType(item)">
<text>{{ item.name }}</text>
<view></view>
</view>
</view>
</scroll-view>
</view>
<view class="scheduleTitle fixed"
:style="{ opacity: boxOption + '%' }">
<headers textAlign="left" :title="pageTitle" color="#fff"></headers>
<scroll-view class="scheduleTsBox" :scroll-x="true"
:style="[titleStyle]"
:scroll-left="scrollLeft"
@scroll="scrollHandler">
<view class="scheduleT-text row-aic-n">
<view class="scheduleText"
:class="[params.type==item.id?'active':'']"
v-for="(item,index) in titles"
:key="index"
@click="getType(item)">
<text>{{ item.name }}</text>
<view></view>
</view>
</view>
</scroll-view>
</view>
</view>
<infor1 v-if="params.type==1"></infor1>
<infor2 v-if="params.type==2"></infor2>
<infor3 v-if="params.type==3"></infor3>
<infor4 v-if="params.type==4"></infor4>
<infor5 v-if="params.type==5"></infor5>
<infor6 v-if="params.type==6"></infor6>
<infor7 v-if="params.type==7"></infor7>
<infor8 v-if="params.type==8"></infor8>
<infor9 v-if="params.type==9"></infor9>
</scroll-view>
</view>
</template>
<script>
import headers from "@/components/header/header";
import infor1 from "./components/schedule/infor1";
import infor2 from "./components/schedule/infor2";
import infor3 from "./components/schedule/infor3";
import infor4 from "./components/schedule/infor4";
import infor5 from "./components/schedule/infor5";
import infor6 from "./components/schedule/infor6";
import infor7 from "./components/schedule/infor7";
import infor8 from "./components/schedule/infor8";
import infor9 from "./components/schedule/infor9";
export default {
components: {
headers,
infor1,
infor2,
infor3,
infor4,
infor5,
infor6,
infor7,
infor8,
infor9,
},
data() {
return {
pageTitle: '领队导游运行计划表',
boxOption: 0,
titleStyle: {
opacity: 0,
},
scrollTop: 100,
old: {
scrollTop: 0
},
titles:[
{
name:'相关信息',
id: 1,
},
{
name:'航班信息',
id: 2,
},
{
name:'车辆使用',
id: 3,
},
{
name:'酒店使用',
id: 4,
},
{
name:'餐食使用',
id: 5,
},
{
name:'门票使用',
id: 6,
},
{
name:'购物店',
id: 7,
},
{
name:'旅客名单',
id: 8,
},
{
name:'行程内容',
id: 9,
},
],
currencyVisible: false,
oldDataIndex: 1,
loading: false,
msg:{
TCIDs: ''
},
datas: {},
params:{
type: 9
},
busTypeList:[],
hotelTypeList:[],
diningTypeList:[],
scenicTypeList:[],
otherTypeList:[
{
name:'导游津贴',
id: 1,
},
{
name:'司机津贴',
id: 2,
},
{
name:'其他支出',
id: 0,
},
],
scrollLeft: 0,
currencyList: [],
shopTypeList: [],
}
},
onLoad(option){
if(option.TCIDs){
this.msg.TCIDs = option.TCIDs
}
this.b2b_user_info = uni.getStorageSync('b2b_user')
// this.init()
},
created() {
this.contentHeight = this.$utils.calcContentHeight(-40) + "px";
this.mainColor = this.$uiConfig.mainColor;
},
mounted() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
// this.getOptionData()
// this.getCurrencyList()
},
methods: {
saveData(){
if(this.loading) return
this.loading = true
uni.showLoading()
this.apipost("dmcstatistics_post_SetNewLeaderApplyList_V2", this.params, (res) => {
if(res.resultCode == 1) {
this.loading = false
uni.hideLoading()
this.init()
}
}, (failed) => {
this.loading = false
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
this.loading = false
})
},
getNewData(params){
this.params = JSON.parse(JSON.stringify(params))
},
getType(item){
this.params.type = item.id
this.oldDataIndex = item.id
},
init() {
uni.showLoading()
this.apipost("dmcstatistics_post_GetNewLeaderPayMoneyStatics", this.msg, (res) => {
if (res.resultCode == 1) {
this.params = res.data;
for(let i=1;i<5;i++){
this.$set(this.params, `dataIndex${i}`, 0);
}
this.$set(this.params, `type`, this.oldDataIndex);
for(let i=0;i<this.params.ScenicList.length;i++){
this.$set(this.params.ScenicList[i], `TotalMoney`, 0);
this.$set(this.params.ScenicList[i], `scenicIndex`, 0);
}
for(let i=0;i<this.params.DiningList.length;i++){
this.$set(this.params.DiningList[i], `TotalMoney`, 0);
this.$set(this.params.DiningList[i], `diningIndex`, 0);
}
for(let i=0;i<this.params.HotelOrderListReport.length;i++){
this.$set(this.params.HotelOrderListReport[i], `TotalMoney`, 0);
this.$set(this.params.HotelOrderListReport[i], `hotelIndex`, 0);
}
if(res.data.CountryIds) this.getShoppingType(res.data.CountryIds)
// console.log(this.params.HotelOrderListReport,'-----酒店')
// console.log(this.params.BusList,'-----车信息')
// console.log(this.params.ScenicList,'-----景点')
// console.log(this.params.DiningList,'-----餐厅')
// console.log(this.params.LeaderShopList ,'-----购物店信息')
// console.log(this.params.LeaderApply ,'-----领队用款申请信息')
// console.log(this.params.OtherOrderInfo,'-----其他信息')
setTimeout(()=>{
uni.hideLoading()
},1000)
}
}, (failed) => {
uni.hideLoading()
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
uni.hideLoading()
})
},
getShoppingType(id){
this.apipost("Shopping_Post_GetList", {
QCountry: id
}, (res) => {
if (res.resultCode == 1) {
this.shopTypeList = []
res.data.forEach(x=>{
this.shopTypeList.push({
id: x.ID,
name: x.Name,
})
})
}
})
},
scrollHandler(e){
// console.log(e.detail.scrollLeft,'-----------')
// this.scrollLeft = e.detail.scrollLeft
},
scroll(e) {
this.old.scrollTop = e.detail.scrollTop
this.boxOption = Math.floor((e.detail.scrollTop - 100) / 1.5);
this.titleStyle.opacity =
e.detail.scrollTop - 200 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 100) / 100 > 1 ?
1 :
Math.floor(e.detail.scrollTop - 100) / 100;
this.$forceUpdate();
},
getOptionData(){
this.apipost("dmcstatistics_post_GetReimburseTypeList", {
Type: ''
}, (res) => {
if (res.resultCode == 1) {
res.data.forEach(x => {
x.name = x.TypeName
x.id = x.ID
});
this.busTypeList = res.data.filter(x=>{return x.UserTypeId==4})
this.hotelTypeList = res.data.filter(x=>{return x.UserTypeId==1})
this.diningTypeList = res.data.filter(x=>{return x.UserTypeId==2})
this.scenicTypeList = res.data.filter(x=>{return x.UserTypeId==3})
}
}, (failed) => {
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
})
},
getCurrencyList(){
this.apipost("financeinfo_post_GetList", {
Name: '',
}, (res) => {
if (res.resultCode == 1) {
for(let i=0;i<res.data.length;i++){
let data = res.data[i]
this.currencyList.push({
name: data.Name,
id: data.ID,
})
}
}
}, (failed) => {
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
})
}
}
}
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment