完成船只管理

main
lynn 12 months ago
parent 242f343dbd
commit b922ecbed0

@ -1,28 +1,69 @@
<script>
import { API } from './config/index.js'
export default {
onLaunch: async function() {
try {
// if(this.base.isNull(this.vuex_token)){
// uni.redirectTo({
// url:'/package_sub/login/login'
// })
// }else{
// const user = await this.$u.api.getUser()
// console.log("user",user)
// this.$u.vuex('vuex_user', user)
// }
} catch (err) {
console.error(err)
}
onLaunch: function() {
console.log('App Launch')
this.wxLogin()
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
},
methods: {
wxLogin() {
// const token = uni.getStorageSync('token')
// if (token) {
// console.log(' token使:', token)
// return
// }
uni.login({
provider: 'weixin',
success: (loginRes) => {
const code = loginRes.code
console.log('微信登录成功code:', code)
// code token
uni.request({
url: API.LOGIN,
method: 'POST',
data: { code },
success: (res) => {
const result = res.data
if (result.errcode === 0) {
const token = result.data.access_token
console.log('获取 token 成功:', token)
uni.setStorageSync('token', token)
//
uni.request({
url: API.GET_USER_INFO,
method: 'POST',
data: { token },
success: (res) => {
console.log('获取用户信息成功:', res.data)
//
},
fail: (err) => {
console.error('获取用户信息失败:', err)
}
})
} else {
console.error('登录失败:', result.errmsg)
// uni.showToast({ title: result.errmsg, icon: 'none' })
}
},
fail: (err) => {
console.error('获取 token 失败:', err)
}
})
},
fail: (err) => {
console.error('微信登录失败:', err)
}
})
}
}
}
</script>

@ -0,0 +1,9 @@
// API配置
export const BASE_URL = 'https://xukoushuniu.115.langye.net'
// API接口地址
export const API = {
LOGIN: `${BASE_URL}/api/customer/login-by-code`,
GET_USER_INFO: `${BASE_URL}/api/customer/me`,
// 其他API接口可以在这里添加
}

@ -5,23 +5,30 @@
},
"pages": [
{
"path": "pages/login/index",
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "登录",
"navigationBarTitleText": "首页",
"navigationStyle": "custom"
}
},
{
"path": "pages/index/index",
"path": "pages/index/ship_manager",
"style": {
"navigationBarTitleText": "船只管理",
"navigationStyle": "custom"
}
},
{
"path": "pages/my/index",
"style": {
"navigationBarTitleText": "胥口枢纽闸站状态",
"navigationBarTitleText": "我的",
"navigationStyle": "custom"
}
},
{
"path": "pages/order/index",
"style": {
"navigationBarTitleText": "订单",
"navigationBarTitleText": "我的购票",
"navigationStyle": "custom"
}
},
@ -33,22 +40,16 @@
}
},
{
"path": "pages/my/index",
"style": {
"navigationBarTitleText": "我的",
"navigationStyle": "custom"
}
},{
"path": "pages/my/ship_detail",
"path": "pages/reservation/index",
"style": {
"navigationBarTitleText": "船舶详情",
"navigationBarTitleText": "过闸预约",
"navigationStyle": "custom"
}
},
{
"path": "pages/reservation/index",
"path": "pages/my/ship_detail",
"style": {
"navigationBarTitleText": "过闸预约",
"navigationBarTitleText": "船只详情",
"navigationStyle": "custom"
}
}
@ -92,7 +93,7 @@
"preloadRule": {},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "胥口闸站购票",
"navigationBarTitleText": "胥口枢纽",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}

@ -73,7 +73,7 @@
</view>
<view class="func-bg-icon ticket"></view>
</view>
<view class="func-card bg-orange">
<view class="func-card bg-orange" @click="goShipManager">
<view class="func-card-content">
<text class="func-title">船只管理</text>
<text class="func-num">6</text>
@ -113,6 +113,9 @@ export default {
methods: {
goReservation() {
uni.navigateTo({ url: '/pages/reservation/index' });
},
goShipManager() {
uni.navigateTo({ url: '/pages/index/ship_manager' });
}
}
}

