样式修改,逻辑修改 8.23

dev2
Panzihang 2023-08-23 17:42:44 +08:00
parent 49baa9bc22
commit 9e12cc0161
39 changed files with 2560 additions and 828 deletions

View File

@ -56,7 +56,7 @@ module.exports = {
// 创建工班信息 workMessageRespList
createWorkMessageRespList() {
let sql =
'CREATE TABLE if not exists workMessageRespList ("webId" text NOT NULL,"contactId" text,"vvyId" text,"vvyName" text,"loadType" text,"loadTypeName" text,"pwcType" text,"pwcTypeName" text,"workStartTime" text,"workEndTime" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
'CREATE TABLE if not exists workMessageRespList ("webId" text NOT NULL,"contactId" text,"aId" text,"vvyId" text,"vvyName" text,"loadType" text,"loadTypeName" text,"pwcType" text,"pwcTypeName" text,"workStartTime" text,"workEndTime" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
this.executeSql(sql)
},
// 创建工班信息详细 workMessageRespInfoList
@ -68,13 +68,13 @@ module.exports = {
// 创建工班信息翻仓 retallyMessageRespList
createRetallyMessageRespList() {
let sql =
'CREATE TABLE if not exists retallyMessageRespList ("webId" text NOT NULL,"contactId" text,"vvyId" text,"vvyName" text,"retallyType" text,"retallyTypeName" text,"retallyOrigin" text,"retallyTerminus" text,"retallyStartTime" text,"retallyEndTime" text,"carType" text,"carTypeName" text,"goodsNumber" text,"goodsVolume" text,"goodsWeight" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"editStatus" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
'CREATE TABLE if not exists retallyMessageRespList ("webId" text NOT NULL,"contactId" text,"aId" text,"vvyId" text,"vvyName" text,"retallyType" text,"retallyTypeName" text,"retallyOrigin" text,"retallyTerminus" text,"retallyStartTime" text,"retallyEndTime" text,"carType" text,"carTypeName" text,"goodsNumber" text,"goodsVolume" text,"goodsWeight" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"editStatus" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
this.executeSql(sql)
},
// 创建工班信息其他 infoRespList
createInfoRespList() {
let sql =
'CREATE TABLE if not exists infoRespList ("webId" text NOT NULL,"contactId" text,"vvyId" text,"vvyName" text,"tecNum" text,"tecStartTm" text,"tecEndTm" text,"tecWeight" text,"tecVolume" text,"genNum" text,"genStartTm" text,"genEndTm" text,"genWeight" text,"genVolume" text,"auxRemark" text,"waitRemark" text,"workRemark" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
'CREATE TABLE if not exists infoRespList ("webId" text NOT NULL,"contactId" text,"aId" text,"vvyId" text,"vvyName" text,"tecNum" text,"tecStartTm" text,"tecEndTm" text,"tecWeight" text,"tecVolume" text,"genNum" text,"genStartTm" text,"genEndTm" text,"genWeight" text,"genVolume" text,"auxRemark" text,"waitRemark" text,"workRemark" text,"tradeTypeName" text,"importExportFlagName" text,"spmName" text,"webStatus" text,"webDate" text, PRIMARY KEY("webId"));'
this.executeSql(sql)
},
// 创建系解缆 attachUnmoorRespList

View File

@ -285,18 +285,16 @@
}
.popupBox {
width: 500px;
height: 400px;
width: 400px;
height: 330px;
overflow: scroll;
padding: 30px;
.ul {
display: felx;
flex-direction: column;
justify-content: space-between;
.li {
padding: 15px 0px;
height: 60px;
line-height: 60px;
text-align: center;
border: 1px solid #ccc;
border-radius: 4px;
margin-bottom: 10px;
@ -314,7 +312,6 @@
.btn {
flex: 1;
padding: 10px 0;
margin: 10px 20px;
}
}

View File

@ -13,12 +13,6 @@
@select="shipSelect"></superwei-combox>
</uni-easyinput>
<button class="btn" @click="onSearch"></button>
<button class="btn" @click="open"></button>
<button class="btn" @click="isOpenDatabase"></button>
<button class="btn" @click="createTable"></button>
<button class="btn" @click="dropTable"></button>
<button class="btn" @click="insertChatRowTwo"></button>
<button class="btn" @click="executeSql1"></button>
</view>
</view>
<view class="itemList">
@ -60,8 +54,6 @@
<script>
import HeadInfo from '@/components/head-info/head-info';
import sqlite from "../../common/sqlite.js"
import rSqlite from "../../common/rSqlite.js"
import {
mapActions
} from 'vuex'
@ -87,126 +79,6 @@
'majax',
'najax'
]),
open() {
plus.sqlite.openDatabase({
name: 'dianji_chat',
path: '_doc/dianji_chat.db',
success: function(e) {
console.log('打开数据库成功')
},
fail: function(e) {
console.log(e, '打开数据库失败')
}
});
},
isOpenDatabase() {
let res = plus.sqlite.isOpenDatabase({
name: 'dianji_chat',
path: '_doc/dianji_chat.db',
});
if (res) {
uni.showToast({
icon: 'none',
title: '数据库已打开'
});
return;
} else {
uni.showToast({
icon: 'none',
title: '数据库未打开'
});
return;
}
},
createTable() {
console.log('创建表');
let sql =
'CREATE TABLE if not exists cesTable ( "id" varchar(32) NOT NULL,"content" varchar(1024),"fromId" varchar(32), "toId" varchar(32), "flag" varchar(2), PRIMARY KEY ("id"));'
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
console.log(value); // Hello, World!
}).catch((error) => {
// reject
console.error(error);
});
},
dropTable() {
console.log('删除表');
let sql = 'DROP TABLE cesTable;'
plus.sqlite.executeSql({
name: 'dianji_chat',
sql: sql,
success: function(e) {
console.log("删除数据表成功");
},
fail: function(e) {
console.log('executeSql failed: ' + JSON.stringify(e));
}
})
},
// insertChatRow() {
// let data = {
// id: 1,
// fromId: '123',
// toId: '321',
// content: 'bihao1',
// flag: 1
// }
// data.id = Math.floor(Math.random() * 100);
// let dbTable = 'cesTable'
// // let sql = "insert into " + this.dbTable + " values('" + data.id + "','" + data.content +
// // "','" + data.fromId + "','" + data.toId + "'," + data.flag + ")";
// let sql = "insert into " + dbTable + " values('" + data.id + "','" +
// data.content + "','" + data.fromId + "','" + data.toId + "','" + data.flag + "')";
// this.executeSql(sql)
// },
insertChatRowTwo() {
let data = {
id: 1,
fromId: '123',
toId: '321',
content: 'bihao1',
flag: 1
} // => "'1','123','312'"
data.id = Math.floor(Math.random() * 100);
let dbTable = 'cesTable'
let Arr = []
for (let key in data) {
Arr.push(`'${data[key]}'`);
}
let Str = Arr.join(',')
rSqlite.insertTableData(dbTable, Str).then((value) => {
// resolve
console.log(value); // Hello, World!
this.executeSql(value)
}).catch((error) => {
// reject
console.error(error);
});
},
//
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
// this.sqlData = value
console.log(value); // Hello, World!
}).catch((error) => {
// reject
console.error(error);
});
},
executeSql1() {
let sql = 'select * from cesTable'
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
// this.sqlData = value
console.log(value); // Hello, World!
}).catch((error) => {
// reject
console.error(error);
});
},
portInput(e) {
clearTimeout(timers)
timers = setTimeout(() => {
@ -290,10 +162,10 @@
vvyStatusName: "作业中",
}]
},
toDetails(id) {
const newId = encodeURIComponent(JSON.stringify(id));
uni.navigateTo({
url: '/pages/index/instruct?id=' + id
url: '/pages/index/instruct?id=' + newId
})
},
}

View File

