|
@@ -124,14 +124,37 @@
|
|
|
disabled
|
|
disabled
|
|
|
></el-input>
|
|
></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="info-line">
|
|
|
|
|
- <div class="info-line-title">卸货港</div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="line">
|
|
|
|
|
+ <div class="info-line" v-for="(item, index) in voyage.voyageDetails">
|
|
|
|
|
+ <div class="info-line-title">卸货港{{ " # " + (index + 1) }}</div>
|
|
|
<el-input
|
|
<el-input
|
|
|
class="info-line-text"
|
|
class="info-line-text"
|
|
|
- v-model="voyage.dischargePorts"
|
|
|
|
|
|
|
+ v-model="item.portName"
|
|
|
disabled
|
|
disabled
|
|
|
></el-input>
|
|
></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div class="info-line" v-if="!insertDiscPortVisable">
|
|
|
|
|
+ <el-button type="primary" @click="insertDiscPortVisable = true"
|
|
|
|
|
+ >添加提前卸货港</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="info-line" v-else>
|
|
|
|
|
+ <div class="info-line-title" style="width: 80px">提前卸货港</div>
|
|
|
|
|
+ <el-autocomplete
|
|
|
|
|
+ class="info-line-text mr20"
|
|
|
|
|
+ v-model="toInsertDiscPortValue"
|
|
|
|
|
+ :fetch-suggestions="getCol"
|
|
|
|
|
+ @blur="clear('toInsertDiscPortId')"
|
|
|
|
|
+ placeholder="选择卸货港"
|
|
|
|
|
+ @select="selectToInsertDiscProt($event)"
|
|
|
|
|
+ style="width: 120px !important"
|
|
|
|
|
+ />
|
|
|
|
|
+ <el-button type="primary" @click="addNewPort">确认添加</el-button>
|
|
|
|
|
+ <el-button type="default" @click="cancelInsertDiscPort"
|
|
|
|
|
+ >取消添加</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="line">
|
|
<div class="line">
|
|
|
<div class="info-line">
|
|
<div class="info-line">
|
|
@@ -256,7 +279,7 @@
|
|
|
></el-date-picker>
|
|
></el-date-picker>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-tabs v-model="currentPortId" type="border-card" class="demo-tabs">
|
|
|
|
|
|
|
+ <el-tabs v-model="currentPortId" type="border-card" class="demo-tabs mb20">
|
|
|
<el-tab-pane
|
|
<el-tab-pane
|
|
|
v-for="(item, index) in voyage.voyageDetails"
|
|
v-for="(item, index) in voyage.voyageDetails"
|
|
|
:label="item.portName + ' # ' + (index + 1)"
|
|
:label="item.portName + ' # ' + (index + 1)"
|
|
@@ -1604,7 +1627,10 @@ async function deleteDischarge(id, index) {
|
|
|
async function exportExcel() {}
|
|
async function exportExcel() {}
|
|
|
let dischargeCurrentPage = ref(1);
|
|
let dischargeCurrentPage = ref(1);
|
|
|
let dischargeList = ref([]);
|
|
let dischargeList = ref([]);
|
|
|
-let formInline = ref({});
|
|
|
|
|
|
|
+let formInline = ref({
|
|
|
|
|
+ dischargeTons: 0,
|
|
|
|
|
+ dischargePieces: 0,
|
|
|
|
|
+});
|
|
|
async function getDischargeList() {
|
|
async function getDischargeList() {
|
|
|
let res = await api.getDischargeList({
|
|
let res = await api.getDischargeList({
|
|
|
voyageId: route.query.id,
|
|
voyageId: route.query.id,
|
|
@@ -2501,6 +2527,64 @@ function changeDiscPortTab(e) {
|
|
|
getPortWeatherList();
|
|
getPortWeatherList();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+let toInsertDiscPortId = ref("");
|
|
|
|
|
+let toInsertDiscPortValue = ref("");
|
|
|
|
|
+let getCol = _.debounce(
|
|
|
|
|
+ async (queryString, cb) => {
|
|
|
|
|
+ if (!queryString) return;
|
|
|
|
|
+ let res = await api.getCol({
|
|
|
|
|
+ term: queryString,
|
|
|
|
|
+ });
|
|
|
|
|
+ if (res.data.status == 0) {
|
|
|
|
|
+ cb(res.data.result);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ 1000,
|
|
|
|
|
+ { leading: true }
|
|
|
|
|
+);
|
|
|
|
|
+function clear(type) {
|
|
|
|
|
+ toInsertDiscPortId.value = "";
|
|
|
|
|
+ toInsertDiscPortValue.value = "";
|
|
|
|
|
+}
|
|
|
|
|
+let selectToInsertDiscProt = (item, index) => {
|
|
|
|
|
+ console.log(item);
|
|
|
|
|
+ toInsertDiscPortId.value = item.key;
|
|
|
|
|
+ toInsertDiscPortValue.value = item.value;
|
|
|
|
|
+};
|
|
|
|
|
+let insertDiscPortVisable = ref(false);
|
|
|
|
|
+async function addNewPort() {
|
|
|
|
|
+ if (!toInsertDiscPortId.value || !toInsertDiscPortValue.value) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: "请选择提前卸货港!",
|
|
|
|
|
+ type: "warning",
|
|
|
|
|
+ });
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ let res = await api.addNewPort({
|
|
|
|
|
+ voyageId: route.query.id,
|
|
|
|
|
+ portId: toInsertDiscPortId.value,
|
|
|
|
|
+ });
|
|
|
|
|
+ if (res.data.status == 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: "添加提前卸货港成功!",
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ });
|
|
|
|
|
+ getVoyageDetail(true);
|
|
|
|
|
+ cancelInsertDiscPort();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: res.data.msg,
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function cancelInsertDiscPort() {
|
|
|
|
|
+ insertDiscPortVisable.value = false;
|
|
|
|
|
+ toInsertDiscPortId.value = "";
|
|
|
|
|
+ toInsertDiscPortValue.value = "";
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
getVoyageDetail(true);
|
|
getVoyageDetail(true);
|
|
|
});
|
|
});
|
|
@@ -2686,4 +2770,13 @@ onMounted(() => {
|
|
|
line-height: 100%;
|
|
line-height: 100%;
|
|
|
margin: 0 10px;
|
|
margin: 0 10px;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.line {
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ margin: 0 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-line {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|