@ -0,0 +1,637 @@
<template>
<view class="reservation-page">
<view class="fixed-nav">
<NavBar title="船只管理" />
</view>
<view class="content-area">
<!-- 步骤条 -->
<view class="step-bar">
<view class="step-group" v-for="(step, idx) in steps" :key="idx">
<view class="step-circle" :class="{active: idx + 1 === currentStep}">{{ idx + 1 }}</view>
<view class="step-label" :class="{active: idx + 1 === currentStep}">{{ step }}</view>
<view v-if="idx < steps.length - 1" class="step-line"></view>
</view>
</view>
<!-- 第一步基本信息 -->
<view v-if="currentStep === 1" class="info-card">
<view class="info-title">基本信息</view>
<view class="info-form">
<view class="form-row">
<text class="form-label required">船舶所有人</text>
<input class="form-input" placeholder="姓名与身份证一致" />
</view>
<view class="form-row">
<text class="form-label required">身份证号</text>
<input class="form-input" placeholder="输入正确的18位身份证号码" />
</view>
<view class="form-row">
<text class="form-label required">联系电话</text>
<input class="form-input" placeholder="11位常用的手机号" />
</view>
<view class="form-row">
<text class="form-label required">船舶编号</text>
<text class="form-static">ZJ12345</text>
</view>
</view>
</view>
<!-- 第二步船舶参数 -->
<view v-if="currentStep === 2" class="info-card">
<view class="info-title">船舶参数 <text class="info-desc">请按船舶检验证书填写</text></view>
<!-- 总吨位 -->
<view class="form-row">
<text class="form-label required">总吨位</text>
<input class="form-input" placeholder="请输入总吨位" />
<text class="form-unit"></text>
</view>
<view class="form-tip">填写船舶的总吨位数值</view>
<!-- 总长度 -->
<view class="form-row">
<text class="form-label required">总长度</text>
<input class="form-input" placeholder="请输入总长度" />
<text class="form-unit"></text>
</view>
<view class="form-tip">填写船舶的总长度数值</view>
<!-- 总宽 -->
<view class="form-row">
<text class="form-label required">总宽</text>
<input class="form-input" placeholder="请输入总宽" />
<text class="form-unit"></text>
</view>
<view class="form-tip">填写船舶的总宽数值</view>
<!-- 型深 -->
<view class="form-row">
<text class="form-label required">型深</text>
<input class="form-input" placeholder="请输入型深" />
<text class="form-unit"></text>
</view>
<view class="form-tip">填写船舶的型深数值</view>
<!-- 参考载重吨位 -->
<view class="form-row">
<text class="form-label required">参考载重吨位</text>
<radio-group class="form-radio-group">
<label class="form-radio"><radio value="B级" />B级</label>
<label class="form-radio"><radio value="C级" />C级</label>
</radio-group>
</view>
<view class="form-tip">请选择船舶的参考载重吨位等级</view>
<!-- 船型 -->
<view class="form-row">
<text class="form-label required">船型</text>
<radio-group class="form-radio-group">
<label class="form-radio"><radio value="平" /></label>
<label class="form-radio"><radio value="尖" /></label>
<label class="form-radio"><radio value="槽罐船" />槽罐船</label>
</radio-group>
</view>
<view class="form-tip">请选择船舶的类型</view>
</view>
<!-- 第三步船检簿上传 -->
<view v-if="currentStep === 3" class="info-card">
<view class="info-title-row">
<view class="info-title">船检簿上传</view>
<button class="example-btn" @click="viewExample"></button>
</view>
<!-- 第一页 -->
<view class="upload-section">
<text class="form-label required">第一页</text>
<view class="upload-row">
<view class="upload-img-box">
<image v-if="page1Img" :src="page1Img" class="upload-img" />
<view v-else class="upload-add" @click="chooseImage('page1')">
<text>+</text>
<text>添加图片</text>
</view>
<view v-if="page1Img" class="upload-del" @click="deleteImage('page1')">×</view>
</view>
<view class="upload-desc">第一页的名称说明</view>
</view>
</view>
<view class="divider"></view>
<!-- 第二页 -->
<view class="upload-section">
<text class="form-label required">第二页</text>
<view class="upload-row">
<view class="upload-img-box">
<image v-if="page2Img" :src="page2Img" class="upload-img" />
<view v-else class="upload-add" @click="chooseImage('page2')">
<text>+</text>
<text>添加图片</text>
</view>
<view v-if="page2Img" class="upload-del" @click="deleteImage('page2')">×</view>
</view>
<view class="upload-desc">第二页的名称说明</view>
</view>
</view>
</view>
<!-- 第四步签名确认 -->
<view v-if="currentStep === 4" class="info-card">
<view class="info-title">签名确认</view>
<view class="sign-declare-row">
<checkbox v-model="signChecked" />
<text class="sign-declare-text">
本人承诺所提供材料皆真实有效如有虚假本人承担因此造成的全部责任
</text>
</view>
<view class="divider"></view>
<view class="form-label required" style="margin-bottom: 16rpx; color: #217aff;">手写签名</view>
<view class="sign-area">
<canvas
v-if="!signImg"
id="signCanvas"
canvas-id="signCanvas"
class="sign-canvas"
@touchstart="startSign"
@touchmove="moveSign"
@touchend="endSign"
disable-scroll="true"
></canvas>
<text class="sign-placeholder" v-if="!signImg && !hasSigned"></text>
<image v-if="signImg" :src="signImg" class="sign-img" />
</view>
<view class="sign-btn-bar">
<button class="sign-btn reset-btn" @click="resetSign"></button>
<button class="sign-btn preview-btn" @click="previewSign"></button>
</view>
</view>
</view>
<!-- 步骤按钮区 -->
<view class="step-btn-bar">
<button
v-if="currentStep > 1"
class="step-btn prev-btn"
@click="prevStep"
>上一步</button>
<button
v-if="currentStep < 4"
class="step-btn next-btn"
@click="nextStep"
:class="{ 'single-btn': currentStep === 1 }"
:style="currentStep === 1 ? 'margin: 0 auto;' : ''"
>下一步</button>
<button
v-if="currentStep === 4"
class="step-btn next-btn"
@click="submit"
>提交</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
export default {
name: 'ShipManagerPage',
components: { NavBar },
data() {
return {
steps: ['基本信息', '船舶参数', '船检簿上传', '签名确认'],
currentStep: 1,
page1Img: '',
page2Img: '',
signChecked: false,
signImg: '',
isSigning: false,
lastPoint: null,
canvasWidth: 0,
canvasHeight: 0,
hasDrawn: false,
hasSigned: false
}
},
methods: {
nextStep() {
if (this.currentStep < 4) this.currentStep++
},
prevStep() {
if (this.currentStep > 1) this.currentStep--
},
submit() {
uni.showToast({ title: '提交成功', icon: 'success' })
},
chooseImage(page) {
uni.chooseImage({
count: 1,
success: (res) => {
if (page === 'page1') this.page1Img = res.tempFilePaths[0]
if (page === 'page2') this.page2Img = res.tempFilePaths[0]
}
})
},
deleteImage(page) {
if (page === 'page1') this.page1Img = ''
if (page === 'page2') this.page2Img = ''
},
viewExample() {
uni.showToast({ title: '查看示例', icon: 'none' })
},
startSign(e) {
this.isSigning = true
this.hasSigned = true
const ctx = uni.createCanvasContext('signCanvas', this)
const { x, y } = e.touches[0]
//
if (!this.hasDrawn) {
ctx.setFillStyle('#fff')
ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight)
this.hasDrawn = true
}
ctx.moveTo(x, y)
ctx.setStrokeStyle('#222')
ctx.setLineWidth(4)
ctx.beginPath()
this.lastPoint = { x, y }
ctx.draw(true)
},
moveSign(e) {
if (!this.isSigning) return
const ctx = uni.createCanvasContext('signCanvas', this)
const { x, y } = e.touches[0]
ctx.moveTo(this.lastPoint.x, this.lastPoint.y)
ctx.lineTo(x, y)
ctx.setStrokeStyle('#222')
ctx.setLineWidth(4)
ctx.stroke()
ctx.draw(true)
this.lastPoint = { x, y }
},
endSign() {
this.isSigning = false
},
resetSign() {
this.signImg = ''
this.hasDrawn = false
this.hasSigned = false
const ctx = uni.createCanvasContext('signCanvas', this)
ctx.setFillStyle('#fff')
ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight)
ctx.draw()
},
previewSign() {
uni.createSelectorQuery().select('#signCanvas').boundingClientRect(rect => {
uni.canvasToTempFilePath({
canvasId: 'signCanvas',
width: rect.width,
height: rect.height,
success: (res) => {
// this.signImg = res.tempFilePath
uni.previewImage({
urls: [res.tempFilePath]
})
},
fail: (err) => {
uni.showToast({ title: '签名生成失败', icon: 'none' })
}
}, this)
}).exec()
}
}
}
</script>
<style scoped>
.reservation-page {
background: linear-gradient(180deg, #eaf3ff 0%, #f6faff 100%);
min-height: 100vh;
padding-bottom: 40rpx;
}
.fixed-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: linear-gradient(180deg, #cbe6ff 0%, #f6faff 100%);
box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.content-area {
padding-top: 90px;
}
.step-bar {
display: flex;
align-items: flex-start;
justify-content: space-between;
width: 100%;
margin: 64rpx auto 0 auto;
padding: 0 32rpx;
position: relative;
}
.step-group {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
position: relative;
}
.step-circle {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
background: #e3eaf7;
color: #b0b8c6;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: bold;
transition: background 0.2s, color 0.2s;
z-index: 1;
}
.step-circle.active {
background: #fff;
color: #217aff;
border: 4rpx solid #217aff;
}
.step-label {
margin-top: 18rpx;
font-size: 24rpx;
color: #222;
font-weight: normal;
text-align: center;
min-width: 60rpx;
white-space: nowrap;
}
.step-label.active {
color: #217aff;
font-weight: bold;
}
.step-line {
position: absolute;
top: 30rpx;
left: 50%;
width: 100%;
height: 4rpx;
background: #e3eaf7;
z-index: 0;
}
.info-card {
background: #fff;
border-radius: 24rpx;
margin: 0 32rpx;
padding: 32rpx 24rpx;
box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.06);
margin-top: 60rpx;
}
.info-title {
font-size: 28rpx;
font-weight: bold;
margin-bottom: 24rpx;
color: #222;
}
.info-form {
display: flex;
flex-direction: column;
gap: 18rpx;
}
.form-row {
display: flex;
align-items: center;
border-bottom: 1px solid #f0f0f0;
padding: 16rpx 0;
}
.form-label {
width: 180rpx;
font-size: 25rpx;
color: #222;
}
.form-label.required::before {
content: '*';
color: #ff5c5c;
margin-right: 6rpx;
}
.form-input {
flex: 1;
font-size: 25rpx;
color: #333;
border: none;
outline: none;
background: transparent;
}
.form-static {
flex: 1;
font-size: 25rpx;
color: #222;
text-align: left;
}
.step-btn-bar {
display: flex;
justify-content: center;
gap: 32rpx;
margin: 64rpx 0 0 0;
margin-top: 100rpx;
}
.step-btn {
min-width: 270rpx;
height: 80rpx;
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 500;
border: none;
outline: none;
background: #217aff;
color: #fff;
box-shadow: 0 4rpx 16rpx rgba(33,122,255,0.08);
transition: background 0.2s;
}
.step-btn.single-btn {
min-width: 420rpx;
}
.prev-btn {
background: #e3eaf7;
color: black;
}
.next-btn {
background: #217aff;
color: #fff;
}
.info-desc {
font-size: 20rpx;
color: #888;
margin-left: 12rpx;
font-weight: normal;
}
.form-unit {
font-size: 22rpx;
color: #888;
margin-left: 8rpx;
}
.form-tip {
font-size: 20rpx;
color: #b0b8c6;
margin-bottom: 8rpx;
margin-left: 180rpx;
}
.form-radio-group {
display: flex;
gap: 32rpx;
margin-left: 24rpx;
}
.form-radio {
font-size: 25rpx;
color: #222;
display: flex;
align-items: center;
}
.info-title-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24rpx;
}
.example-btn {
background: #edf0f5;
color: #222;
border-radius: 40rpx;
font-size: 30rpx;
font-weight: 500;
padding: 18rpx 78rpx;
border: none;
height: 64rpx;
line-height: 1;
box-shadow: none;
margin-right: 20rpx;
}
.upload-section {
margin-bottom: 32rpx;
}
.upload-row {
display: flex;
align-items: center;
gap: 24rpx;
margin-top: 12rpx;
}
.upload-img-box {
position: relative;
width: 140rpx;
height: 140rpx;
background: #f0f0f0;
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.upload-img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 12rpx;
}
.upload-add {
width: 140rpx;
height: 140rpx;
color: #fff;
font-size: 32rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #a6a8ab;
border-radius: 12rpx;
cursor: pointer;
font-weight: 500;
letter-spacing: 1rpx;
margin-bottom: 20rpx;
}
.upload-add text:first-child {
font-size: 48rpx;
}
.upload-add text:last-child {
font-size: 22rpx;
}
.upload-del {
position: absolute;
top: 0;
right: 0;
width: 36rpx;
height: 36rpx;
background: rgba(0,0,0,0.5);
color: #fff;
font-size: 28rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0 12rpx 0 12rpx;
cursor: pointer;
}
.upload-desc {
flex: 1;
background: #f5f7fa;
color: #b0b8c6;
font-size: 24rpx;
border-radius: 12rpx;
padding: 0 24rpx;
min-height: 140rpx;
display: flex;
align-items: center;
}
.divider {
height: 2rpx;
background: #f0f0f0;
margin: 32rpx 0;
}
.sign-declare-row {
display: flex;
align-items: flex-start;
margin-bottom: 24rpx;
}
.sign-declare-text {
font-size: 25rpx;
color: #666;
margin-left: 16rpx;
line-height: 1.6;
}
.sign-area {
width: 100%;
min-height: 460rpx;
background: #f5f7fa;
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 32rpx;
position: relative;
}
.sign-placeholder {
color: #b0b8c6;
font-size: 28rpx;
}
.sign-img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 16rpx;
}
.sign-btn-bar {
display: flex;
justify-content: center;
gap: 32rpx;
margin-top: 48rpx;
}
.sign-btn {
min-width: 220rpx;
height: 70rpx;
border-radius: 35rpx;
font-size: 28rpx;
font-weight: 500;
border: none;
outline: none;
transition: background 0.2s;
}
.reset-btn {
background: #f5f7fa;
color: #888;
}
.preview-btn {
background: #217aff;
color: #fff;
}
.sign-canvas {
width: 100%;
height: 460rpx;
background: transparent;
border-radius: 16rpx;
position: absolute;
left: 0;
top: 0;
}
</style>

