样式修改,逻辑修改 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,
|
||||
|
@ -108,7 +102,7 @@
|
|||
loaderTypeId: "",
|
||||
loaderType: "",
|
||||
zxList: [],
|
||||
|
||||
|
||||
// 下拉数据
|
||||
optionData: [],
|
||||
}
|
||||
|
@ -124,6 +118,7 @@
|
|||
this.getRow();
|
||||
}
|
||||
this.executeSql1('shipOption')
|
||||
this.executeSql1("shipInfoTable")
|
||||
},
|
||||
methods: {
|
||||
// 查
|
||||
|
@ -131,8 +126,12 @@
|
|||
let sql = `select * from ${tableName}`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
if (tableName == 'shipOption') {
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
} else if (tableName == 'shipInfoTable') {
|
||||
this.shipInfo = value[0]
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
|
@ -140,7 +139,7 @@
|
|||
},
|
||||
// 获取船只信息
|
||||
getShip() {
|
||||
this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// 航次下拉数据
|
||||
let hcOption = []
|
||||
this.optionData.forEach((v, index) => {
|
||||
|
@ -247,8 +246,8 @@
|
|||
} else if (this.obj.state == "add") {
|
||||
let sql = `insert into mafiListRespList values('${webId}','${this.vvyId}','${this.vvyName}',
|
||||
'${this.loaderTypeId}','${this.loaderType}','${this.typeId}','${this.type}','${this.size}','${this.mafiBarcode}','${this.workDate}',
|
||||
'${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
|
||||
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
|
||||
'${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
|
||||
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
|
||||
this.executeSql(sql)
|
||||
}
|
||||
uni.navigateTo({
|
||||
|
|
|
@ -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,
|
||||
|
@ -66,7 +60,7 @@
|
|||
hcList: [],
|
||||
// 作业时间
|
||||
workDate: [''],
|
||||
|
||||
|
||||
// 下拉数据
|
||||
optionData: [],
|
||||
}
|
||||
|
@ -82,6 +76,7 @@
|
|||
this.getRow();
|
||||
}
|
||||
this.executeSql1('shipOption')
|
||||
this.executeSql1("shipInfoTable")
|
||||
},
|
||||
methods: {
|
||||
// 查
|
||||
|
@ -89,8 +84,12 @@
|
|||
let sql = `select * from ${tableName}`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
if (tableName == 'shipOption') {
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
} else if (tableName == 'shipInfoTable') {
|
||||
this.shipInfo = value[0]
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
|
@ -98,7 +97,7 @@
|
|||
},
|
||||
// 获取船只信息
|
||||
getShip() {
|
||||
this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// 航次下拉数据
|
||||
let hcOption = []
|
||||
this.optionData.forEach((v, index) => {
|
||||
|
@ -165,8 +164,8 @@
|
|||
this.executeSql(sql)
|
||||
} else if (this.obj.state == "add") {
|
||||
let sql = `insert into shipmentLoadUnloadNoticeRespList values('${webId}','${this.vvyId}','${this.vvyName}',
|
||||
'${this.workDate}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}','${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}',
|
||||
'${this.shipInfo.voyageScheduleDataList[0].spmName}','${webStatus}','${webDate}')`
|
||||
'${this.workDate}','${this.shipInfo.tradeTypeName}','${this.shipInfo.importExportFlagName}',
|
||||
'${this.shipInfo.spmName}','${webStatus}','${webDate}')`
|
||||
this.executeSql(sql)
|
||||
}
|
||||
uni.navigateTo({
|
||||
|
|
|
@ -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,
|
||||
|
@ -103,7 +97,7 @@
|
|||
shiftingBerthTime: [''],
|
||||
// 停泊时间
|
||||
noProductBerthTime: [''],
|
||||
|
||||
|
||||
// 下拉数据
|
||||
optionData: [],
|
||||
}
|
||||
|
@ -119,6 +113,7 @@
|
|||
this.getRow()
|
||||
}
|
||||
this.executeSql1('shipOption')
|
||||
this.executeSql1("shipInfoTable")
|
||||
},
|
||||
methods: {
|
||||
// 查
|
||||
|
@ -126,8 +121,12 @@
|
|||
let sql = `select * from ${tableName}`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
if (tableName == 'shipOption') {
|
||||
this.optionData = value
|
||||
this.getShip()
|
||||
} else if (tableName == 'shipInfoTable') {
|
||||
this.shipInfo = value[0]
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
|
@ -135,7 +134,7 @@
|
|||
},
|
||||
// 获取船只信息
|
||||
getShip() {
|
||||
this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// this.shipInfo = uni.getStorageSync('shipInfo')
|
||||
// 航次下拉数据
|
||||
let hcOption = []
|
||||
this.optionData.forEach((v, index) => {
|
||||
|
@ -246,8 +245,8 @@
|
|||
} else if (this.obj.state == "add") {
|
||||
let sql =
|
||||
`insert into attachUnmoorRespList values('${webId}','${this.zlShip}','${this.vvyId}','${this.vvyName}',
|
||||
'${this.bthId}','${this.bthIdName}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
|
||||
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
|
||||
'${this.bthId}','${this.bthIdName}','${this.shipInfo.tradeTypeName}',
|
||||
'${this.shipInfo.importExportFlagName}','${this.shipInfo.spmName}',
|
||||
'${this.attachTime}','${this.unmoorTime}','${this.shiftingBerthTime}','${this.noProductBerthTime}','${webStatus}','${webDate}')`
|
||||
this.executeSql(sql)
|
||||
}
|
||||
|
@ -266,7 +265,6 @@
|
|||
executeSql(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
console.log(value);
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
|
|
|
@ -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