@ -303,93 +303,22 @@
</view>
<view v-show="current == 3">
<view class="field">
<view class="boxTop">
<view class="title">
堆场
</view>
<view class="option">
<uni-data-select v-model="optionValue" :localdata="optionList"></uni-data-select>
</view>
</view>
<view class="fpList">
<view class="fpInfo">
<view class="fpTitle">
港建库
<template v-if="placeTabs == 0">
<view class="field">
<view class="boxTop">
<view class="title">
堆场
</view>
<view class="fpListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
</view>
<view class="infoCarNum">
<text>车位总数120车位</text>
<text>使用40车位</text>
<text>剩余40车位</text>
<text>可停放车辆300</text>
<text>已停放车辆300</text>
</view>
<view class="progressBox">
<van-progress :percentage="itemSum2(2000)" :pivot-text="'1000/' + 2000" />
</view>
<view class="carInfoList">
<view class="carBrand" v-for="item in 4" :key="item">
<view class="brandTitle">
保时捷-轿车
</view>
<view class="placeInfo">
400 共5道12车位
</view>
</view>
</view>
</view>
<view class="fpListInfo notListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
</view>
<view class="notTitle">
未分配
</view>
<text>车位总数120车位</text>
<text>可停放车辆300</text>
</view>
<view class="tipInfo">
未使用2车道20车位
<view class="option">
<uni-data-select v-model="optionValue" :localdata="optionList"></uni-data-select>
</view>
</view>
<view class="fpInfo">
<view class="fpTitle">
海棠库
</view>
<view class="fpListInfo notListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
<view class="fpList">
<view class="fpInfo">
<view class="fpTitle">
港建库
</view>
<view class="notTitle">
未分配
</view>
<text>车位总数120车位</text>
<text>可停放车辆300</text>
</view>
<view class="fpListInfo">
<view class="carInfoList">
<view class="fpListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
@ -409,21 +338,97 @@
<view class="progressBox">
<van-progress :percentage="itemSum2(2000)" :pivot-text="'1000/' + 2000" />
</view>
</view>
<view class="carInfoList">
<view class="carBrand" v-for="item in 4" :key="item">
<view class="brandTitle">
保时捷-轿车
<view class="carInfoList">
<view class="carBrand" v-for="item in 4" :key="item">
<view class="brandTitle">
保时捷-轿车
</view>
<view class="placeInfo">
400 共5道12车位
</view>
</view>
<view class="placeInfo">
400 共5道12车位
</view>
</view>
<view class="fpListInfo notListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
</view>
<view class="notTitle">
未分配
</view>
<text>车位总数120车位</text>
<text>可停放车辆300</text>
</view>
<view class="tipInfo">
未使用2车道20车位
</view>
</view>
<view class="fpInfo">
<view class="fpTitle">
海棠库
</view>
<view class="fpListInfo notListInfo">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
</view>
<view class="notTitle">
未分配
</view>
<text>车位总数120车位</text>
<text>可停放车辆300</text>
</view>
<view class="fpListInfo">
<view class="carInfoList">
<view class="infoTop">
<view class="infoTopTitle">A1区12*12</view>
<view class="titleRight" @click="toGoPlace">
<text>车道</text>
<view class="titleIcon">
<van-icon name="arrow" color="#fff" />
</view>
</view>
</view>
<view class="infoCarNum">
<text>车位总数120车位</text>
<text>使用40车位</text>
<text>剩余40车位</text>
<text>可停放车辆300</text>
<text>已停放车辆300</text>
</view>
<view class="progressBox">
<van-progress :percentage="itemSum2(2000)" :pivot-text="'1000/' + 2000" />
</view>
</view>
<view class="carInfoList">
<view class="carBrand" v-for="item in 4" :key="item">
<view class="brandTitle">
保时捷-轿车
</view>
<view class="placeInfo">
400 共5道12车位
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<template v-else>
<place @modifyPlaceTabs="modifyPlaceTabs"></place>
</template>
</view>
</view>
@ -437,6 +442,7 @@
} from 'vuex'
import HeadView from '@/components/head-view/head-view.vue';
import HeadInfo from '@/components/head-info/head-info';
import place from './place.vue';
let timers = null;
export default {
data() {
@ -565,6 +571,7 @@
text: "江海库"
}
],
placeTabs: 0,
}
},
computed: {
@ -581,8 +588,8 @@
};
}
},
onLoad() {
this.id = this.$route.query.id;
onLoad(options) {
this.id = JSON.parse(decodeURIComponent(options.id))
this.loadSumOrder() //
setTimeout(() => {
this.menuList = [{
@ -637,7 +644,8 @@
},
components: {
HeadView,
HeadInfo
HeadInfo,
place
},
methods: {
...mapActions([
@ -933,10 +941,19 @@
}]
},
toDetails(id) {
const newId = encodeURIComponent(JSON.stringify(id));
uni.navigateTo({
url: '/pages/index/instructDetails?id=' + id
url: '/pages/index/instructDetails?id=' + newId
})
}
},
//
toGoPlace() {
this.placeTabs = 1;
},
//
modifyPlaceTabs(data) {
this.placeTabs = data;
},
}
};
</script>

View File

@ -1,213 +1,133 @@
<template>
<view class="details">
<head-view title="货物详情"></head-view>
<view class="container">
<view class="formTitle">
基本信息
</view>
<view class="formNr">
<view class="row">
<view class="col">
<view class="title">
船名:
</view>
<text>1123</text>
</view>
<view class="col">
<view class="title">
航次:
</view>
<text>1123</text>
</view>
<view class="liBox">
<view class="title">
<image src="../../static/images/carInfo.png" mode=""></image>
<text>基本信息</text>
</view>
<view class="row">
<view class="col">
<view class="title">
港口:
</view>
<text>1123</text>
<view class="ul">
<view class="li">
<p>船名</p>
<text>海王星领袖</text>
</view>
<view class="col">
<view class="title">
泊位:
</view>
<text>1123</text>
<view class="li">
<p>航次</p>
<text>29089473289</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
备注:
</view>
<text>1123</text>
<view class="li">
<p>港口</p>
<text>厦门港</text>
</view>
<view class="col">
<view class="li">
<p>货代</p>
<text>货代货代货代货代</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
货代:
</view>
<text>1123</text>
<view class="li">
<p>联系人</p>
<text>张xx</text>
</view>
<view class="col">
<view class="title">
联系人:
</view>
<text>1123</text>
<view class="li">
<p>联系方式</p>
<text>12345678900</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
联系方式:
</view>
<text>1123</text>
<view class="li">
<p>泊位</p>
<text>一泊位</text>
</view>
<view class="col">
<view class="li">
<p>备注</p>
<text>我是备注我是备注我是备注</text>
</view>
</view>
</view>
<view class="formTitle">
详细信息
</view>
<view class="formNr">
<view class="row">
<view class="col">
<view class="title">
提单号:
</view>
<text>1123</text>
</view>
<view class="col">
<view class="title">
品牌:
</view>
<text>1123</text>
</view>
<view class="liBox">
<view class="title">
<image src="../../static/images/goodsImg.png" mode=""></image>
<text>货物明细</text>
</view>
<view class="row">
<view class="col">
<view class="title">
型号:
</view>
<text>1123</text>
<view class="ul">
<view class="li">
<p>提单号</p>
<text>789654654123</text>
</view>
<view class="col">
<view class="li">
<p>品牌</p>
<text>奔驰</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
车型明细:
</view>
<text>1123</text>
<view class="li">
<p>型号</p>
<text>cx87898888</text>
</view>
<view class="col">
<view class="title">
车长:
</view>
<text>1123</text>
<view class="li">
<p>车辆明细</p>
<text>车辆明细车辆明细</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
车宽:
</view>
<text>1123</text>
<view class="li">
<p>车长</p>
<text>1888</text>
</view>
<view class="col">
<view class="title">
车高:
</view>
<text>1123</text>
<view class="li">
<p>车宽</p>
<text>1688</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
体积:
</view>
<text>1123</text>
<view class="li">
<p>车高</p>
<text>1000</text>
</view>
<view class="col">
<view class="title">
重量:
</view>
<text>1123</text>
<view class="li">
<p>体积</p>
<text>28888</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
数量:
</view>
<text>1123</text>
<view class="li">
<p>重量</p>
<text>48888</text>
</view>
<view class="col">
<view class="title">
单票数量:
</view>
<text>1123</text>
<view class="li">
<p>数量</p>
<text>288</text>
</view>
</view>
<view class="row">
<view class="col">
<view class="title">
单票重量:
</view>
<text>1123</text>
<view class="li">
<p>单票数量</p>
<text>10</text>
</view>
<view class="col">
<view class="title">
单票体积:
</view>
<text>1123</text>
<view class="li">
<p>单票重量</p>
<text>33</text>
</view>
<view class="li">
<p>单票体积</p>
<text>20</text>
</view>
</view>
</view>
<view class="formTitle">
货物明细
</view>
<view class="formNr">
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr class="gray">
<uni-th align="center" width="20">序号</uni-th>
<uni-th align="center" width="20">车架号/条形码</uni-th>
<uni-th align="center" width="20">作业状态</uni-th>
<uni-th align="center" width="20">场位</uni-th>
<uni-th align="center" width="20">操作</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr>
<uni-td>1123</uni-td>
<uni-td>2</uni-td>
<uni-td>3</uni-td>
<uni-td>4</uni-td>
<uni-td align="center">
<view class="uni-group">
<button class="uni-button" size="mini" type="primary" @click="open"></button>
</view>
</uni-td>
</uni-tr>
</uni-table>
<view class="liBox">
<view class="title">
<image src="../../static/images/goodsImg2.png" mode=""></image>
<text>货物表格</text>
</view>
<view class="formNr">
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr class="gray">
<uni-th align="center" width="22">序号</uni-th>
<uni-th align="center" width="22">车架号/条形码</uni-th>
<uni-th align="center" width="22">作业状态</uni-th>
<uni-th align="center" width="22">场位</uni-th>
<uni-th align="center" width="12">操作</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr>
<uni-td>1</uni-td>
<uni-td>a</uni-td>
<uni-td>ix3</uni-td>
<uni-td>18283</uni-td>
<uni-td align="center">
<text class="operate" @click="open"></text>
</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
<!-- 弹出层 -->
<uni-popup ref="popup" :mask-click="false">
@ -367,14 +287,14 @@
export default {
data() {
return {
id:0
id: 0
}
},
components: {
HeadInfo
},
onLoad() {
this.id = this.$route.query.id;
onLoad(options) {
this.id = JSON.parse(decodeURIComponent(options.id))
this.loadList() //
},
methods: {
@ -406,7 +326,51 @@
<style lang="less" scoped>
.details {
.container {
padding: 20px 30px;
padding: 16px;
.liBox {
width: 100%;
padding: 24px 16px;
background-color: #fff;
margin-bottom: 16px;
.title {
display: flex;
margin-bottom: 20px;
image {
width: 24px;
height: 24px;
margin-top: 2px;
}
text {
font-size: 18px;
font-weight: bold;
margin-left: 10px;
}
}
.ul {
display: flex;
flex-wrap: wrap;
.li {
width: 32%;
margin-bottom: 12px;
display: flex;
font-size: 14px;
p {
color: #999;
}
text {
color: #23262E;
}
}
}
}
.formTitle {
padding-left: 10px;
@ -416,33 +380,14 @@
}
.formNr {
margin: 40px 0 30px;
.row {
width: 70%;
display: flex;
justify-content: space-between;
font-size: 18px;
line-height: 60px;
.col {
display: flex;
justify-content: center;
.title {
width: 150px;
text-align: right;
font-weight: 900;
color: #999ba6;
}
}
}
.gray {
background-color: #f9f9f9;
}
.operate {
color: #2979ff;
}
}
}
}

View File

@ -0,0 +1,358 @@
<template>
<view class="place">
<view class="placeTop">
<view class="topLeft">
堆场资源 B3区
</view>
<view class="topRight">
<button @click="back"><text class="back">返回</text></button>
<button @click="show"><text class="show">显示</text></button>
</view>
<view class="showBox" v-if="showType">
<view class="showInfo">
车道
</view>
<view class="showInfo">
车位
</view>
</view>
</view>
<view class="placeInfo">
<view class="infoLeft">
<text>车位总数12*15=180车位</text>
<text>使用车位40车位</text>
<text>剩余车位40车位</text>
<text>虚拟场位12车位</text>
<text>可停放车辆12</text>
<text>已停放车辆12</text>
</view>
<view class="infoRight">
<view class="tipBox">
<text>空置</text>
<view class="colorBox vacant"></view>
</view>
<view class="tipBox">
<text>使用</text>
<view class="colorBox use"></view>
</view>
<view class="tipBox">
<text>虚拟车位</text>
<view class="colorBox virtually"></view>
</view>
</view>
</view>
<view class="placeList">
<view class="listInfo">
<view class="title">
01合计12辆车-13车位
</view>
<view class="listType1">
<view class="type1Box box1">
宝马-轿车 12
</view>
<view class="type1Box box2">
奔驰-轿车 12
</view>
<view class="type1Box box3">
未使用5车位
</view>
</view>
</view>
<view class="listInfo">
<view class="title">
02合计12辆车-13车位
</view>
<view class="listType2">
<view class="type2Box">
<template v-for="(item, index) in type2List">
<view class="type2info"
:class="{'type0':item.type == 0, 'type1':item.type == 1, 'type2':item.type == 2}"
:key="index">
{{item.name}}
</view>
</template>
</view>
</view>
</view>
<view class="listInfo">
<view class="title">
03合计12辆车-13车位
</view>
<view class="listType3">
未使用5车位
</view>
</view>
<view class="listInfo">
<view class="title">
04合计12辆车-13车位
</view>
<view class="listType3">
未使用5车位
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
type2List: [{
id: "01",
name: "宝马-轿车",
type: 1,
},
{
id: "02",
name: "宝马-轿车",
type: 1,
}, {
id: "03",
name: "宝马-轿车",
type: 1,
}, {
id: "04",
name: "空置",
type: 0,
}, {
id: "05",
name: "宝马-轿车",
type: 1,
}, {
id: "06",
name: "空置",
type: 0,
}, {
id: "07",
name: "宝马-轿车",
type: 1,
}, {
id: "08",
name: "空置",
type: 0,
}, {
id: "09",
name: "宝马-轿车",
type: 1,
}, {
id: "10",
name: "空置",
type: 0,
}, {
id: "11",
name: "宝马-轿车",
type: 1,
}, {
id: "12",
name: "虚拟车位",
type: 2,
},
],
showType: false,
}
},
methods: {
//
back() {
this.$emit("modifyPlaceTabs", 0)
},
//
show() {
this.showType = !this.showType
}
},
}
</script>
<style lang="less" scoped>
.place {
.placeTop {
background-color: #fff;
padding: 20px;
display: flex;
justify-content: space-between;
margin-bottom: 10px;
position: relative;
.topLeft {
font-size: 20px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
}
.topRight {
display: flex;
uni-button {
margin-left: 30px;
width: 100px;
background-color: #fff;
}
.back {
color: #0079FE;
}
.show {
color: #aaa;
}
}
.showBox {
position: absolute;
bottom: -102px;
right: 25px;
border: 1px solid #aaa;
.showInfo {
padding: 20px 30px;
background-color: #fff;
}
}
}
.placeInfo {
padding: 10px 20px;
background-color: #fff;
display: flex;
.infoLeft {
flex: 2;
display: flex;
flex-wrap: wrap;
text {
margin: 10px;
margin-right: 0;
padding-right: 10px;
border-right: 1px solid #aaa;
}
}
.infoRight {
flex: 1;
display: flex;
margin-left: 30px;
.tipBox {
display: flex;
margin: auto;
.colorBox {
width: 20px;
height: 20px;
margin-left: 5px;
}
.vacant {
background-color: #aaa;
}
.use {
background-color: #0079FE;
}
.virtually {
background-color: #F86E56;
}
}
}
}
.placeList {
padding: 20px;
background-color: #000;
.listInfo {
margin-bottom: 20px;
.title {
font-size: 18px;
font-weight: bold;
color: #fff;
padding-left: 10px;
border-left: 5px solid #0079FE;
margin-bottom: 20px;
}
.listType1 {
display: flex;
.type1Box {
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
height: 100px;
}
.box1 {
flex: 1;
background-color: #0079FE;
color: #fff;
font-size: 16px;
font-weight: bold;
}
.box2 {
flex: 1;
background-color: #0079FE;
color: #fff
}
.box3 {
flex: 2;
background-color: #fff;
color: #aaa
}
}
.listType2 {
padding: 10px 0;
background-color: #222;
.type2Box {
display: flex;
.type2info {
flex: 1;
height: 150px;
border-radius: 8px;
margin: 0 5px;
color: #fff;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
}
.type0 {
background-color: #aaa;
}
.type1 {
background-color: #0079FE;
}
.type2 {
background-color: #F86E56;
}
}
}
.listType3 {
height: 200px;
text-align: center;
color: #F86E56;
line-height: 200px;
font-size: 18px;
font-weight: bold;
background-color: #aaa;
}
}
}
}
</style>

View File

@ -119,19 +119,16 @@
}
.popupBox {
width: 500px;
height: 400px;
width: 400px;
height: 330px;
overflow: scroll;
padding: 30px;
line-height: 40px;
.ul {
display: felx;
flex-direction: column;
justify-content: space-between;
.li {
padding: 15px 0px;
height: 60px;
line-height: 60px;
text-align: center;
border: 1px solid #ccc;
border-radius: 4px;
margin-bottom: 10px;
@ -149,7 +146,6 @@
.btn {
flex: 1;
padding: 10px 0;
margin: 10px 20px;
}
}

View File

@ -409,6 +409,11 @@
}
},
checkboxChange(e) {
if (e.detail.value == 4) {
this.showInput3 = true
} else {
this.showInput3 = false
}
var items = this.checklist,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
@ -470,6 +475,11 @@
})
},
checkboxChange3(e) {
if (e.detail.value == 5) {
this.showInput5 = true
} else {
this.showInput5 = false
}
var items = this.checklist3,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {

View File

@ -1,5 +1,6 @@
<template>
<view class="abnormal">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,11 +8,24 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">类型{{item.type}}</view>
<p>上传状态未上传</p>
<p>航次{{item.vvyName}}</p>
<p>贸易类型{{item.importExportFlagName}}</p>
<p>进出口{{item.tradeTypeName}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>类型{{item.type}}</p>
<p>贸易类型{{item.importExportFlagName}}</p>
<p>进出口{{item.tradeTypeName}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -26,6 +40,7 @@
export default {
data() {
return {
title: "船名-异常状况",
shipInfo: {},
infoList: []
}
@ -42,7 +57,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -50,8 +64,12 @@
},
//
sign() {
const objType = {
signType: "abnormal"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -80,6 +98,12 @@
<style lang="less" scoped>
.abnormal {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -98,25 +122,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -125,6 +220,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -61,13 +61,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
abnormalRow: {},
abnormalRowIndex: 0,
@ -97,6 +91,7 @@
this.getRow();
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -104,8 +99,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -113,7 +112,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -184,8 +183,8 @@
} else if (this.obj.state == "add") {
let sql = `insert into abnormalConditionRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.type}','${this.remark}','${this.workTime}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({

View File

@ -1,5 +1,7 @@
<template>
<view class="documentList">
<head-view :title="title"></head-view>
<uni-notice-bar show-icon single :text="noticeText" />
<view class="container">
<view class="workBox">
<view class="title">
@ -37,93 +39,138 @@
export default {
data() {
return {
title: "船名:海王星领袖 / 进口航次29089473289 / 出口航次12083772682998376",
noticeText: "uni-app 版正式发布开发一次同时发布iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、头条小程序等7大平台。",
infoList: [{
name: "杂项作业单",
url: "mixWork",
imgUrl: "../../static/images/shipWork/zxzyd.png",
status: false,
tableName: "messageRespList",
},
{
name: "系解缆",
url: "untieCord",
imgUrl: "../../static/images/shipWork/zxzyd.png",
status: false,
tableName: "attachUnmoorRespList",
},
{
name: "供给",
url: "supply",
imgUrl: "../../static/images/shipWork/gj.png",
status: true,
tableName: "shipmentShipSupplyRespList",
},
{
name: "指导员作业布置",
url: "workAssign",
imgUrl: "../../static/images/shipWork/zybz.png",
status: true,
tableName: "shipmentAdviserLayoutRespList",
},
{
name: "船舶装卸通知单",
url: "notice",
imgUrl: "../../static/images/shipWork/tzd.png",
status: true,
tableName: "shipmentLoadUnloadNoticeRespList",
},
{
name: "质量意见征询",
url: "opinion",
imgUrl: "../../static/images/shipWork/zlyj.png",
status: true,
tableName: "shipmentQualityConsultationRespList",
},
{
name: "异常情况",
url: "abnormal",
imgUrl: "../../static/images/shipWork/yczk.png",
status: true,
tableName: "abnormalConditionRespList",
},
{
name: "MAFI清单",
url: "mafi",
imgUrl: "../../static/images/shipWork/mafiqd.png",
status: true,
tableName: "mafiListRespList",
}
],
otherListh: [{
name: "安全巡检",
url: "patrol",
imgUrl: "../../static/images/shipWork/aqxj.png"
imgUrl: "../../static/images/shipWork/aqxj.png",
tableName: "safetyInspectionRespList",
},
{
name: "船舶资料",
url: "shipInfo",
imgUrl: "../../static/images/shipWork/cbzl.png"
imgUrl: "../../static/images/shipWork/cbzl.png",
tableName: ""
},
{
name: "船舶计划",
url: "shipPlan",
imgUrl: "../../static/images/shipWork/cbjh.png"
imgUrl: "../../static/images/shipWork/cbjh.png",
tableName: ""
},
{
name: "作业查询",
url: "brandDetails",
imgUrl: "../../static/images/shipWork/zycx.png"
imgUrl: "../../static/images/shipWork/zycx.png",
tableName: "shipmentShipLoadPlansRespList",
}
],
tableStatusList: [],
noticeList: [],
}
},
mounted() {
// this.executeSql1('shipOption')
this.getTableStauts()
},
methods: {
getTableStauts() {
this.infoList.forEach((v, index) => {
this.executeSql(v.tableName)
})
this.executeSql("shipInfoTable")
},
//
// executeSql1(tableName) {
// let sql = `select * from ${tableName}`
// sqlite.executeSqlCeshi(sql).then((value) => {
// // resolve
// console.log(value)
// }).catch((error) => {
// // reject
// console.error(error);
// });
// },
executeSql(tableName) {
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
if (tableName == "shipInfoTable") {
this.title = `船名:${value[0].vslCnname} / 航次:${value[0].vvyName}`
} else {
if (value.length == 0) {
this.tableStatusList.push(tableName)
}
value.forEach(v => {
if (v.webStatus == 0) {
this.tableStatusList.push(tableName)
}
})
this.tableStatusList = Array.from(new Set(this.tableStatusList))
let meg = ""
this.infoList.forEach((v, index) => {
this.tableStatusList.forEach(item => {
if (v.tableName == item) {
v.status = false
meg += `${v.name}`
let megs = meg.substring(0, meg.length - 1)
this.noticeText = `${megs}单证未填写`
}
})
})
}
}).catch((error) => {
// reject
console.error(error);
});
},
toGo(url) {
uni.navigateTo({
url: `/pages/shipWork/${url}`

View File

@ -10,11 +10,11 @@
</view>
<button class="searchBtn" type="default" @click="search"></button>
<button class="searchBtn" type="default" @click="open"></button>
<!-- <button class="searchBtn" type="default" @click="isOpen"></button>
<!-- <button class="searchBtn" type="default" @click="isOpen"></button> -->
<button class="searchBtn" type="default" @click="createTable"></button>
<button class="searchBtn" type="default" @click="dropTable"></button>
<button class="searchBtn" type="default" @click="dropData"></button>
<button class="searchBtn" type="default" @click="executeSql1('shipInfoTable')"></button> -->
<!-- <button class="searchBtn" type="default" @click="dropData"></button> -->
<!-- <button class="searchBtn" type="default" @click="executeSql1('shipOption')"></button> -->
</view>
<view class="itemList">
<template v-if="itemList.length > 0">
@ -347,7 +347,7 @@
},
dropTable() {
console.log('删除表');
let sql = 'DROP TABLE safetyInspectionRespUrlList;'
let sql = 'DROP TABLE infoRespList;'
this.executeSql(sql)
},
dropData() {
@ -359,7 +359,6 @@
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
// console.log(value);
}).catch((error) => {
// reject
console.error(error);

View File

@ -1,5 +1,6 @@
<template>
<view class="mafi">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,12 +8,25 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">马菲板号{{item.mafiBarcode}}</view>
<p>上传状态未上传</p>
<p>尺码{{item.size}}</p>
<p>类型{{item.type}}</p>
<p>装卸方式{{item.loaderType}}</p>
<p>航次{{item.vvyName}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>马菲板号{{item.mafiBarcode}}</text></p>
<p>尺码{{item.size}}</p>
<p>类型{{item.type}}</p>
<p>装卸方式{{item.loaderType}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -27,6 +41,7 @@
export default {
data() {
return {
title: "船名-MAFI清单",
shipInfo: {},
infoList: []
}
@ -43,7 +58,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -51,8 +65,12 @@
},
//
sign() {
const objType = {
signType: "mafi"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -81,6 +99,12 @@
<style lang="less" scoped>
.mafi {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -99,25 +123,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -126,6 +221,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -72,13 +72,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
mafiRow: {},
mafiRowIndex: 0,
@ -108,7 +102,7 @@
loaderTypeId: "",
loaderType: "",
zxList: [],
//
optionData: [],
}
@ -124,6 +118,7 @@
this.getRow();
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -131,8 +126,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -140,7 +139,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -247,8 +246,8 @@
} else if (this.obj.state == "add") {
let sql = `insert into mafiListRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.loaderTypeId}','${this.loaderType}','${this.typeId}','${this.type}','${this.size}','${this.mafiBarcode}','${this.workDate}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({

View File

@ -1,5 +1,6 @@
<template>
<view class="mixWork">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -12,27 +13,56 @@
<view class="ul" v-if="tabsType == 0">
<template v-if="peopleInfo.length > 0">
<view class="li" v-for="(item,index) in peopleInfo" :key="index" @click="add('look',item,index)">
<view class="title">航次{{item.vvyName}}</view>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>作业组数{{item.workSuite}}</p>
<p>单船人数{{item.shipPerson}}</p>
<p>状态未上传</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>贸易类型<text>{{item.tradeTypeName}}</text></p>
<p>进出口<text>{{item.importExportFlagName}}</text></p>
<p>作业组数<text>{{item.workSuite}}</text></p>
<p>单船人数<text>{{item.shipPerson}}</text></p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
<template v-else>
<o-empty height="70vh" bg="#f5f6fa" width="100vw" />
</template>
</view>
<!-- 工班信息列表 -->
<view class="ul" v-if="tabsType == 1">
<view class="ul shiftUl" v-if="tabsType == 1">
<template v-if="shiftInfo.length > 0">
<view class="li" v-for="(item,index) in shiftInfo" :key="index" @click="lookShift(item,index)">
<view class="title">航次{{item[0].vvyName}}</view>
<view class="shift" v-for="(item2,index2) in item" :key="index2">
<p>{{item2.pwcTypeName}}</p>
<span>作业开始时间{{item2.workStartTime}}</span>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item[0].vvyName}}</text>
</view>
<view class="state">状态未上传</view>
<view class="shift" v-for="(item2,index2) in item" :key="index2">
<text>{{item2.pwcTypeName}}</text>
<text class="text">作业开始时间</text><text
class="time">{{item2.workStartTime.substring(0,item2.workStartTime.length - 3)}}</text>
<text class="text">作业结束时间</text><text
class="time">{{item2.workEndTime.substring(0,item2.workEndTime.length - 3)}}</text>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
@ -48,6 +78,7 @@
export default {
data() {
return {
title: "船名-杂项作业",
shipInfo: [],
tabsList: ["人员信息", "工班信息"],
tabsType: 0, // 0 1
@ -56,7 +87,6 @@
peopleInfo: [],
//
shiftInfo: [],
}
},
mounted() {
@ -91,8 +121,8 @@
// console.log(value)
if (tableName == 'workMessageRespList' && value.length > 0) {
this.shiftInfo = Object.values(value.reduce((res, item) => {
res[item.contactId] ? res[item.contactId].push(item) : res[item
.contactId] = [item];
res[item.aId] ? res[item.aId].push(item) : res[item
.aId] = [item];
return res;
}, {}));
}
@ -104,8 +134,12 @@
},
//
sign() {
const objType = {
signType: "mixWork"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
tabsClick(item, index) {
@ -142,7 +176,6 @@
}
},
lookShift(item, index) {
console.log(item)
uni.setStorageSync('shiftRow', item);
uni.navigateTo({
url: `/pages/shipWork/shiftDetails`
@ -161,8 +194,14 @@
<style lang="less" scoped>
.mixWork {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
padding: 30px 10px;
.signBox {
display: flex;
@ -199,25 +238,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -226,6 +336,21 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.shiftUl {
.li {
width: 49%;
margin-right: 0.5%;
}
}
.addBtn {

View File

@ -1,5 +1,6 @@
<template>
<view class="notice">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,11 +8,24 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">航次{{item.vvyName}}</view>
<p>状态未上传</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业日期{{item.workDate}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业日期{{item.workDate}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -26,6 +40,7 @@
export default {
data() {
return {
title: "船名-船舶装卸通知书",
shipInfo: {},
infoList: []
}
@ -42,7 +57,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -50,8 +64,12 @@
},
//
sign() {
const objType = {
signType: "notice"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -80,6 +98,12 @@
<style lang="less" scoped>
.notice {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -98,25 +122,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -125,6 +220,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -50,13 +50,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
noticeRow: {},
noticeRowIndex: 0,
@ -66,7 +60,7 @@
hcList: [],
//
workDate: [''],
//
optionData: [],
}
@ -82,6 +76,7 @@
this.getRow();
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -89,8 +84,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -98,7 +97,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -165,8 +164,8 @@
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql = `insert into shipmentLoadUnloadNoticeRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.workDate}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.workDate}','${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({

View File

@ -1,5 +1,6 @@
<template>
<view class="opinion">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,11 +8,24 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">航次{{item.vvyName}}</view>
<p>状态未上传</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业日期{{item.workTime}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业日期{{item.workTime}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -28,6 +42,7 @@
export default {
data() {
return {
title: "船名-质量意见征询",
shipInfo: {},
infoList: []
}
@ -44,7 +59,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -52,8 +66,12 @@
},
//
sign() {
const objType = {
signType: "opinion"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -82,6 +100,12 @@
<style lang="less" scoped>
.opinion {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -100,25 +124,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -127,6 +222,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -72,13 +72,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
opinionRow: {},
opinionRowIndex: 0,
@ -116,6 +110,7 @@
this.getRow();
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -123,8 +118,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -132,7 +131,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -252,8 +251,8 @@
} else if (this.obj.state == "add") {
let sql = `insert into shipmentQualityConsultationRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.bthId}','${this.bthIdName}','${this.loaderTypeId}','${this.loaderType}','${this.vehicleSize}',
'${this.sparePart}','${this.workTime}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.sparePart}','${this.workTime}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
'${webStatus}','${webDate}')`
console.log(sql)
this.executeSql(sql)

View File

@ -4,11 +4,24 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">类型{{item.type}}</view>
<p>上传状态未上传</p>
<p>航次{{item.vvyName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>进出口{{item.importExportFlagName}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>类型{{item.type}}</text></p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>进出口{{item.importExportFlagName}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -39,7 +52,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -75,21 +87,112 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
display: flex;
flex-direction: column;
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -70,13 +70,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
patrolRow: {},
patrolRowIndex: {},
@ -108,6 +102,7 @@
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
this.executeSql2('safetyInspectionRespUrlList')
},
methods: {
@ -116,8 +111,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -135,7 +134,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -225,8 +224,8 @@
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql = `insert into safetyInspectionRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.type}','${this.remark}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.type}','${this.remark}','${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
this.executeSql(sql)
console.log(this.ysUrl)
for (var i = 0; i < this.ysUrl.length; i++) {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -74,13 +74,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
peopleRow: {},
peopleRowIndex: 0,
obj: {},
@ -131,6 +125,7 @@
this.getRow()
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -138,8 +133,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -147,7 +146,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -228,8 +227,8 @@
//
changeLog(e) {
this.datetime = e;
this.startTime = this.datetime[0].slice(0, this.datetime[0].length - 3)
this.endTime = this.datetime[1].slice(0, this.datetime[1].length - 3)
this.startTime = this.datetime[0]
this.endTime = this.datetime[1]
},
//
cancel() {
@ -268,8 +267,8 @@
} else if (this.obj.state == "add") {
let sql = `insert into messageRespList values('${webId}','${this.bwValue}','${this.bwTextValue}',
'${this.startTime}','${this.endTime}','${this.shipValue}','${this.hcValue}','${this.hcTextValue}','${this.tqValue}',
'${this.tqTextValue}','${this.workValue}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.tqTextValue}','${this.workValue}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
}

View File

@ -8,7 +8,7 @@
<view class="ul ul1">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required">*</text>航次</p>
@ -16,11 +16,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required">*</text>装卸类型</p>
@ -203,13 +203,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
dataInfo: {},
shiftRowIndex: 0,
@ -287,6 +281,7 @@
optionData: [],
contactId: "",
aId: "",
// ids
shiftDelList: [],
// ids
@ -302,11 +297,12 @@
}
},
mounted() {
this.dataInfo = uni.getStorageSync('shiftRow')
this.contactId = this.dataInfo[0].contactId
this.executeSql2('shipOption')
this.executeSql2('shipInfoTable')
if (this.obj.state == 'edit') {
this.dataInfo = uni.getStorageSync('shiftRow')
this.contactId = this.dataInfo[0].contactId
this.aId = this.dataInfo[0].aId
this.ulList1 = []
this.editData();
} else if (this.obj.state == 'add') {
@ -336,12 +332,12 @@
this.optionData = value
this.getShip()
} else {
this.shipObj = value
this.shipInfo = value[0]
}
})
},
executeSql1(tableName) {
let sql = `select * from ${tableName} WHERE contactId = '${this.contactId}';`
let sql = `select * from ${tableName} WHERE aId = '${this.aId}';`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
if (tableName == 'workMessageRespList') {
@ -364,7 +360,6 @@
this.getData(obj)
})
} else if (tableName == 'retallyMessageRespList') {
// console.log(value);
let arr = [];
value.forEach(item => {
if (!arr[item.retallyType]) {
@ -392,7 +387,6 @@
});
});
this.fcUlList = Object.values(arr);
// console.log(this.fcUlList);
} else if (tableName == 'infoRespList') {
this.otherObj.webId = value[0].webId
this.otherObj.contactId = value[0].contactId
@ -429,7 +423,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -592,7 +586,7 @@
delGb2(item2, index, index2) {
this.ulList1[index].ulList2.splice(index2, 1)
if (item2.webId != null) {
this.shiftInfoDelList.push(item.webId)
this.shiftInfoDelList.push(item2.webId)
this.shiftInfoDelList = Array.from(new Set(this.shiftInfoDelList))
}
},
@ -706,8 +700,7 @@
//
save() {
let date = new Date().getTime()
let contactId = this.shipObj[0].webId
console.log(contactId)
let contactId = this.shipInfo.webId
let webStatus = "0"
let editStatus = 1
if (this.obj.state == "edit") {
@ -735,19 +728,19 @@
let sql2 = `insert into workMessageRespInfoList values('${webId2}','${this.ulList1[i].webId}','${this.ulList1[i].ulList2[j].carType}',
'${this.ulList1[i].ulList2[j].carTypeName}','${this.ulList1[i].ulList2[j].goodsNumber}','${this.ulList1[i].ulList2[j].loadingType}',
'${this.ulList1[i].ulList2[j].loadingTypeName}','${this.ulList1[i].ulList2[j].remark}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.vslCnname}','${webStatus}','${webDate}')`
this.executeSql(sql2)
}
}
} else {
let webId = uuidv4()
let webDate = api.getDate(date)
let sql = `insert into workMessageRespList values('${webId}','${contactId}','${this.hcValue}',
let sql = `insert into workMessageRespList values('${webId}','${contactId}','${this.aId}','${this.hcValue}',
'${this.hcTextValue}','${this.zxValue}','${this.zxTextValue}','${this.ulList1[i].gbValue}',
'${this.ulList1[i].gbTextValue}','${this.ulList1[i].startTime}','${this.ulList1[i].endTime}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
for (let j = 0; j < this.ulList1[i].ulList2.length; j++) {
@ -764,8 +757,8 @@
let sql2 = `insert into workMessageRespInfoList values('${webId2}','${webId}','${this.ulList1[i].ulList2[j].carType}',
'${this.ulList1[i].ulList2[j].carTypeName}','${this.ulList1[i].ulList2[j].goodsNumber}','${this.ulList1[i].ulList2[j].loadingType}',
'${this.ulList1[i].ulList2[j].loadingTypeName}','${this.ulList1[i].ulList2[j].remark}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.vslCnname}','${webStatus}','${webDate}')`
this.executeSql(sql2)
}
}
@ -790,12 +783,12 @@
this.executeSql(sql)
} else {
let sql =
`insert into retallyMessageRespList values('${webId}','${this.fcUlList[i].contactId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
`insert into retallyMessageRespList values('${webId}','${this.fcUlList[i].contactId}','${this.aId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
'${this.fcUlList[i].fcTextValue}','${this.fcUlList[i].fcUlList2[j].qdValue}','${this.fcUlList[i].fcUlList2[j].zdValue}',
'${this.fcUlList[i].fcUlList2[j].startTime}','${this.fcUlList[i].fcUlList2[j].endTime}','${this.fcUlList[i].fcUlList2[j].carType}',
'${this.fcUlList[i].fcUlList2[j].carTypeName}','${this.fcUlList[i].fcUlList2[j].goodsNumber}','${this.fcUlList[i].fcUlList2[j].tjValue}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${editStatus}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
@ -805,12 +798,12 @@
let webId = uuidv4()
let webDate = api.getDate(date)
let sql =
`insert into retallyMessageRespList values('${webId}','${contactId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
`insert into retallyMessageRespList values('${webId}','${contactId}','${this.aId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
'${this.fcUlList[i].fcTextValue}','${this.fcUlList[i].fcUlList2[j].qdValue}','${this.fcUlList[i].fcUlList2[j].zdValue}',
'${this.fcUlList[i].fcUlList2[j].startTime}','${this.fcUlList[i].fcUlList2[j].endTime}','${this.fcUlList[i].fcUlList2[j].carType}',
'${this.fcUlList[i].fcUlList2[j].carTypeName}','${this.fcUlList[i].fcUlList2[j].goodsNumber}','${this.fcUlList[i].fcUlList2[j].tjValue}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${editStatus}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
@ -843,14 +836,15 @@
})
} else if (this.obj.state == "add") {
//
let aId = uuidv4()
for (let i = 0; i < this.ulList1.length; i++) {
let webId = uuidv4()
let webDate = api.getDate(date)
let sql = `insert into workMessageRespList values('${webId}','${contactId}','${this.hcValue}',
let sql = `insert into workMessageRespList values('${webId}','${contactId}','${aId}','${this.hcValue}',
'${this.hcTextValue}','${this.zxValue}','${this.zxTextValue}','${this.ulList1[i].gbValue}',
'${this.ulList1[i].gbTextValue}','${this.ulList1[i].startTime}','${this.ulList1[i].endTime}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
for (let j = 0; j < this.ulList1[i].ulList2.length; j++) {
@ -859,8 +853,8 @@
let sql2 = `insert into workMessageRespInfoList values('${webId2}','${webId}','${this.ulList1[i].ulList2[j].carType}',
'${this.ulList1[i].ulList2[j].carTypeName}','${this.ulList1[i].ulList2[j].goodsNumber}','${this.ulList1[i].ulList2[j].loadingType}',
'${this.ulList1[i].ulList2[j].loadingTypeName}','${this.ulList1[i].ulList2[j].remark}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
'${this.shipInfo.vslCnname}','${webStatus}','${webDate}')`
this.executeSql(sql2)
}
}
@ -870,12 +864,12 @@
let webId = uuidv4()
let webDate = api.getDate(date)
let sql =
`insert into retallyMessageRespList values('${webId}','${contactId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
`insert into retallyMessageRespList values('${webId}','${contactId}','${aId}','${this.hcValue}','${this.hcTextValue}','${this.fcUlList[i].fcValue}',
'${this.fcUlList[i].fcTextValue}','${this.fcUlList[i].fcUlList2[j].qdValue}','${this.fcUlList[i].fcUlList2[j].zdValue}',
'${this.fcUlList[i].fcUlList2[j].startTime}','${this.fcUlList[i].fcUlList2[j].endTime}','${this.fcUlList[i].fcUlList2[j].carType}',
'${this.fcUlList[i].fcUlList2[j].carTypeName}','${this.fcUlList[i].fcUlList2[j].goodsNumber}','${this.fcUlList[i].fcUlList2[j].tjValue}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.fcUlList[i].fcUlList2[j].zlValue}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${editStatus}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
@ -884,11 +878,11 @@
let webId = uuidv4()
let webDate = api.getDate(date)
let sql =
`insert into infoRespList values('${webId}','${contactId}','${this.hcValue}','${this.hcTextValue}','${this.otherObj.jsworker}',
`insert into infoRespList values('${webId}','${contactId}','${aId}','${this.hcValue}','${this.hcTextValue}','${this.otherObj.jsworker}',
'${this.otherObj.startTime}','${this.otherObj.endTime}','${this.otherObj.zlValue}','${this.otherObj.tjValue}','${this.otherObj.ptworker}',
'${this.otherObj.startTime2}','${this.otherObj.endTime2}','${this.otherObj.zlValue2}','${this.otherObj.tjValue2}','${this.otherObj.describe}',
'${this.otherObj.dgWork}','${this.otherObj.remark}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.otherObj.dgWork}','${this.otherObj.remark}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.vslCnname}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
}
@ -900,7 +894,6 @@
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
// console.log(value)
}).catch((error) => {
// reject
console.error(error);

View File

@ -180,17 +180,19 @@
otherList: {},
shiftRowIndex: 0,
contactId: "",
aId: "",
}
},
mounted() {
this.dataInfo = uni.getStorageSync('shiftRow')
this.contactId = this.dataInfo[0].contactId
this.aId = this.dataInfo[0].aId
this.initData()
},
methods: {
//
executeSql1(tableName) {
let sql = `select * from ${tableName} WHERE contactId = '${this.contactId}';`
let sql = `select * from ${tableName} WHERE aId = '${this.aId}';`
sqlite.executeSqlCeshi(sql).then((value) => {
if (tableName == 'workMessageRespList') {
this.shiftInfo = []
@ -253,10 +255,14 @@
},
//
executeSql(tableName) {
let sql = `DELETE FROM ${tableName} WHERE contactId = '${this.contactId}';`
let sql = ""
if(tableName == "workMessageRespInfoList"){
sql = `DELETE FROM ${tableName} WHERE contactId = '${this.contactId}';`
}else{
sql = `DELETE FROM ${tableName} WHERE aId = '${this.aId}';`
}
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
console.log(value);
}).catch((error) => {
// reject
console.error(error);

View File

@ -32,13 +32,15 @@
ctx: '', //
points: [], //,
width: 0,
height: 0
height: 0,
sginType: ""
};
},
mounted() {},
onLoad(option) {
this.sginType = JSON.parse(decodeURIComponent(option.dataType)).signType
console.log(this.sginType)
that = this;
console.log(option);
id = option.id;
type = option.type;
this.ctx = uni.createCanvasContext('mycanvas', this); //
@ -143,7 +145,7 @@
console.log(tempPath, '压缩前')
//
utils.compress(tempPath, 500, 0.3).then(res => {
console.log(res);
console.log(res, '压缩后');
}); //conpress; //conpress
const ctx = uni.createCanvasContext('camCacnvs', that);
ctx.translate(0, that.width);

View File

@ -1,5 +1,6 @@
<template>
<view class="supply">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,11 +8,25 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">类型{{item.supplyType}}</view>
<p>状态未上传</p>
<p>航次{{item.vvyName}}</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>类型{{item.supplyType}}</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>日期{{item.supplyDate}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -26,6 +41,7 @@
export default {
data() {
return {
title: "船名-供给",
shipInfo: {},
infoList: []
}
@ -42,7 +58,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -50,8 +65,12 @@
},
//
sign() {
const objType = {
signType: "supply"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -80,6 +99,12 @@
<style lang="less" scoped>
.supply {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -98,25 +123,96 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -125,6 +221,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -67,13 +67,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
supplyRow: {},
supplyRowIndex: 0,
@ -108,6 +102,7 @@
this.getRow()
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -115,8 +110,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -124,7 +123,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -245,8 +244,8 @@
`insert into shipmentShipSupplyRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.stopBerthage}','${this.stopBerthageName}','${this.supplyTypeId}',
'${this.supplyType}','${this.supplyAmount}','${this.supplyDate}',
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
}

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -19,11 +19,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -75,13 +75,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
untieRow: {},
untieRowIndex: 0,
@ -103,7 +97,7 @@
shiftingBerthTime: [''],
//
noProductBerthTime: [''],
//
optionData: [],
}
@ -119,6 +113,7 @@
this.getRow()
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -126,8 +121,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -135,7 +134,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -246,8 +245,8 @@
} else if (this.obj.state == "add") {
let sql =
`insert into attachUnmoorRespList values('${webId}','${this.zlShip}','${this.vvyId}','${this.vvyName}',
'${this.bthId}','${this.bthIdName}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.bthId}','${this.bthIdName}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
'${this.attachTime}','${this.unmoorTime}','${this.shiftingBerthTime}','${this.noProductBerthTime}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
@ -266,7 +265,6 @@
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
console.log(value);
}).catch((error) => {
// reject
console.error(error);

View File

@ -1,5 +1,6 @@
<template>
<view class="untieCord">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,12 +8,26 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">航次{{item.vvyName}}</view>
<p>状态未上传</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>泊位{{item.bthIdName}}</p>
<p>系缆时间{{item.attachTime}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>泊位{{item.bthIdName}}</p>
<p>系缆时间{{item.attachTime}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -27,6 +42,7 @@
export default {
data() {
return {
title: "船名-系解缆",
shipInfo: {},
infoList: []
}
@ -50,8 +66,12 @@
},
//
sign() {
const objType = {
signType: "untieCord"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -80,6 +100,12 @@
<style lang="less" scoped>
.untieCord {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -98,33 +124,113 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 49%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.shift {
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
font-size: 16px;
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
display: flex;
flex-direction: column;
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -1,5 +1,6 @@
<template>
<view class="workAssign">
<head-view :title="title"></head-view>
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
@ -7,11 +8,24 @@
<template v-if="infoList.length > 0">
<view class="ul">
<view class="li" v-for="(item,index) in infoList" :key="index" @click="add('look',item,index)">
<view class="title">航次{{item.vvyName}}</view>
<p>状态未上传</p>
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业时间{{item.startTime}} - {{item.endTime}}</p>
<view class="title">
<image src="../../static/images/shipWork/hc.png" mode=""></image>
<text>航次{{item.vvyName}}</text>
</view>
<view class="liInfo">
<p>进出口{{item.importExportFlagName}}</p>
<p>贸易类型{{item.tradeTypeName}}</p>
<p>作业时间{{item.startTime}} - {{item.endTime}}</p>
</view>
<view class="status didNot">
<p>未上传</p>
</view>
<!-- <view class="status success">
<p>已上传</p>
</view>
<view class="status fail">
<p>上传失败</p>
</view> -->
</view>
</view>
</template>
@ -26,6 +40,7 @@
export default {
data() {
return {
title: "船名-指导员作业布置",
shipInfo: {},
infoList: []
}
@ -42,7 +57,6 @@
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.infoList = value
console.log(this.infoList)
}).catch((error) => {
// reject
console.error(error);
@ -50,8 +64,12 @@
},
//
sign() {
const objType = {
signType: "workAssign"
}
const dataType = encodeURIComponent(JSON.stringify(objType));
uni.navigateTo({
url: '/pages/shipWork/sign'
url: `/pages/shipWork/sign?dataType=${dataType}`
})
},
//
@ -80,6 +98,12 @@
<style lang="less" scoped>
.workAssign {
.headInfo {
/deep/.uniui-bottom {
display: none;
}
}
.container {
padding: 30px 20px;
@ -98,25 +122,100 @@
.ul {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
.li {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
width: 33%;
padding: 16px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 8px;
position: relative;
margin-bottom: 10px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
text {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 8px;
}
image {
width: 32px;
height: 32px;
}
}
.liInfo {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
p {
width: 49%;
margin-bottom: 12px;
text {
font-weight: bold;
}
}
p:last-child {
width: 100%;
}
}
.status {
padding: 5px;
position: absolute;
top: 16px;
right: 16px;
}
.didNot {
background-color: #FFF7EE;
color: #FC8300;
}
.success {
background: #F1F8FF;
color: #0067CF;
}
.fail {
background: #FFF0F0;
color: #E50101;
}
.shift {
p {
font-size: 16px;
display: flex;
padding: 16px 4px;
background-color: #f7f7f7;
margin: 5px 0;
text:first-child {
color: #0067CF;
margin: 0 12px;
}
.text {
color: #999;
}
.time {
color: #23262E;
margin-top: 3px;
margin-right: 15px;
}
}
.state {
@ -125,6 +224,14 @@
justify-content: center;
}
}
.li:nth-of-type(3n - 1) {
margin: 0 0.5% 10px;
}
/deep/.o-empty {
width: 100%;
}
}
.addBtn {

View File

@ -4,7 +4,7 @@
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
<text>{{shipInfo.vslCnname}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -14,11 +14,11 @@
</view>
<view class="li">
<p>进出口</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
<text>{{shipInfo.importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text></p>
@ -83,13 +83,7 @@
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
shipInfo: {},
obj: {},
assignRow: {},
assignRowIndex: {},
@ -135,6 +129,7 @@
this.getRow();
}
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
},
methods: {
//
@ -142,8 +137,12 @@
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// resolve
this.optionData = value
this.getShip()
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
}
}).catch((error) => {
// reject
console.error(error);
@ -151,7 +150,7 @@
},
//
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// this.shipInfo = uni.getStorageSync('shipInfo')
//
let hcOption = []
this.optionData.forEach((v, index) => {
@ -208,7 +207,6 @@
//
getRow() {
this.assignRow = uni.getStorageSync('assignRow');
console.log(this.assignRow)
this.assignRowIndex = uni.getStorageSync('assignRowIndex');
this.vvyId = this.assignRow.vvyId
this.vvyName = this.assignRow.vvyName
@ -304,8 +302,8 @@
let sql = `insert into shipmentAdviserLayoutRespList values('${webId}','${this.vvyId}','${this.vvyName}',
'${this.bthId}','${this.bthIdName}','${this.pwcTypeId}','${this.pwcType}','${this.personNumber}',
'${this.loaderTypeId}','${this.loaderType}','${this.vehicleSize}','${this.sparePart}','${this.workTime}',
'${this.startTime}','${this.endTime}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.startTime}','${this.endTime}','${this.shipInfo.tradeTypeName}',
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,18 @@
## 1.2.12022-09-05
- 新增 属性 fontSize可修改文字大小。
## 1.2.02021-11-19
- 优化 组件UI并提供设计资源详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar)
## 1.1.12021-11-09
- 新增 提供组件设计资源,组件样式调整
## 1.1.02021-07-30
- 组件兼容 vue3如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.0.92021-05-12
- 新增 组件示例地址
## 1.0.82021-04-21
- 优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.72021-02-05
- 优化 组件引用关系通过uni_modules引用组件
## 1.0.62021-02-05
- 调整为uni_modules目录规范

View File

@ -0,0 +1,426 @@
<template>
<view v-if="show" class="uni-noticebar" :style="{ backgroundColor }" @click="onClick">
<uni-icons v-if="showIcon === true || showIcon === 'true'" class="uni-noticebar-icon" type="sound"
:color="color" :size="fontSize * 1.5" />
<view ref="textBox" class="uni-noticebar__content-wrapper"
:class="{
'uni-noticebar__content-wrapper--scrollable': scrollable,
'uni-noticebar__content-wrapper--single': !scrollable && (single || moreText)
}"
:style="{ height: scrollable ? fontSize * 1.5 + 'px' : 'auto' }"
>
<view :id="elIdBox" class="uni-noticebar__content"
:class="{
'uni-noticebar__content--scrollable': scrollable,
'uni-noticebar__content--single': !scrollable && (single || moreText)
}"
>
<text :id="elId" ref="animationEle" class="uni-noticebar__content-text"
:class="{
'uni-noticebar__content-text--scrollable': scrollable,
'uni-noticebar__content-text--single': !scrollable && (single || showGetMore)
}"
:style="{
color: color,
fontSize: fontSize + 'px',
lineHeight: fontSize * 1.5 + 'px',
width: wrapWidth + 'px',
'animationDuration': animationDuration,
'-webkit-animationDuration': animationDuration,
animationPlayState: webviewHide ? 'paused' : animationPlayState,
'-webkit-animationPlayState': webviewHide ? 'paused' : animationPlayState,
animationDelay: animationDelay,
'-webkit-animationDelay': animationDelay
}"
>{{text}}</text>
</view>
</view>
<view v-if="isShowGetMore" class="uni-noticebar__more uni-cursor-point"
@click="clickMore">
<text v-if="moreText.length > 0" :style="{ color: moreColor, fontSize: fontSize + 'px' }">{{ moreText }}</text>
<uni-icons v-else type="right" :color="moreColor" :size="fontSize * 1.1" />
</view>
<view class="uni-noticebar-close uni-cursor-point" v-if="isShowClose">
<uni-icons type="closeempty" :color="color" :size="fontSize * 1.1" @click="close" />
</view>
</view>
</template>
<script>
// #ifdef APP-NVUE
const dom = weex.requireModule('dom');
const animation = weex.requireModule('animation');
// #endif
/**
* NoticeBar 自定义导航栏
* @description 通告栏组件
* @tutorial https://ext.dcloud.net.cn/plugin?id=30
* @property {Number} speed 文字滚动的速度默认100px/
* @property {String} text 显示文字
* @property {String} backgroundColor 背景颜色
* @property {String} color 文字颜色
* @property {String} moreColor 查看更多文字的颜色
* @property {String} moreText 设置查看更多的文本
* @property {Boolean} single = [true|false] 是否单行
* @property {Boolean} scrollable = [true|false] 是否滚动为true时NoticeBar为单行
* @property {Boolean} showIcon = [true|false] 是否显示左侧喇叭图标
* @property {Boolean} showClose = [true|false] 是否显示左侧关闭按钮
* @property {Boolean} showGetMore = [true|false] 是否显示右侧查看更多图标为true时NoticeBar为单行
* @event {Function} click 点击 NoticeBar 触发事件
* @event {Function} close 关闭 NoticeBar 触发事件
* @event {Function} getmore 点击查看更多时触发事件
*/
export default {
name: 'UniNoticeBar',
emits: ['click', 'getmore', 'close'],
props: {
text: {
type: String,
default: ''
},
moreText: {
type: String,
default: ''
},
backgroundColor: {
type: String,
default: '#FFF9EA'
},
speed: {
// 1s100px
type: Number,
default: 100
},
color: {
type: String,
default: '#FF9A43'
},
fontSize: {
type: Number,
default: 14
},
moreColor: {
type: String,
default: '#FF9A43'
},
single: {
//
type: [Boolean, String],
default: false
},
scrollable: {
//
type: [Boolean, String],
default: false
},
showIcon: {
// icon
type: [Boolean, String],
default: false
},
showGetMore: {
//
type: [Boolean, String],
default: false
},
showClose: {
//
type: [Boolean, String],
default: false
}
},
data() {
const elId = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}`
const elIdBox = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}`
return {
textWidth: 0,
boxWidth: 0,
wrapWidth: '',
webviewHide: false,
// #ifdef APP-NVUE
stopAnimation: false,
// #endif
elId: elId,
elIdBox: elIdBox,
show: true,
animationDuration: 'none',
animationPlayState: 'paused',
animationDelay: '0s'
}
},
computed: {
isShowGetMore() {
return this.showGetMore === true || this.showGetMore === 'true'
},
isShowClose() {
return (this.showClose === true || this.showClose === 'true')
&& (this.showGetMore === false || this.showGetMore === 'false')
}
},
mounted() {
// #ifdef APP-PLUS
var pages = getCurrentPages();
var page = pages[pages.length - 1];
var currentWebview = page.$getAppWebview();
currentWebview.addEventListener('hide', () => {
this.webviewHide = true
})
currentWebview.addEventListener('show', () => {
this.webviewHide = false
})
// #endif
this.$nextTick(() => {
this.initSize()
})
},
// #ifdef APP-NVUE
beforeDestroy() {
this.stopAnimation = true
},
// #endif
methods: {
initSize() {
if (this.scrollable) {
// #ifndef APP-NVUE
let query = [],
boxWidth = 0,
textWidth = 0;
let textQuery = new Promise((resolve, reject) => {
uni.createSelectorQuery()
// #ifndef MP-ALIPAY
.in(this)
// #endif
.select(`#${this.elId}`)
.boundingClientRect()
.exec(ret => {
this.textWidth = ret[0].width
resolve()
})
})
let boxQuery = new Promise((resolve, reject) => {
uni.createSelectorQuery()
// #ifndef MP-ALIPAY
.in(this)
// #endif
.select(`#${this.elIdBox}`)
.boundingClientRect()
.exec(ret => {
this.boxWidth = ret[0].width
resolve()
})
})
query.push(textQuery)
query.push(boxQuery)
Promise.all(query).then(() => {
this.animationDuration = `${this.textWidth / this.speed}s`
this.animationDelay = `-${this.boxWidth / this.speed}s`
setTimeout(() => {
this.animationPlayState = 'running'
}, 1000)
})
// #endif
// #ifdef APP-NVUE
dom.getComponentRect(this.$refs['animationEle'], (res) => {
let winWidth = uni.getSystemInfoSync().windowWidth
this.textWidth = res.size.width
animation.transition(this.$refs['animationEle'], {
styles: {
transform: `translateX(-${winWidth}px)`
},
duration: 0,
timingFunction: 'linear',
delay: 0
}, () => {
if (!this.stopAnimation) {
animation.transition(this.$refs['animationEle'], {
styles: {
transform: `translateX(-${this.textWidth}px)`
},
timingFunction: 'linear',
duration: (this.textWidth - winWidth) / this.speed * 1000,
delay: 1000
}, () => {
if (!this.stopAnimation) {
this.loopAnimation()
}
});
}
});
})
// #endif
}
// #ifdef APP-NVUE
if (!this.scrollable && (this.single || this.moreText)) {
dom.getComponentRect(this.$refs['textBox'], (res) => {
this.wrapWidth = res.size.width
})
}
// #endif
},
loopAnimation() {
// #ifdef APP-NVUE
animation.transition(this.$refs['animationEle'], {
styles: {
transform: `translateX(0px)`
},
duration: 0
}, () => {
if (!this.stopAnimation) {
animation.transition(this.$refs['animationEle'], {
styles: {
transform: `translateX(-${this.textWidth}px)`
},
duration: this.textWidth / this.speed * 1000,
timingFunction: 'linear',
delay: 0
}, () => {
if (!this.stopAnimation) {
this.loopAnimation()
}
});
}
});
// #endif
},
clickMore() {
this.$emit('getmore')
},
close() {
this.show = false;
this.$emit('close')
},
onClick() {
this.$emit('click')
}
}
}
</script>
<style lang="scss" scoped>
.uni-noticebar {
/* #ifndef APP-NVUE */
display: flex;
width: 100%;
box-sizing: border-box;
/* #endif */
flex-direction: row;
align-items: center;
padding: 10px 12px;
margin-bottom: 10px;
}
.uni-cursor-point {
/* #ifdef H5 */
cursor: pointer;
/* #endif */
}
.uni-noticebar-close {
margin-left: 8px;
margin-right: 5px;
}
.uni-noticebar-icon {
margin-right: 5px;
}
.uni-noticebar__content-wrapper {
flex: 1;
flex-direction: column;
overflow: hidden;
}
.uni-noticebar__content-wrapper--single {
/* #ifndef APP-NVUE */
line-height: 18px;
/* #endif */
}
.uni-noticebar__content-wrapper--single,
.uni-noticebar__content-wrapper--scrollable {
flex-direction: row;
}
/* #ifndef APP-NVUE */
.uni-noticebar__content-wrapper--scrollable {
position: relative;
}
/* #endif */
.uni-noticebar__content--scrollable {
/* #ifdef APP-NVUE */
flex: 0;
/* #endif */
/* #ifndef APP-NVUE */
flex: 1;
display: block;
overflow: hidden;
/* #endif */
}
.uni-noticebar__content--single {
/* #ifndef APP-NVUE */
display: flex;
flex: none;
width: 100%;
justify-content: center;
/* #endif */
}
.uni-noticebar__content-text {
font-size: 14px;
line-height: 18px;
/* #ifndef APP-NVUE */
word-break: break-all;
/* #endif */
}
.uni-noticebar__content-text--single {
/* #ifdef APP-NVUE */
lines: 1;
/* #endif */
/* #ifndef APP-NVUE */
display: block;
width: 100%;
white-space: nowrap;
/* #endif */
overflow: hidden;
text-overflow: ellipsis;
}
.uni-noticebar__content-text--scrollable {
/* #ifdef APP-NVUE */
lines: 1;
padding-left: 750rpx;
/* #endif */
/* #ifndef APP-NVUE */
position: absolute;
display: block;
height: 18px;
line-height: 18px;
white-space: nowrap;
padding-left: 100%;
animation: notice 10s 0s linear infinite both;
animation-play-state: paused;
/* #endif */
}
.uni-noticebar__more {
/* #ifndef APP-NVUE */
display: inline-flex;
/* #endif */
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
padding-left: 5px;
}
@keyframes notice {
100% {
transform: translate3d(-100%, 0, 0);
}
}
</style>

View File

@ -0,0 +1,87 @@
{
"id": "uni-notice-bar",
"displayName": "uni-notice-bar 通告栏",
"version": "1.2.1",
"description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告",
"keywords": [
"uni-ui",
"uniui",
"通告栏",
"公告",
"跑马灯"
],
"repository": "https://github.com/dcloudio/uni-ui",
"engines": {
"HBuilderX": ""
},
"directories": {
"example": "../../temps/example_temps"
},
"dcloudext": {
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "无"
},
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
"type": "component-vue"
},
"uni_modules": {
"dependencies": [
"uni-scss",
"uni-icons"
],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"App": {
"app-vue": "y",
"app-nvue": "y"
},
"H5-mobile": {
"Safari": "y",
"Android Browser": "y",
"微信浏览器(Android)": "y",
"QQ浏览器(Android)": "y"
},
"H5-pc": {
"Chrome": "y",
"IE": "y",
"Edge": "y",
"Firefox": "y",
"Safari": "y"
},
"小程序": {
"微信": "y",
"阿里": "y",
"百度": "y",
"字节跳动": "y",
"QQ": "y"
},
"快应用": {
"华为": "u",
"联盟": "u"
},
"Vue": {
"vue2": "y",
"vue3": "y"
}
}
}
}
}

View File

@ -0,0 +1,13 @@
## NoticeBar 通告栏
> **组件名uni-notice-bar**
> 代码块: `uNoticeBar`
通告栏组件 。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar)
#### 如使用过程中有任何问题或者您对uni-ui有一些好的建议欢迎加入 uni-ui 交流群871950839