@ -1,118 +0,0 @@
<template>
<view class="login-page">
<view class="login-card">
<view class="login-title">登录</view>
<view class="form-group">
<input class="input" type="text" placeholder="请输入用户名" v-model="username" />
</view>
<view class="form-group">
<input class="input" type="password" placeholder="请输入密码" v-model="password" />
</view>
<button class="login-btn" @click="login"></button>
</view>
</view>
</template>
<script>
export default {
name: 'LoginPage',
data() {
return {
username: '',
password: ''
}
},
methods: {
login() {
if (!this.username) {
uni.showToast({ title: '请输入用户名', icon: 'none' });
return;
}
if (!this.password) {
uni.showToast({ title: '请输入密码', icon: 'none' });
return;
}
//
uni.showToast({
title: '登录成功',
icon: 'success',
duration: 1500,
success: () => {
//
setTimeout(() => {
uni.switchTab({
url: '/pages/index/index',
success: () => {
console.log('跳转首页成功');
},
fail: (err) => {
console.error('跳转首页失败', err);
uni.showToast({
title: '跳转失败,请重试',
icon: 'none'
});
}
});
}, 800);
}
});
}
}
}
</script>
<style>
.login-page {
min-height: 100vh;
background: linear-gradient(180deg, #cbe6ff 0%, #f6faff 100%);
display: flex;
align-items: center;
justify-content: center;
font-family: 'SourceHanSansCN', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.login-card {
background: #fff;
border-radius: 18px;
box-shadow: 0 2px 12px rgba(59,124,255,0.08);
padding: 48px 32px 32px 32px;
width: 90vw;
max-width: 400px;
display: flex;
flex-direction: column;
align-items: center;
}
.login-title {
font-size: 28px;
font-weight: bold;
color: #217aff;
margin-bottom: 32px;
letter-spacing: 2px;
}
.form-group {
width: 100%;
margin-bottom: 20px;
}
.input {
width: 100%;
height: 44px;
border: 1px solid #eaeaea;
border-radius: 8px;
padding: 0 12px;
font-size: 16px;
background: #f7faff;
color: #222;
box-sizing: border-box;
}
.login-btn {
width: 100%;
height: 44px;
background: linear-gradient(90deg, #3b7cff 0%, #5bb6ff 100%);
color: #fff;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: 500;
margin-top: 12px;
letter-spacing: 2px;
}
</style>

@ -6,8 +6,8 @@
<image src="/static/avatar.png" mode="aspectFill" />
</view>
<view class="profile-info">
<view class="profile-name">Hi, 骨小口</view>
<view class="profile-id">船舶编号ZJ123456</view>
<view class="profile-name">Hi, 微信用户</view>
<view class="profile-id">船舶编号- </view>
</view>
<view class="profile-setting">
<image class="setting-icon" src="/static/icon_setting.png" mode="aspectFit" />

@ -1,7 +1,7 @@
<template>
<view class="reservation-page">
<view class="fixed-nav">
<NavBar title="过闸预约" />
<NavBar title="过闸预约" />
</view>
<!-- 船舶信息卡片1水位等 -->
<view class="card">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":"2IAAA,MAGA,aACA,wHAFAA,EAAGC,kCAAoCC,EAGvCC,EAAWC,a","file":"pages/index/ship.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pages/index/ship.vue'\ncreatePage(Page)"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,17 +1,17 @@
{
"pages": [
"pages/login/index",
"pages/index/index",
"pages/index/ship_manager",
"pages/my/index",
"pages/order/index",
"pages/message/index",
"pages/my/index",
"pages/my/ship_detail",
"pages/reservation/index"
"pages/reservation/index",
"pages/my/ship_detail"
],
"subPackages": [],
"window": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "胥口闸站购票",
"navigationBarTitleText": "胥口枢纽",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{0:function(e,t,n){"use strict";(function(e,t){var r=n(4),u=r(n(11));n(26);var o=r(n(27)),a=r(n(25)),f=r(n(36)),c=r(n(38)),i=n(64),l=r(n(206)),d=r(n(207)),p=r(n(65));function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,u.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}e.__webpack_require_UNI_MP_PLUGIN__=n,a.default.use(c.default);var v=n(208);a.default.mixin(v),a.default.config.productionTip=!1,o.default.mpType="app";var O=new a.default(b({store:f.default},o.default));a.default.prototype.base=i.base,a.default.use(l.default,O),a.default.use(d.default,O),a.default.prototype.$moment=p.default,t(O).$mount()}).call(this,n(1)["default"],n(2)["createApp"])},27:function(e,t,n){"use strict";n.r(t);var r=n(28);for(var u in r)["default"].indexOf(u)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(u);n(33);var o,a,f,c,i=n(35),l=Object(i["default"])(r["default"],o,a,!1,null,null,null,!1,f,c);l.options.__file="App.vue",t["default"]=l.exports},28:function(e,t,n){"use strict";n.r(t);var r=n(29),u=n.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(o);t["default"]=u.a},29:function(e,t,n){"use strict";var r=n(4);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=r(n(30)),o=r(n(32)),a={onLaunch:function(){var e=(0,o.default)(u.default.mark((function e(){return u.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:case 1:case"end":return e.stop()}}),e)})));function t(){return e.apply(this,arguments)}return t}(),onShow:function(){},onHide:function(){console.log("App Hide")}};t.default=a},33:function(e,t,n){"use strict";n.r(t);var r=n(34),u=n.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(o);t["default"]=u.a},34:function(e,t,n){}},[[0,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{0:function(e,t,o){"use strict";(function(e,t){var n=o(4),r=n(o(11));o(26);var u=n(o(27)),c=n(o(25)),a=n(o(34)),f=n(o(36)),i=o(65),l=n(o(207)),s=n(o(208)),d=n(o(66));function p(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function O(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?p(Object(o),!0).forEach((function(t){(0,r.default)(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):p(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}e.__webpack_require_UNI_MP_PLUGIN__=o,c.default.use(f.default);var v=o(209);c.default.mixin(v),c.default.config.productionTip=!1,u.default.mpType="app";var b=new c.default(O({store:a.default},u.default));c.default.prototype.base=i.base,c.default.use(l.default,b),c.default.use(s.default,b),c.default.prototype.$moment=d.default,t(b).$mount()}).call(this,o(1)["default"],o(2)["createApp"])},27:function(e,t,o){"use strict";o.r(t);var n=o(28);for(var r in n)["default"].indexOf(r)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(r);o(31);var u,c,a,f,i=o(33),l=Object(i["default"])(n["default"],u,c,!1,null,null,null,!1,a,f);l.options.__file="App.vue",t["default"]=l.exports},28:function(e,t,o){"use strict";o.r(t);var n=o(29),r=o.n(n);for(var u in n)["default"].indexOf(u)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(u);t["default"]=r.a},29:function(e,t,o){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=o(30),r={onLaunch:function(){console.log("App Launch"),this.wxLogin()},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},methods:{wxLogin:function(){e.login({provider:"weixin",success:function(t){var o=t.code;console.log("微信登录成功code:",o),e.request({url:n.API.LOGIN,method:"POST",data:{code:o},success:function(t){var o=t.data;if(0===o.errcode){var r=o.data.access_token;console.log("获取 token 成功:",r),e.setStorageSync("token",r),e.request({url:n.API.GET_USER_INFO,method:"POST",data:{token:r},success:function(e){console.log("获取用户信息成功:",e.data)},fail:function(e){console.error("获取用户信息失败:",e)}})}else console.error("登录失败:",o.errmsg)},fail:function(e){console.error("获取 token 失败:",e)}})},fail:function(e){console.error("微信登录失败:",e)}})}}};t.default=r}).call(this,o(2)["default"])},31:function(e,t,o){"use strict";o.r(t);var n=o(32),r=o.n(n);for(var u in n)["default"].indexOf(u)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(u);t["default"]=r.a},32:function(e,t,o){}},[[0,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map

File diff suppressed because one or more lines are too long

@ -1,10 +1,10 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/NavBar"],{265:function(n,t,e){"use strict";e.r(t);var r=e(266),u=e(268);for(var c in u)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(c);e(270);var o,a=e(35),i=Object(a["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"0957edea",null,!1,r["components"],o);i.options.__file="components/NavBar.vue",t["default"]=i.exports},266:function(n,t,e){"use strict";e.r(t);var r=e(267);e.d(t,"render",(function(){return r["render"]})),e.d(t,"staticRenderFns",(function(){return r["staticRenderFns"]})),e.d(t,"recyclableRender",(function(){return r["recyclableRender"]})),e.d(t,"components",(function(){return r["components"]}))},267:function(n,t,e){"use strict";var r;e.r(t),e.d(t,"render",(function(){return u})),e.d(t,"staticRenderFns",(function(){return o})),e.d(t,"recyclableRender",(function(){return c})),e.d(t,"components",(function(){return r}));var u=function(){var n=this,t=n.$createElement;n._self._c},c=!1,o=[];u._withStripped=!0},268:function(n,t,e){"use strict";e.r(t);var r=e(269),u=e.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(c);t["default"]=u.a},269:function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={props:{title:{type:String,default:""}},data:function(){return{statusBarHeight:0}},mounted:function(){this.statusBarHeight=n.getSystemInfoSync().statusBarHeight||0},methods:{onBack:function(){console.log("onBack"),n.navigateBack()}}};t.default=e}).call(this,e(2)["default"])},270:function(n,t,e){"use strict";e.r(t);var r=e(271),u=e.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(c);t["default"]=u.a},271:function(n,t,e){}}]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/NavBar"],{258:function(n,t,e){"use strict";e.r(t);var r=e(259),u=e(261);for(var c in u)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(c);e(263);var o,a=e(33),i=Object(a["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"0957edea",null,!1,r["components"],o);i.options.__file="components/NavBar.vue",t["default"]=i.exports},259:function(n,t,e){"use strict";e.r(t);var r=e(260);e.d(t,"render",(function(){return r["render"]})),e.d(t,"staticRenderFns",(function(){return r["staticRenderFns"]})),e.d(t,"recyclableRender",(function(){return r["recyclableRender"]})),e.d(t,"components",(function(){return r["components"]}))},260:function(n,t,e){"use strict";var r;e.r(t),e.d(t,"render",(function(){return u})),e.d(t,"staticRenderFns",(function(){return o})),e.d(t,"recyclableRender",(function(){return c})),e.d(t,"components",(function(){return r}));var u=function(){var n=this,t=n.$createElement;n._self._c},c=!1,o=[];u._withStripped=!0},261:function(n,t,e){"use strict";e.r(t);var r=e(262),u=e.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(c);t["default"]=u.a},262:function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={props:{title:{type:String,default:""}},data:function(){return{statusBarHeight:0}},mounted:function(){this.statusBarHeight=n.getSystemInfoSync().statusBarHeight||0},methods:{onBack:function(){console.log("onBack"),n.navigateBack()}}};t.default=e}).call(this,e(2)["default"])},263:function(n,t,e){"use strict";e.r(t);var r=e(264),u=e.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(c);t["default"]=u.a},264:function(n,t,e){}}]);
//# sourceMappingURL=../../.sourcemap/mp-weixin/components/NavBar.js.map
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'components/NavBar-create-component',
{
'components/NavBar-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('2')['createComponent'](__webpack_require__(265))
__webpack_require__('2')['createComponent'](__webpack_require__(258))
})
},
[['components/NavBar-create-component']]

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/index"],{217:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(218));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},218:function(n,e,t){"use strict";t.r(e);var r=t(219),u=t(221);for(var i in u)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(i);t(223);var c,o=t(35),a=Object(o["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"57280228",null,!1,r["components"],c);a.options.__file="pages/index/index.vue",e["default"]=a.exports},219:function(n,e,t){"use strict";t.r(e);var r=t(220);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},220:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return c})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},i=!1,c=[];u._withStripped=!0},221:function(n,e,t){"use strict";t.r(e);var r=t(222),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},222:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={name:"IndexPage",methods:{goReservation:function(){n.navigateTo({url:"/pages/reservation/index"})}}};e.default=t}).call(this,t(2)["default"])},223:function(n,e,t){"use strict";t.r(e);var r=t(224),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},224:function(n,e,t){}},[[217,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/index"],{210:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(211));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},211:function(n,e,t){"use strict";t.r(e);var r=t(212),u=t(214);for(var i in u)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(i);t(216);var a,c=t(33),o=Object(c["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"57280228",null,!1,r["components"],a);o.options.__file="pages/index/index.vue",e["default"]=o.exports},212:function(n,e,t){"use strict";t.r(e);var r=t(213);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},213:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return a})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},i=!1,a=[];u._withStripped=!0},214:function(n,e,t){"use strict";t.r(e);var r=t(215),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},215:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={name:"IndexPage",methods:{goReservation:function(){n.navigateTo({url:"/pages/reservation/index"})},goShipManager:function(){n.navigateTo({url:"/pages/index/ship_manager"})}}};e.default=t}).call(this,t(2)["default"])},216:function(n,e,t){"use strict";t.r(e);var r=t(217),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},217:function(n,e,t){}},[[210,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "胥口枢纽闸站状态",
"navigationBarTitleText": "首页",
"navigationStyle": "custom",
"usingComponents": {}
}

@ -1 +1 @@
<view class="home-container data-v-57280228"><view class="header-gradient data-v-57280228"><view class="header-title data-v-57280228">胥口枢纽闸站状态</view><view class="header-info data-v-57280228"><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">今日水位:</text><text class="info-value data-v-57280228">4.2m</text></view><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">水深:</text><text class="info-value data-v-57280228">3.8m</text></view><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">限高:</text><text class="info-value data-v-57280228">7.5m</text></view></view><view class="batch-row-strict data-v-57280228"><view class="batch-col data-v-57280228"><text class="batch-num-strict data-v-57280228">2025040101</text><view class="batch-tag-strict orange data-v-57280228"><text class="tag-orange data-v-57280228">南向北</text>当前批次</view></view><view class="batch-divider-strict data-v-57280228"></view><view class="batch-col data-v-57280228"><text class="batch-num-strict data-v-57280228">2025040101</text><view class="batch-tag-strict orange data-v-57280228"><text class="tag-green data-v-57280228">南向北</text>当前批次</view></view></view></view><view class="process-card data-v-57280228"><view class="process-title-bar data-v-57280228"><text class="data-v-57280228">闸站流程</text></view><view class="process-flow data-v-57280228"><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index1.png" mode="aspectFit"></image><text class="process-label data-v-57280228">先预约</text></view><view class="arrow data-v-57280228">></view><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index2.png" mode="aspectFit"></image><text class="process-label data-v-57280228">在购票</text></view><view class="arrow data-v-57280228">></view><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index3.png" mode="aspectFit"></image><text class="process-label data-v-57280228">排队过闸</text></view></view></view><view class="card-grid data-v-57280228"><view data-event-opts="{{[['tap',[['goReservation',['$event']]]]]}}" class="func-card bg-green data-v-57280228" bindtap="__e"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">过闸预约</text><text class="func-num data-v-57280228">2</text></view><view class="func-bg-icon clock data-v-57280228"></view></view><view class="func-card bg-blue data-v-57280228"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">在线购票</text><text class="func-num data-v-57280228">30</text></view><view class="func-bg-icon ticket data-v-57280228"></view></view><view class="func-card bg-orange data-v-57280228"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">船只管理</text><text class="func-num data-v-57280228">6</text></view><view class="func-bg-icon ship data-v-57280228"></view></view><view class="func-card bg-purple data-v-57280228"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">发票管理</text><text class="func-num data-v-57280228">20</text></view><view class="func-bg-icon invoice data-v-57280228"></view></view></view><view class="info-list data-v-57280228"><view class="info-item-row data-v-57280228"><view class="info-tag realtime data-v-57280228"><text class="info-tag-text data-v-57280228">实时</text></view><text class="info-text data-v-57280228">北向南2025040102准备过闸</text></view><view class="info-item-row data-v-57280228"><view class="info-tag notice data-v-57280228"><text class="info-tag-text data-v-57280228">公告</text></view><text class="info-text data-v-57280228">北向南2025040102准备过闸</text></view></view></view>
<view class="home-container data-v-57280228"><view class="header-gradient data-v-57280228"><view class="header-title data-v-57280228">胥口枢纽闸站状态</view><view class="header-info data-v-57280228"><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">今日水位:</text><text class="info-value data-v-57280228">4.2m</text></view><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">水深:</text><text class="info-value data-v-57280228">3.8m</text></view><view class="info-item data-v-57280228"><text class="info-label data-v-57280228">限高:</text><text class="info-value data-v-57280228">7.5m</text></view></view><view class="batch-row-strict data-v-57280228"><view class="batch-col data-v-57280228"><text class="batch-num-strict data-v-57280228">2025040101</text><view class="batch-tag-strict orange data-v-57280228"><text class="tag-orange data-v-57280228">南向北</text>当前批次</view></view><view class="batch-divider-strict data-v-57280228"></view><view class="batch-col data-v-57280228"><text class="batch-num-strict data-v-57280228">2025040101</text><view class="batch-tag-strict orange data-v-57280228"><text class="tag-green data-v-57280228">南向北</text>当前批次</view></view></view></view><view class="process-card data-v-57280228"><view class="process-title-bar data-v-57280228"><text class="data-v-57280228">闸站流程</text></view><view class="process-flow data-v-57280228"><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index1.png" mode="aspectFit"></image><text class="process-label data-v-57280228">先预约</text></view><view class="arrow data-v-57280228">></view><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index2.png" mode="aspectFit"></image><text class="process-label data-v-57280228">在购票</text></view><view class="arrow data-v-57280228">></view><view class="process-step data-v-57280228"><image class="icon data-v-57280228" src="/static/icon_step_index3.png" mode="aspectFit"></image><text class="process-label data-v-57280228">排队过闸</text></view></view></view><view class="card-grid data-v-57280228"><view data-event-opts="{{[['tap',[['goReservation',['$event']]]]]}}" class="func-card bg-green data-v-57280228" bindtap="__e"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">过闸预约</text><text class="func-num data-v-57280228">2</text></view><view class="func-bg-icon clock data-v-57280228"></view></view><view class="func-card bg-blue data-v-57280228"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">在线购票</text><text class="func-num data-v-57280228">30</text></view><view class="func-bg-icon ticket data-v-57280228"></view></view><view data-event-opts="{{[['tap',[['goShipManager',['$event']]]]]}}" class="func-card bg-orange data-v-57280228" bindtap="__e"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">船只管理</text><text class="func-num data-v-57280228">6</text></view><view class="func-bg-icon ship data-v-57280228"></view></view><view class="func-card bg-purple data-v-57280228"><view class="func-card-content data-v-57280228"><text class="func-title data-v-57280228">发票管理</text><text class="func-num data-v-57280228">20</text></view><view class="func-bg-icon invoice data-v-57280228"></view></view></view><view class="info-list data-v-57280228"><view class="info-item-row data-v-57280228"><view class="info-tag realtime data-v-57280228"><text class="info-tag-text data-v-57280228">实时</text></view><text class="info-text data-v-57280228">北向南2025040102准备过闸</text></view><view class="info-item-row data-v-57280228"><view class="info-tag notice data-v-57280228"><text class="info-tag-text data-v-57280228">公告</text></view><text class="info-text data-v-57280228">北向南2025040102准备过闸</text></view></view></view>

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "船只管理",
"usingComponents": {}
}

