pad-app/pages/shipWork/mixWork.vue

247 lines
5.8 KiB
Vue
Raw Normal View History

2023-07-11 15:28:40 +08:00
<template>
<view class="mixWork">
<view class="container">
<view class="signBox">
<p class="sign" @click="sign"></p>
</view>
2023-07-11 15:28:40 +08:00
<view class="tabsList">
<view class="tabsBox" v-for="(item,index) in tabsList" :key="index" :class="{active:tabsIndex == index}"
@click="tabsClick(item,index)">{{item}}</view>
</view>
2023-07-11 17:29:53 +08:00
<!-- 人员信息列表 -->
2023-07-19 18:12:19 +08:00
<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>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
2023-07-18 17:37:15 +08:00
</view>
2023-07-11 17:29:53 +08:00
<!-- 工班信息列表 -->
2023-07-19 18:12:19 +08:00
<view class="ul" 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>
<view class="state">状态未上传</view>
2023-07-11 15:28:40 +08:00
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
2023-07-18 17:37:15 +08:00
</view>
2023-07-11 17:29:53 +08:00
<view class="addBtn" @click="add('add')">+ </view>
2023-07-11 15:28:40 +08:00
</view>
</view>
</template>
<script>
2023-08-01 09:32:45 +08:00
import sqlite from "../../common/sqlite.js"
2023-07-11 15:28:40 +08:00
export default {
data() {
return {
2023-07-18 17:37:15 +08:00
shipInfo: [],
2023-07-11 15:28:40 +08:00
tabsList: ["人员信息", "工班信息"],
2023-07-19 18:12:19 +08:00
tabsType: 0, // 0是人员信息 1是工班信息
2023-07-11 15:28:40 +08:00
tabsIndex: 0,
2023-07-11 17:29:53 +08:00
// 人员信息列表
2023-07-18 17:37:15 +08:00
peopleInfo: [],
2023-07-11 17:29:53 +08:00
// 工班信息列表
shiftInfo: [],
2023-07-11 15:28:40 +08:00
}
},
2023-07-18 17:37:15 +08:00
mounted() {
2023-07-26 14:34:20 +08:00
this.tabsType = uni.getStorageSync('tabsType')
this.executeSql1('shipInfoTable')
2023-07-20 17:16:08 +08:00
if (this.tabsType != 0 && this.tabsType != 1) {
2023-07-19 18:12:19 +08:00
this.tabsType = 0
this.tabsIndex = 0
} else {
this.tabsIndex = this.tabsType
}
2023-08-01 09:32:45 +08:00
if (this.tabsType == 0) {
this.executeSql1('messageRespList')
2023-08-04 17:06:33 +08:00
} else {
this.executeSql1('workMessageRespList')
this.executeSql1('workMessageRespInfoList')
this.executeSql1('retallyMessageRespList')
this.executeSql1('infoRespList')
2023-08-01 09:32:45 +08:00
}
2023-07-17 17:10:05 +08:00
},
2023-07-11 15:28:40 +08:00
methods: {
2023-08-01 09:32:45 +08:00
// 查
2023-08-01 14:35:05 +08:00
executeSql1(tableName) {
let sql = `select * from ${tableName}`
2023-08-01 09:32:45 +08:00
sqlite.executeSqlCeshi(sql).then((value) => {
if (tableName == 'shipInfoTable') {
this.shipInfo = value
}
2023-08-01 09:32:45 +08:00
if (this.tabsType == 0) {
this.peopleInfo = value
2023-08-04 17:06:33 +08:00
} else {
// 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];
return res;
}, {}));
}
2023-08-01 09:32:45 +08:00
}
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
// 点击签名
sign() {
uni.navigateTo({
url: '/pages/shipWork/sign'
})
},
2023-07-11 15:28:40 +08:00
tabsClick(item, index) {
this.tabsIndex = index;
if (item == "人员信息") {
2023-07-19 18:12:19 +08:00
this.tabsType = 0;
2023-08-04 17:06:33 +08:00
this.executeSql1('messageRespList')
2023-07-11 15:28:40 +08:00
} else {
2023-07-19 18:12:19 +08:00
this.tabsType = 1;
2023-08-04 17:06:33 +08:00
this.executeSql1('workMessageRespList')
this.executeSql1('workMessageRespInfoList')
this.executeSql1('retallyMessageRespList')
this.executeSql1('infoRespList')
2023-07-11 15:28:40 +08:00
}
},
// 点击新增
2023-07-18 17:37:15 +08:00
add(state, item, index) {
2023-07-20 17:16:08 +08:00
if (state != 'add') {
uni.setStorageSync('peopleRow', item);
uni.setStorageSync('peopleRowIndex', index);
}
2023-07-18 17:37:15 +08:00
let obj = {
state: state
}
const params = encodeURIComponent(JSON.stringify(obj));
2023-07-19 18:12:19 +08:00
if (this.tabsType == 0) {
2023-07-11 17:29:53 +08:00
uni.navigateTo({
url: `/pages/shipWork/peopleAdd?params=${params}`
})
} else {
uni.navigateTo({
url: `/pages/shipWork/shiftAdd?params=${params}`
})
}
2023-07-11 15:28:40 +08:00
},
2023-07-19 18:12:19 +08:00
lookShift(item, index) {
console.log(item)
2023-07-19 18:12:19 +08:00
uni.setStorageSync('shiftRow', item);
2023-07-12 13:48:01 +08:00
uni.navigateTo({
url: `/pages/shipWork/shiftDetails`
})
2023-07-18 17:37:15 +08:00
},
2023-08-01 09:32:45 +08:00
onBackPress(event) {
2023-08-01 17:26:06 +08:00
uni.setStorageSync('tabsType', 0);
2023-08-01 09:32:45 +08:00
uni.navigateTo({
url: '/pages/shipWork/documentList'
})
return true;
},
2023-07-26 14:34:20 +08:00
},
2023-07-11 15:28:40 +08:00
}
</script>
<style lang="less" scoped>
.mixWork {
.container {
padding: 30px 20px;
.signBox {
display: flex;
justify-content: flex-end;
.sign {
text-align: right;
color: #2979ff;
padding: 10px;
background: #fff;
border: 1px solid #ccc;
}
}
2023-07-11 15:28:40 +08:00
.tabsList {
display: flex;
justify-content: center;
.tabsBox {
width: 100px;
height: 50px;
border-radius: 4px;
margin: 0px 10px;
border: 1px solid #ccc;
text-align: center;
line-height: 50px;
}
.active {
background: #2979ff;
color: #fff;
}
}
2023-07-18 17:37:15 +08:00
.ul {
2023-07-11 15:28:40 +08:00
padding: 20px 0;
2023-07-18 17:37:15 +08:00
.li {
2023-07-11 15:28:40 +08:00
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ccc;
padding: 20px;
.title {
font-size: 16px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
}
.shift {
p {
font-size: 16px;
}
}
.state {
display: flex;
flex-direction: column;
justify-content: center;
}
}
}
.addBtn {
position: fixed;
right: 50px;
bottom: 50px;
width: 100px;
height: 100px;
border-radius: 50%;
background-color: #2979ff;
color: #fff;
font-size: 24px;
text-align: center;
line-height: 100px;
font-weight: bold;
}
}
}
</style>