样式修改,逻辑修改 8.23
parent
49baa9bc22
commit
9e12cc0161
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
})
|
||||
},
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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}`
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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,
|
||||
|
@ -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({
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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,
|
||||
|
@ -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({
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 |
|
@ -0,0 +1,18 @@
|
|||
## 1.2.1(2022-09-05)
|
||||
- 新增 属性 fontSize,可修改文字大小。
|
||||
## 1.2.0(2021-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.1(2021-11-09)
|
||||
- 新增 提供组件设计资源,组件样式调整
|
||||
## 1.1.0(2021-07-30)
|
||||
- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
|
||||
## 1.0.9(2021-05-12)
|
||||
- 新增 组件示例地址
|
||||
## 1.0.8(2021-04-21)
|
||||
- 优化 添加依赖 uni-icons, 导入后自动下载依赖
|
||||
## 1.0.7(2021-02-05)
|
||||
- 优化 组件引用关系,通过uni_modules引用组件
|
||||
|
||||
## 1.0.6(2021-02-05)
|
||||
- 调整为uni_modules目录规范
|
|
@ -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: {
|
||||
// 默认1s滚动100px
|
||||
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>
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
## NoticeBar 通告栏
|
||||
> **组件名:uni-notice-bar**
|
||||
> 代码块: `uNoticeBar`
|
||||
|
||||
|
||||
通告栏组件 。
|
||||
|
||||
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar)
|
||||
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
|
||||
|
||||
|
Loading…
Reference in New Issue