@ -0,0 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/ship_manager"],{273:function(t,n,e){"use strict";(function(t,n){var i=e(4);e(26);i(e(25));var a=i(e(274));t.__webpack_require_UNI_MP_PLUGIN__=e,n(a.default)}).call(this,e(1)["default"],e(2)["createPage"])},274:function(t,n,e){"use strict";e.r(n);var i=e(275),a=e(277);for(var s in a)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(s);e(279);var r,c=e(33),o=Object(c["default"])(a["default"],i["render"],i["staticRenderFns"],!1,null,"20b14f80",null,!1,i["components"],r);o.options.__file="pages/index/ship_manager.vue",n["default"]=o.exports},275:function(t,n,e){"use strict";e.r(n);var i=e(276);e.d(n,"render",(function(){return i["render"]})),e.d(n,"staticRenderFns",(function(){return i["staticRenderFns"]})),e.d(n,"recyclableRender",(function(){return i["recyclableRender"]})),e.d(n,"components",(function(){return i["components"]}))},276:function(t,n,e){"use strict";var i;e.r(n),e.d(n,"render",(function(){return a})),e.d(n,"staticRenderFns",(function(){return r})),e.d(n,"recyclableRender",(function(){return s})),e.d(n,"components",(function(){return i}));var a=function(){var t=this,n=t.$createElement,e=(t._self._c,t.steps.length);t.$mp.data=Object.assign({},{$root:{g0:e}})},s=!1,r=[];a._withStripped=!0},277:function(t,n,e){"use strict";e.r(n);var i=e(278),a=e.n(i);for(var s in i)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(s);n["default"]=a.a},278:function(t,n,e){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=function(){e.e("components/NavBar").then(function(){return resolve(e(258))}.bind(null,e)).catch(e.oe)},a={name:"ShipManagerPage",components:{NavBar:i},data:function(){return{steps:["基本信息","船舶参数","船检簿上传","签名确认"],currentStep:1,page1Img:"",page2Img:"",signChecked:!1,signImg:"",isSigning:!1,lastPoint:null,canvasWidth:0,canvasHeight:0,hasDrawn:!1,hasSigned:!1}},methods:{nextStep:function(){this.currentStep<4&&this.currentStep++},prevStep:function(){this.currentStep>1&&this.currentStep--},submit:function(){t.showToast({title:"提交成功",icon:"success"})},chooseImage:function(n){var e=this;t.chooseImage({count:1,success:function(t){"page1"===n&&(e.page1Img=t.tempFilePaths[0]),"page2"===n&&(e.page2Img=t.tempFilePaths[0])}})},deleteImage:function(t){"page1"===t&&(this.page1Img=""),"page2"===t&&(this.page2Img="")},viewExample:function(){t.showToast({title:"查看示例",icon:"none"})},startSign:function(n){this.isSigning=!0,this.hasSigned=!0;var e=t.createCanvasContext("signCanvas",this),i=n.touches[0],a=i.x,s=i.y;this.hasDrawn||(e.setFillStyle("#fff"),e.fillRect(0,0,this.canvasWidth,this.canvasHeight),this.hasDrawn=!0),e.moveTo(a,s),e.setStrokeStyle("#222"),e.setLineWidth(4),e.beginPath(),this.lastPoint={x:a,y:s},e.draw(!0)},moveSign:function(n){if(this.isSigning){var e=t.createCanvasContext("signCanvas",this),i=n.touches[0],a=i.x,s=i.y;e.moveTo(this.lastPoint.x,this.lastPoint.y),e.lineTo(a,s),e.setStrokeStyle("#222"),e.setLineWidth(4),e.stroke(),e.draw(!0),this.lastPoint={x:a,y:s}}},endSign:function(){this.isSigning=!1},resetSign:function(){this.signImg="",this.hasDrawn=!1,this.hasSigned=!1;var n=t.createCanvasContext("signCanvas",this);n.setFillStyle("#fff"),n.fillRect(0,0,this.canvasWidth,this.canvasHeight),n.draw()},previewSign:function(){var n=this;t.createSelectorQuery().select("#signCanvas").boundingClientRect((function(e){t.canvasToTempFilePath({canvasId:"signCanvas",width:e.width,height:e.height,success:function(n){t.previewImage({urls:[n.tempFilePath]})},fail:function(n){t.showToast({title:"签名生成失败",icon:"none"})}},n)})).exec()}}};n.default=a}).call(this,e(2)["default"])},279:function(t,n,e){"use strict";e.r(n);var i=e(280),a=e.n(i);for(var s in i)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(s);n["default"]=a.a},280:function(t,n,e){}},[[273,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/ship_manager.js.map

