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}`,
......
This diff is collapsed.
This diff is collapsed.
<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
This diff is collapsed.
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