@ -0,0 +1,7 @@
{
"navigationBarTitleText": "船只管理",
"navigationStyle": "custom",
"usingComponents": {
"nav-bar": "/components/NavBar"
}
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,347 @@
.reservation-page.data-v-20b14f80 {
background: linear-gradient(180deg, #eaf3ff 0%, #f6faff 100%);
min-height: 100vh;
padding-bottom: 40rpx;
}
.fixed-nav.data-v-20b14f80 {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: linear-gradient(180deg, #cbe6ff 0%, #f6faff 100%);
box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.content-area.data-v-20b14f80 {
padding-top: 90px;
}
.step-bar.data-v-20b14f80 {
display: flex;
align-items: flex-start;
justify-content: space-between;
width: 100%;
margin: 64rpx auto 0 auto;
padding: 0 32rpx;
position: relative;
}
.step-group.data-v-20b14f80 {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
position: relative;
}
.step-circle.data-v-20b14f80 {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
background: #e3eaf7;
color: #b0b8c6;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: bold;
transition: background 0.2s, color 0.2s;
z-index: 1;
}
.step-circle.active.data-v-20b14f80 {
background: #fff;
color: #217aff;
border: 4rpx solid #217aff;
}
.step-label.data-v-20b14f80 {
margin-top: 18rpx;
font-size: 24rpx;
color: #222;
font-weight: normal;
text-align: center;
min-width: 60rpx;
white-space: nowrap;
}
.step-label.active.data-v-20b14f80 {
color: #217aff;
font-weight: bold;
}
.step-line.data-v-20b14f80 {
position: absolute;
top: 30rpx;
left: 50%;
width: 100%;
height: 4rpx;
background: #e3eaf7;
z-index: 0;
}
.info-card.data-v-20b14f80 {
background: #fff;
border-radius: 24rpx;
margin: 0 32rpx;
padding: 32rpx 24rpx;
box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.06);
margin-top: 60rpx;
}
.info-title.data-v-20b14f80 {
font-size: 28rpx;
font-weight: bold;
margin-bottom: 24rpx;
color: #222;
}
.info-form.data-v-20b14f80 {
display: flex;
flex-direction: column;
gap: 18rpx;
}
.form-row.data-v-20b14f80 {
display: flex;
align-items: center;
border-bottom: 1px solid #f0f0f0;
padding: 16rpx 0;
}
.form-label.data-v-20b14f80 {
width: 180rpx;
font-size: 25rpx;
color: #222;
}
.form-label.required.data-v-20b14f80::before {
content: '*';
color: #ff5c5c;
margin-right: 6rpx;
}
.form-input.data-v-20b14f80 {
flex: 1;
font-size: 25rpx;
color: #333;
border: none;
outline: none;
background: transparent;
}
.form-static.data-v-20b14f80 {
flex: 1;
font-size: 25rpx;
color: #222;
text-align: left;
}
.step-btn-bar.data-v-20b14f80 {
display: flex;
justify-content: center;
gap: 32rpx;
margin: 64rpx 0 0 0;
margin-top: 100rpx;
}
.step-btn.data-v-20b14f80 {
min-width: 270rpx;
height: 80rpx;
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 500;
border: none;
outline: none;
background: #217aff;
color: #fff;
box-shadow: 0 4rpx 16rpx rgba(33,122,255,0.08);
transition: background 0.2s;
}
.step-btn.single-btn.data-v-20b14f80 {
min-width: 420rpx;
}
.prev-btn.data-v-20b14f80 {
background: #e3eaf7;
color: black;
}
.next-btn.data-v-20b14f80 {
background: #217aff;
color: #fff;
}
.info-desc.data-v-20b14f80 {
font-size: 20rpx;
color: #888;
margin-left: 12rpx;
font-weight: normal;
}
.form-unit.data-v-20b14f80 {
font-size: 22rpx;
color: #888;
margin-left: 8rpx;
}
.form-tip.data-v-20b14f80 {
font-size: 20rpx;
color: #b0b8c6;
margin-bottom: 8rpx;
margin-left: 180rpx;
}
.form-radio-group.data-v-20b14f80 {
display: flex;
gap: 32rpx;
margin-left: 24rpx;
}
.form-radio.data-v-20b14f80 {
font-size: 25rpx;
color: #222;
display: flex;
align-items: center;
}
.info-title-row.data-v-20b14f80 {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24rpx;
}
.example-btn.data-v-20b14f80 {
background: #edf0f5;
color: #222;
border-radius: 40rpx;
font-size: 30rpx;
font-weight: 500;
padding: 18rpx 78rpx;
border: none;
height: 64rpx;
line-height: 1;
box-shadow: none;
margin-right: 20rpx;
}
.upload-section.data-v-20b14f80 {
margin-bottom: 32rpx;
}
.upload-row.data-v-20b14f80 {
display: flex;
align-items: center;
gap: 24rpx;
margin-top: 12rpx;
}
.upload-img-box.data-v-20b14f80 {
position: relative;
width: 140rpx;
height: 140rpx;
background: #f0f0f0;
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.upload-img.data-v-20b14f80 {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 12rpx;
}
.upload-add.data-v-20b14f80 {
width: 140rpx;
height: 140rpx;
color: #fff;
font-size: 32rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #a6a8ab;
border-radius: 12rpx;
cursor: pointer;
font-weight: 500;
letter-spacing: 1rpx;
margin-bottom: 20rpx;
}
.upload-add text.data-v-20b14f80:first-child {
font-size: 48rpx;
}
.upload-add text.data-v-20b14f80:last-child {
font-size: 22rpx;
}
.upload-del.data-v-20b14f80 {
position: absolute;
top: 0;
right: 0;
width: 36rpx;
height: 36rpx;
background: rgba(0,0,0,0.5);
color: #fff;
font-size: 28rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0 12rpx 0 12rpx;
cursor: pointer;
}
.upload-desc.data-v-20b14f80 {
flex: 1;
background: #f5f7fa;
color: #b0b8c6;
font-size: 24rpx;
border-radius: 12rpx;
padding: 0 24rpx;
min-height: 140rpx;
display: flex;
align-items: center;
}
.divider.data-v-20b14f80 {
height: 2rpx;
background: #f0f0f0;
margin: 32rpx 0;
}
.sign-declare-row.data-v-20b14f80 {
display: flex;
align-items: flex-start;
margin-bottom: 24rpx;
}
.sign-declare-text.data-v-20b14f80 {
font-size: 25rpx;
color: #666;
margin-left: 16rpx;
line-height: 1.6;
}
.sign-area.data-v-20b14f80 {
width: 100%;
min-height: 460rpx;
background: #f5f7fa;
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 32rpx;
position: relative;
}
.sign-placeholder.data-v-20b14f80 {
color: #b0b8c6;
font-size: 28rpx;
}
.sign-img.data-v-20b14f80 {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 16rpx;
}
.sign-btn-bar.data-v-20b14f80 {
display: flex;
justify-content: center;
gap: 32rpx;
margin-top: 48rpx;
}
.sign-btn.data-v-20b14f80 {
min-width: 220rpx;
height: 70rpx;
border-radius: 35rpx;
font-size: 28rpx;
font-weight: 500;
border: none;
outline: none;
transition: background 0.2s;
}
.reset-btn.data-v-20b14f80 {
background: #f5f7fa;
color: #888;
}
.preview-btn.data-v-20b14f80 {
background: #217aff;
color: #fff;
}
.sign-canvas.data-v-20b14f80 {
width: 100%;
height: 460rpx;
background: transparent;
border-radius: 16rpx;
position: absolute;
left: 0;
top: 0;
}

@ -1,2 +0,0 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/login/index"],{209:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var o=r(t(210));n.__webpack_require_UNI_MP_PLUGIN__=t,e(o.default)}).call(this,t(1)["default"],t(2)["createPage"])},210:function(n,e,t){"use strict";t.r(e);var r=t(211),o=t(213);for(var i in o)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return o[n]}))}(i);t(215);var u,c=t(35),s=Object(c["default"])(o["default"],r["render"],r["staticRenderFns"],!1,null,null,null,!1,r["components"],u);s.options.__file="pages/login/index.vue",e["default"]=s.exports},211:function(n,e,t){"use strict";t.r(e);var r=t(212);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},212:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return o})),t.d(e,"staticRenderFns",(function(){return u})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var o=function(){var n=this,e=n.$createElement;n._self._c},i=!1,u=[];o._withStripped=!0},213:function(n,e,t){"use strict";t.r(e);var r=t(214),o=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=o.a},214:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={name:"LoginPage",data:function(){return{username:"",password:""}},methods:{login:function(){this.username?this.password?n.showToast({title:"登录成功",icon:"success",duration:1500,success:function(){setTimeout((function(){n.switchTab({url:"/pages/index/index",success:function(){console.log("跳转首页成功")},fail:function(e){console.error("跳转首页失败",e),n.showToast({title:"跳转失败,请重试",icon:"none"})}})}),800)}}):n.showToast({title:"请输入密码",icon:"none"}):n.showToast({title:"请输入用户名",icon:"none"})}}};e.default=t}).call(this,t(2)["default"])},215:function(n,e,t){"use strict";t.r(e);var r=t(216),o=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=o.a},216:function(n,e,t){}},[[209,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/index.js.map

@ -1,5 +0,0 @@
{
"navigationBarTitleText": "登录",
"navigationStyle": "custom",
"usingComponents": {}
}

@ -1 +0,0 @@
<view class="login-page"><view class="login-card"><view class="login-title">登录</view><view class="form-group"><input class="input" type="text" placeholder="请输入用户名" data-event-opts="{{[['input',[['__set_model',['','username','$event',[]]]]]]}}" value="{{username}}" bindinput="__e"/></view><view class="form-group"><input class="input" type="password" placeholder="请输入密码" data-event-opts="{{[['input',[['__set_model',['','password','$event',[]]]]]]}}" value="{{password}}" bindinput="__e"/></view><button data-event-opts="{{[['tap',[['login',['$event']]]]]}}" class="login-btn" bindtap="__e">登录</button></view></view>

@ -1,55 +0,0 @@
.login-page {
min-height: 100vh;
background: linear-gradient(180deg, #cbe6ff 0%, #f6faff 100%);
display: flex;
align-items: center;
justify-content: center;
font-family: 'SourceHanSansCN', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.login-card {
background: #fff;
border-radius: 18px;
box-shadow: 0 2px 12px rgba(59,124,255,0.08);
padding: 48px 32px 32px 32px;
width: 90vw;
max-width: 400px;
display: flex;
flex-direction: column;
align-items: center;
}
.login-title {
font-size: 28px;
font-weight: bold;
color: #217aff;
margin-bottom: 32px;
letter-spacing: 2px;
}
.form-group {
width: 100%;
margin-bottom: 20px;
}
.input {
width: 100%;
height: 44px;
border: 1px solid #eaeaea;
border-radius: 8px;
padding: 0 12px;
font-size: 16px;
background: #f7faff;
color: #222;
box-sizing: border-box;
}
.login-btn {
width: 100%;
height: 44px;
background: linear-gradient(90deg, #3b7cff 0%, #5bb6ff 100%);
color: #fff;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: 500;
margin-top: 12px;
letter-spacing: 2px;
}

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/message/index"],{233:function(e,n,t){"use strict";(function(e,n){var r=t(4);t(26);r(t(25));var u=r(t(234));e.__webpack_require_UNI_MP_PLUGIN__=t,n(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},234:function(e,n,t){"use strict";t.r(n);var r=t(235),u=t(237);for(var c in u)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return u[e]}))}(c);t(239);var i,a=t(35),o=Object(a["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"191297be",null,!1,r["components"],i);o.options.__file="pages/message/index.vue",n["default"]=o.exports},235:function(e,n,t){"use strict";t.r(n);var r=t(236);t.d(n,"render",(function(){return r["render"]})),t.d(n,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(n,"components",(function(){return r["components"]}))},236:function(e,n,t){"use strict";var r;t.r(n),t.d(n,"render",(function(){return u})),t.d(n,"staticRenderFns",(function(){return i})),t.d(n,"recyclableRender",(function(){return c})),t.d(n,"components",(function(){return r}));var u=function(){var e=this,n=e.$createElement;e._self._c},c=!1,i=[];u._withStripped=!0},237:function(e,n,t){"use strict";t.r(n);var r=t(238),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(c);n["default"]=u.a},238:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={name:"MessagePage"};n.default=r},239:function(e,n,t){"use strict";t.r(n);var r=t(240),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(c);n["default"]=u.a},240:function(e,n,t){}},[[233,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/message/index"],{234:function(e,n,t){"use strict";(function(e,n){var r=t(4);t(26);r(t(25));var u=r(t(235));e.__webpack_require_UNI_MP_PLUGIN__=t,n(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},235:function(e,n,t){"use strict";t.r(n);var r=t(236),u=t(238);for(var c in u)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return u[e]}))}(c);t(240);var i,a=t(33),o=Object(a["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"191297be",null,!1,r["components"],i);o.options.__file="pages/message/index.vue",n["default"]=o.exports},236:function(e,n,t){"use strict";t.r(n);var r=t(237);t.d(n,"render",(function(){return r["render"]})),t.d(n,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(n,"components",(function(){return r["components"]}))},237:function(e,n,t){"use strict";var r;t.r(n),t.d(n,"render",(function(){return u})),t.d(n,"staticRenderFns",(function(){return i})),t.d(n,"recyclableRender",(function(){return c})),t.d(n,"components",(function(){return r}));var u=function(){var e=this,n=e.$createElement;e._self._c},c=!1,i=[];u._withStripped=!0},238:function(e,n,t){"use strict";t.r(n);var r=t(239),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(c);n["default"]=u.a},239:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={name:"MessagePage"};n.default=r},240:function(e,n,t){"use strict";t.r(n);var r=t(241),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(c);n["default"]=u.a},241:function(e,n,t){}},[[234,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/message/index.js.map

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/my/index"],{241:function(n,t,e){"use strict";(function(n,t){var i=e(4);e(26);i(e(25));var c=i(e(242));n.__webpack_require_UNI_MP_PLUGIN__=e,t(c.default)}).call(this,e(1)["default"],e(2)["createPage"])},242:function(n,t,e){"use strict";e.r(t);var i=e(243),c=e(245);for(var r in c)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return c[n]}))}(r);e(247);var o,u=e(35),a=Object(u["default"])(c["default"],i["render"],i["staticRenderFns"],!1,null,null,null,!1,i["components"],o);a.options.__file="pages/my/index.vue",t["default"]=a.exports},243:function(n,t,e){"use strict";e.r(t);var i=e(244);e.d(t,"render",(function(){return i["render"]})),e.d(t,"staticRenderFns",(function(){return i["staticRenderFns"]})),e.d(t,"recyclableRender",(function(){return i["recyclableRender"]})),e.d(t,"components",(function(){return i["components"]}))},244:function(n,t,e){"use strict";var i;e.r(t),e.d(t,"render",(function(){return c})),e.d(t,"staticRenderFns",(function(){return o})),e.d(t,"recyclableRender",(function(){return r})),e.d(t,"components",(function(){return i}));var c=function(){var n=this,t=n.$createElement;n._self._c},r=!1,o=[];c._withStripped=!0},245:function(n,t,e){"use strict";e.r(t);var i=e(246),c=e.n(i);for(var r in i)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(r);t["default"]=c.a},246:function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={data:function(){return{mainList:[{text:"我的预约",icon:"/static/icon_my1.png"},{text:"我的购票",icon:"/static/icon_my2.png"},{text:"我的发票",icon:"/static/icon_my3.png"},{text:"船舶信息",icon:"/static/icon_my4.png"}],helpList:[{text:"联系客服",icon:"/static/icon_my5.png"},{text:"帮助中心",icon:"/static/icon_my6.png"},{text:"关于我们",icon:"/static/icon_my7.png"}]}},methods:{onItemClick:function(t){"船舶信息"===t.text?n.navigateTo({url:"/pages/my/ship_detail"}):n.showToast({title:t.text,icon:"none"})}}};t.default=e}).call(this,e(2)["default"])},247:function(n,t,e){"use strict";e.r(t);var i=e(248),c=e.n(i);for(var r in i)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(r);t["default"]=c.a},248:function(n,t,e){}},[[241,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/my/index"],{218:function(n,t,e){"use strict";(function(n,t){var i=e(4);e(26);i(e(25));var c=i(e(219));n.__webpack_require_UNI_MP_PLUGIN__=e,t(c.default)}).call(this,e(1)["default"],e(2)["createPage"])},219:function(n,t,e){"use strict";e.r(t);var i=e(220),c=e(222);for(var r in c)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return c[n]}))}(r);e(224);var o,u=e(33),a=Object(u["default"])(c["default"],i["render"],i["staticRenderFns"],!1,null,null,null,!1,i["components"],o);a.options.__file="pages/my/index.vue",t["default"]=a.exports},220:function(n,t,e){"use strict";e.r(t);var i=e(221);e.d(t,"render",(function(){return i["render"]})),e.d(t,"staticRenderFns",(function(){return i["staticRenderFns"]})),e.d(t,"recyclableRender",(function(){return i["recyclableRender"]})),e.d(t,"components",(function(){return i["components"]}))},221:function(n,t,e){"use strict";var i;e.r(t),e.d(t,"render",(function(){return c})),e.d(t,"staticRenderFns",(function(){return o})),e.d(t,"recyclableRender",(function(){return r})),e.d(t,"components",(function(){return i}));var c=function(){var n=this,t=n.$createElement;n._self._c},r=!1,o=[];c._withStripped=!0},222:function(n,t,e){"use strict";e.r(t);var i=e(223),c=e.n(i);for(var r in i)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(r);t["default"]=c.a},223:function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={data:function(){return{mainList:[{text:"我的预约",icon:"/static/icon_my1.png"},{text:"我的购票",icon:"/static/icon_my2.png"},{text:"我的发票",icon:"/static/icon_my3.png"},{text:"船舶信息",icon:"/static/icon_my4.png"}],helpList:[{text:"联系客服",icon:"/static/icon_my5.png"},{text:"帮助中心",icon:"/static/icon_my6.png"},{text:"关于我们",icon:"/static/icon_my7.png"}]}},methods:{onItemClick:function(t){"船舶信息"===t.text?n.navigateTo({url:"/pages/my/ship_detail"}):n.showToast({title:t.text,icon:"none"})}}};t.default=e}).call(this,e(2)["default"])},224:function(n,t,e){"use strict";e.r(t);var i=e(225),c=e.n(i);for(var r in i)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(r);t["default"]=c.a},225:function(n,t,e){}},[[218,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/my/index.js.map

@ -1 +1 @@
<view class="profile-container"><view class="profile-header"><view class="profile-avatar"><image src="/static/avatar.png" mode="aspectFill"></image></view><view class="profile-info"><view class="profile-name">Hi, 骨小口</view><view class="profile-id">船舶编号ZJ123456</view></view><view class="profile-setting"><image class="setting-icon" src="/static/icon_setting.png" mode="aspectFit"></image></view></view><view class="profile-card first-card"><block wx:for="{{mainList}}" wx:for-item="item" wx:for-index="__i0__" wx:key="text"><view data-event-opts="{{[['tap',[['onItemClick',['$0'],[[['mainList','text',item.text]]]]]]]}}" class="profile-item" bindtap="__e"><image class="profile-list-icon" src="{{item.icon}}" mode="aspectFit"></image><text class="item-text">{{item.text}}</text><image class="profile-arrow-icon" src="/static/right_arrow.png" mode="aspectFit"></image></view></block></view><view class="profile-card"><block wx:for="{{helpList}}" wx:for-item="item" wx:for-index="__i1__" wx:key="text"><view data-event-opts="{{[['tap',[['onItemClick',['$0'],[[['helpList','text',item.text]]]]]]]}}" class="profile-item" bindtap="__e"><image class="profile-list-icon" src="{{item.icon}}" mode="aspectFit"></image><text class="item-text">{{item.text}}</text><image class="profile-arrow-icon" src="/static/right_arrow.png" mode="aspectFit"></image></view></block></view></view>
<view class="profile-container"><view class="profile-header"><view class="profile-avatar"><image src="/static/avatar.png" mode="aspectFill"></image></view><view class="profile-info"><view class="profile-name">Hi, 微信用户</view><view class="profile-id">船舶编号:-</view></view><view class="profile-setting"><image class="setting-icon" src="/static/icon_setting.png" mode="aspectFit"></image></view></view><view class="profile-card first-card"><block wx:for="{{mainList}}" wx:for-item="item" wx:for-index="__i0__" wx:key="text"><view data-event-opts="{{[['tap',[['onItemClick',['$0'],[[['mainList','text',item.text]]]]]]]}}" class="profile-item" bindtap="__e"><image class="profile-list-icon" src="{{item.icon}}" mode="aspectFit"></image><text class="item-text">{{item.text}}</text><image class="profile-arrow-icon" src="/static/right_arrow.png" mode="aspectFit"></image></view></block></view><view class="profile-card"><block wx:for="{{helpList}}" wx:for-item="item" wx:for-index="__i1__" wx:key="text"><view data-event-opts="{{[['tap',[['onItemClick',['$0'],[[['helpList','text',item.text]]]]]]]}}" class="profile-item" bindtap="__e"><image class="profile-list-icon" src="{{item.icon}}" mode="aspectFit"></image><text class="item-text">{{item.text}}</text><image class="profile-arrow-icon" src="/static/right_arrow.png" mode="aspectFit"></image></view></block></view></view>

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/my/ship_detail"],{249:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var c=r(t(250));n.__webpack_require_UNI_MP_PLUGIN__=t,e(c.default)}).call(this,t(1)["default"],t(2)["createPage"])},250:function(n,e,t){"use strict";t.r(e);var r=t(251),c=t(253);for(var u in c)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return c[n]}))}(u);t(255);var o,i=t(35),a=Object(i["default"])(c["default"],r["render"],r["staticRenderFns"],!1,null,"80590fec",null,!1,r["components"],o);a.options.__file="pages/my/ship_detail.vue",e["default"]=a.exports},251:function(n,e,t){"use strict";t.r(e);var r=t(252);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},252:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return c})),t.d(e,"staticRenderFns",(function(){return o})),t.d(e,"recyclableRender",(function(){return u})),t.d(e,"components",(function(){return r}));var c=function(){var n=this,e=n.$createElement;n._self._c},u=!1,o=[];c._withStripped=!0},253:function(n,e,t){"use strict";t.r(e);var r=t(254),c=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(u);e["default"]=c.a},254:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=function(){t.e("components/NavBar").then(function(){return resolve(t(265))}.bind(null,t)).catch(t.oe)},c={components:{NavBar:r},methods:{goBack:function(){n.navigateBack()},onAdd:function(){n.showToast({title:"点击了添加",icon:"none"})}}};e.default=c}).call(this,t(2)["default"])},255:function(n,e,t){"use strict";t.r(e);var r=t(256),c=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(u);e["default"]=c.a},256:function(n,e,t){}},[[249,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/my/ship_detail"],{250:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var c=r(t(251));n.__webpack_require_UNI_MP_PLUGIN__=t,e(c.default)}).call(this,t(1)["default"],t(2)["createPage"])},251:function(n,e,t){"use strict";t.r(e);var r=t(252),c=t(254);for(var u in c)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return c[n]}))}(u);t(256);var o,i=t(33),a=Object(i["default"])(c["default"],r["render"],r["staticRenderFns"],!1,null,"80590fec",null,!1,r["components"],o);a.options.__file="pages/my/ship_detail.vue",e["default"]=a.exports},252:function(n,e,t){"use strict";t.r(e);var r=t(253);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},253:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return c})),t.d(e,"staticRenderFns",(function(){return o})),t.d(e,"recyclableRender",(function(){return u})),t.d(e,"components",(function(){return r}));var c=function(){var n=this,e=n.$createElement;n._self._c},u=!1,o=[];c._withStripped=!0},254:function(n,e,t){"use strict";t.r(e);var r=t(255),c=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(u);e["default"]=c.a},255:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=function(){t.e("components/NavBar").then(function(){return resolve(t(258))}.bind(null,t)).catch(t.oe)},c={components:{NavBar:r},methods:{goBack:function(){n.navigateBack()},onAdd:function(){n.showToast({title:"点击了添加",icon:"none"})}}};e.default=c}).call(this,t(2)["default"])},256:function(n,e,t){"use strict";t.r(e);var r=t(257),c=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(u);e["default"]=c.a},257:function(n,e,t){}},[[250,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/my/ship_detail.js.map

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "船详情",
"navigationBarTitleText": "船详情",
"navigationStyle": "custom",
"usingComponents": {
"nav-bar": "/components/NavBar"

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/order/index"],{225:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(226));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},226:function(n,e,t){"use strict";t.r(e);var r=t(227),u=t(229);for(var c in u)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(c);t(231);var i,o=t(35),a=Object(o["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"0ca91b30",null,!1,r["components"],i);a.options.__file="pages/order/index.vue",e["default"]=a.exports},227:function(n,e,t){"use strict";t.r(e);var r=t(228);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},228:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return i})),t.d(e,"recyclableRender",(function(){return c})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},c=!1,i=[];u._withStripped=!0},229:function(n,e,t){"use strict";t.r(e);var r=t(230),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},230:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={name:"OrderPage"};e.default=r},231:function(n,e,t){"use strict";t.r(e);var r=t(232),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},232:function(n,e,t){}},[[225,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/order/index"],{226:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(227));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},227:function(n,e,t){"use strict";t.r(e);var r=t(228),u=t(230);for(var c in u)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(c);t(232);var i,o=t(33),a=Object(o["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"0ca91b30",null,!1,r["components"],i);a.options.__file="pages/order/index.vue",e["default"]=a.exports},228:function(n,e,t){"use strict";t.r(e);var r=t(229);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},229:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return i})),t.d(e,"recyclableRender",(function(){return c})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},c=!1,i=[];u._withStripped=!0},230:function(n,e,t){"use strict";t.r(e);var r=t(231),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},231:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={name:"OrderPage"};e.default=r},232:function(n,e,t){"use strict";t.r(e);var r=t(233),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},233:function(n,e,t){}},[[226,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/order/index.js.map

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "订单",
"navigationBarTitleText": "我的购票",
"navigationStyle": "custom",
"usingComponents": {}
}

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/reservation/index"],{257:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(258));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},258:function(n,e,t){"use strict";t.r(e);var r=t(259),u=t(261);for(var i in u)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(i);t(263);var o,c=t(35),a=Object(c["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"f5e463b4",null,!1,r["components"],o);a.options.__file="pages/reservation/index.vue",e["default"]=a.exports},259:function(n,e,t){"use strict";t.r(e);var r=t(260);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},260:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return o})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},i=!1,o=[];u._withStripped=!0},261:function(n,e,t){"use strict";t.r(e);var r=t(262),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},262:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=function(){t.e("components/NavBar").then(function(){return resolve(t(265))}.bind(null,t)).catch(t.oe)},u={name:"ReservationPage",components:{NavBar:r},data:function(){return{direction:"north"}},methods:{setDirection:function(n){this.direction=n}}};e.default=u},263:function(n,e,t){"use strict";t.r(e);var r=t(264),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},264:function(n,e,t){}},[[257,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/reservation/index"],{242:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(243));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},243:function(n,e,t){"use strict";t.r(e);var r=t(244),u=t(246);for(var i in u)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(i);t(248);var o,c=t(33),a=Object(c["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"f5e463b4",null,!1,r["components"],o);a.options.__file="pages/reservation/index.vue",e["default"]=a.exports},244:function(n,e,t){"use strict";t.r(e);var r=t(245);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},245:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return o})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},i=!1,o=[];u._withStripped=!0},246:function(n,e,t){"use strict";t.r(e);var r=t(247),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},247:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=function(){t.e("components/NavBar").then(function(){return resolve(t(258))}.bind(null,t)).catch(t.oe)},u={name:"ReservationPage",components:{NavBar:r},data:function(){return{direction:"north"}},methods:{setDirection:function(n){this.direction=n}}};e.default=u},248:function(n,e,t){"use strict";t.r(e);var r=t(249),u=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=u.a},249:function(n,e,t){}},[[242,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/reservation/index.js.map
Loading…
Cancel
Save