master
sunzehua 5 months ago
parent e5c026331c
commit 2e390eddb3

@ -1,9 +1,9 @@
NODE_ENV=production
VUE_APP_PREVIEW=true
# VUE_APP_TYPE = 'customer'
# VUE_APP_TYPE = 'hechuan'
VUE_APP_TYPE = 'hechuan'
# VUE_APP_TYPE = 'yunyingduan'
VUE_APP_TYPE = 'gangjie'
# VUE_APP_TYPE = 'gangjie'
# 打包部署的三个端 客户端customer 和川端hechuan 运营端djy
# 和川大简云正式

@ -1,9 +1,9 @@
NODE_ENV=development
VUE_APP_PREVIEW=true
# VUE_APP_TYPE = 'customer'
VUE_APP_TYPE = 'hechuan'
# VUE_APP_TYPE = 'hechuan'
# VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_TYPE = 'gangjie'
VUE_APP_TYPE = 'gangjie'
# 打包部署的三个端 客户端customer 和川端hechuan 运营端yunyingduan
# 和川大简云正式

@ -1449,6 +1449,14 @@ export function SearchShipSailingSchedule(parameter) {
})
}
export function SearchShipSailingScheduleSpot(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/SearchShipSailingSchedule',
method: 'post',
data: parameter
})
}
export function SearchLocations(parameter) {
return axios({
url: '/BookingMSKAPI/SearchLocations',
@ -1457,6 +1465,14 @@ export function SearchLocations(parameter) {
})
}
export function SearchLocationsSpot(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/SearchLocations',
method: 'post',
data: parameter
})
}
export function SendMSKBooking(parameter) {
return axios({
url: '/BookingMSKAPI/SendMSKBooking',
@ -1465,6 +1481,14 @@ export function SendMSKBooking(parameter) {
})
}
export function SendMSKBookingSpot(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/SendMSKBooking',
method: 'post',
data: parameter
})
}
export function mskGetPage(parameter) {
return axios({
url: '/BookingMSKAPI/GetPage',
@ -1489,6 +1513,14 @@ export function mskGetSave(parameter) {
})
}
export function mskGetSaveSpot(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/Save',
method: 'post',
data: parameter
})
}
export function mskGetGetInfo(parameter) {
return axios({
url: '/BookingMSKAPI/GetInfo',
@ -1497,6 +1529,14 @@ export function mskGetGetInfo(parameter) {
})
}
export function mskGetGetInfoSpot(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/GetInfo',
method: 'get',
params: parameter
})
}
export function GetBookingVGMResult(parameter) {
return axios({
url: '/BookingValueAdded/GetBookingVGMResult',
@ -1688,3 +1728,12 @@ export function CancelBook(parameter) {
params: parameter
})
}
export function GetInitInfoMsk(parameter) {
return axios({
url: '/BookingMSKSPOTAPI/GetInitInfo',
method: 'get',
params: parameter
})
}

@ -15,6 +15,7 @@
v-model="form.productCode"
style="width: 100%">
<a-select-option value="MaerskContract">MaerskContract</a-select-option>
<a-select-option value="MaerskSpot">MaerskSpot</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
@ -27,7 +28,7 @@
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-col :span="12" v-if="mskBookType == 'api'">
<a-form-model-item label="订舱合同唯一ID">
<a-select
:disabled="nodisabled"
@ -54,7 +55,7 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-row v-if="mskBookType == 'api'">
<a-col :span="12">
<a-form-model-item label="是否持约">
<a-switch @change="handleChangePrice" v-model="form.isBookingPartOwnPrice" />
@ -75,6 +76,7 @@
</a-form-model-item>
</a-col>
</a-row>
<div v-if="mskBookType == 'api'">
<a-row>
<a-col :span="12">
<a-form-model-item label="订舱公司名称">
@ -123,6 +125,57 @@
</a-form-model-item>
</a-col>
</a-row>
</div>
<div v-if="mskBookType == 'spot'">
<a-row>
<a-col :span="12">
<a-form-model-item label="订舱公司名称">
{{ mskSpotInfo.bookedByCompanyName }}
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="订舱方ID">
{{ mskSpotInfo.bookedMaerskByPartyCode }}
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-model-item label="订舱公司联系人">
{{ mskSpotInfo.bookedByPartyContactName }}
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="订舱公司邮箱">
{{ mskSpotInfo.bookedByPartyContactEmail }}
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-model-item label="持约方名称">
{{ mskSpotInfo.priceOwnerCompanyName }}
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="持约方ID">
{{ mskSpotInfo.priceOwnerMaerskPartyCode }}
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-model-item label="持约方联系人">
{{ mskSpotInfo.priceOwnerContactName }}
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="持约方邮箱">
{{ mskSpotInfo.priceOwnerContactEmail }}
</a-form-model-item>
</a-col>
</a-row>
</div>
<div class="title">地点船期详情</div>
<a-row>
<a-col :span="12">
@ -209,9 +262,12 @@
<div class="box" v-for="(item, index) in shipData" :key="index">
<div class="left" style="width: 100%;">
<div class="top">
<span class="top-text">{{ item.orignCityName }} </span>
<span class="top-text">{{ item.orignCityName }},{{ item.originRegionName }},{{ item.originCountryName }}</span>
<img style="margin: 0 15px;" src="../../assets/icons/u92.svg" alt="">
<span class="top-text">{{ item.deliveryCityName }}</span>
<span class="top-text">{{ item.deliveryCityName }},{{ item.deliveryRegionName }},{{ item.deliveryCountryName }}</span>
<span style="margin-left:30px;margin-right: 10px;color: black;">{{ item.shipRateTotalCurrency
}}</span>
<span style="color: black;">{{ item.shipRateTotalAmount }}</span>
</div>
<div class="bottom">
<div class="item">
@ -225,7 +281,7 @@
<div class="item-left"> <img src="../../assets/icons/u90.svg" alt=""> </div>
<div class="item-right">
<div>到港</div>
<div>{{ item.atd }}</div>
<div>{{ item.eta }}</div>
</div>
</div>
<div class="item">
@ -243,6 +299,20 @@
</div>
</div>
</div>
<div v-if="item.legs">
<div v-for="(ite, index1) in item.legs" :key="index1" style="margin-top: 10px;">
<a-tag color="green">{{ index1 + 1 }}</a-tag>
<img style="margin: 0 10px 0 0" src="../../assets/icons/u1041.svg" alt="">
<span style="margin-right: 5px;display: inline-block;">{{ ite.from.cityName }},{{
ite.from.regionName }},{{ ite.from.countryName }}</span>
<span>ETD{{ ite.etd }}</span>
<span style="margin: 0 10px;">--------</span>
<img style="margin: 0 10px" src="../../assets/icons/u1041.svg" alt="">
<span style="margin-right: 10px;display: inline-block;">{{ ite.to.cityName }},{{ ite.to.regionName
}},{{ ite.to.countryName }}</span>
<span>ETA{{ ite.eta }}</span>
</div>
</div>
</div>
</div>
<div class="title">货物详情</div>
@ -373,6 +443,7 @@
<a-button type="danger" @click="showFlag = false">取消</a-button>
</template>
</a-modal>
<a-modal title="检索船期" :footer="null" :visible="visible" width="1200px" @cancel="visible = false">
<div style="display: flex;align-items: center;">
<a-row style="width:95%">
@ -422,6 +493,8 @@
<span class="top-text">{{ item.orignCityName }} </span>
<img style="margin: 0 15px;" src="../../assets/icons/u92.svg" alt="">
<span class="top-text">{{ item.deliveryCityName }}</span>
<span style="margin-left:30px;margin-right: 10px;color: black;">{{ item.totalCurrency }}</span>
<span style="color: black;">{{ item.totalAmount }}</span>
</div>
<div class="bottom">
<div class="item">
@ -435,7 +508,7 @@
<div class="item-left"> <img src="../../assets/icons/u90.svg" alt=""> </div>
<div class="item-right">
<div>到港</div>
<div>{{ item.atd }}</div>
<div>{{ item.eta }}</div>
</div>
</div>
<div class="item">
@ -453,6 +526,20 @@
</div>
</div>
</div>
<div v-if="item.legs">
<div v-for="(ite, index1) in item.legs" :key="index1" style="margin-top: 10px;">
<a-tag color="green">{{ index1 + 1 }}</a-tag>
<img style="margin: 0 10px 0 0" src="../../assets/icons/u1041.svg" alt="">
<span style="margin-right: 5px;display: inline-block;width:220px">{{ ite.from.cityName }},{{
ite.from.regionName }},{{ ite.from.countryName }}</span>
<span>ETD{{ ite.etd }}</span>
<span style="margin: 0 10px;">--------</span>
<img style="margin: 0 10px" src="../../assets/icons/u1041.svg" alt="">
<span style="margin-right: 10px;display: inline-block;min-width: 240px">{{ ite.to.cityName }},{{
ite.to.regionName }},{{ ite.to.countryName }}</span>
<span>ETA{{ ite.eta }}</span>
</div>
</div>
</div>
<div class="right">
<a-button @click="handleSelectCQ(item)" type="primary">选择</a-button>
@ -506,9 +593,9 @@
<script>
import {
getContractno, SearchCommodities, SearchShipSailingSchedule,
SearchLocations, SendMSKBooking, mskGetSave, mskGetGetInfo,
CheckWarningBatchCopy, maskCopy
getContractno, SearchCommodities, SearchShipSailingSchedule, mskGetGetInfoSpot, mskGetSaveSpot,
SearchLocations, SendMSKBooking, mskGetSave, mskGetGetInfo, GetInitInfoMsk, SendMSKBookingSpot,
CheckWarningBatchCopy, maskCopy, SearchLocationsSpot, SearchShipSailingScheduleSpot
} from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex'
import moment from 'moment'
@ -529,6 +616,7 @@ export default {
mskType: '',
mskNumber: '',
mskCopyId: '',
mskBookType: '',
searchForm: {
isoEquipmentCode: ''
},
@ -580,6 +668,7 @@ export default {
],
visible: false,
labelCol: { span: 6 },
mskSpotInfo: {},
cqLoading: false,
goodsFlag: false,
showFlag: false,
@ -592,6 +681,7 @@ export default {
])
},
mounted() {
this.getinitInfoMsk()
},
watch: {
'form.ctns': {
@ -635,6 +725,29 @@ export default {
carrierDeliveryDestinationGeoID: this.form.carrierDeliveryDestinationGeoID,
...this.searchForm
}
if (this.mskBookType === 'spot') {
if (this.form.ctns.length === 0) {
this.$message.warning('请先添加一条箱型箱量')
return false
}
if (!this.form.ctns[0].ctnCode || !this.form.ctns[0].ctnSufferWeight || !this.form.ctns[0].ctnNum) {
this.$message.warning('请填写完整箱型箱量')
return false
}
data.isoEquipmentCode = this.form.ctns[0].ctnCode
data.ISOEquipmentNum = this.form.ctns[0].ctnNum
data.stuffingWeight = this.form.ctns[0].ctnSufferWeight
SearchShipSailingScheduleSpot(data).then(res => {
if (res.success) {
this.shipList = res.data
} else {
this.$message.error(res.message)
this.shipList = []
}
this.cqLoading = false
})
}
if (this.mskBookType === 'api') {
SearchShipSailingSchedule(data).then(res => {
if (res.success) {
this.shipList = res.data
@ -644,6 +757,21 @@ export default {
}
this.cqLoading = false
})
}
},
getinitInfoMsk() {
// const data = localStorage.getItem('mskSpotInfo') ? JSON.parse(localStorage.getItem('mskSpotInfo')) : {}
// if (data.bookedByCompanyName) {
// this.mskSpotInfo = data
// } else {
// GetInitInfoMsk().then(res => {
// this.mskSpotInfo = res.data
// localStorage.setItem('mskSpotInfo', JSON.stringify(res.data))
// })
// }
GetInitInfoMsk().then(res => {
this.mskSpotInfo = res.data
})
},
handleCtnChange(row) {
this.ctnallList.forEach(item => {
@ -657,6 +785,7 @@ export default {
this.mskNumber = number
this.mskCopyId = copyId
this.getContractnoList()
this.mskBookType = 'api'
this.shipData = []
//
if (!id) {
@ -714,6 +843,71 @@ export default {
}
this.showFlag = true
},
spotInit(id, type, number, copyId) {
this.mskType = type || 'add'
this.mskNumber = number
this.mskCopyId = copyId
this.mskBookType = 'spot'
this.getContractnoList()
this.shipData = []
//
if (!id) {
this.form = {
ctns: [
{ ctnSufferWeight: 18000, ctnNum: 1, ctnCode: '45G11', ctnName: '40HC' }
],
isReefer: false,
productCode: 'MaerskSpot',
carrierCode: 'MAEU',
isBookingPartOwnPrice: true,
importServiceMode: 'CY',
exportServiceMode: 'CY',
earliestDepartureDate: moment().format('YYYY-MM-DD'),
cargoType: 'DRY',
sender: 'BOOKAPI',
commodityCodeType: 'MaerskCode'
}
this.$set(this.form, 'isReefer', false)
this.$forceUpdate()
} else {
this.formLoading = true
mskGetGetInfoSpot({ id: id }).then(res => {
if (res.success) {
if (!res.data.ctns) {
res.data.ctns = []
}
this.form = res.data
this.form.priceReferenceId = this.form.priceReferenceId + ''
this.$set(this.form, 'sfcarrierGeoID', this.form.placeOfReceiptCityName)
this.$set(this.form, 'mdsfcarrierGeoID', this.form.placeOfDeliveryCityName)
if (this.form.vesselName) {
this.shipData.push({
deliveryCityName: this.form.placeOfDeliveryCityName,
orignCityName: this.form.placeOfReceiptCityName,
carrierDepartureVoyageNumber: this.form.exportVoyageNumber,
vesselName: this.form.vesselName,
days: this.form.estSailingDays,
atd: this.form.destinationArrivalDateTimeLocal,
etd: this.form.originDepartureDateTimeLocal,
shipRateTotalCurrency: this.form.shipRateTotalCurrency,
shipRateTotalAmount: this.form.shipRateTotalAmount
})
}
console.log(this.shipData)
if (this.form.isReefer) {
this.disabled = false
} else {
this.disabled = true
}
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
this.formLoading = false
})
}
this.showFlag = true
},
handleChangePrice(val) {
if (val) {
this.form.priceOwnerContactEmail = this.form.bookedByCompanyContactEmail
@ -773,6 +967,18 @@ export default {
this.form.estSailingDays = item.days
this.form.transportMode = item.transportMode
this.form.carrierProductId = item.carrierProductId
this.form.originCountryName = item.originCountryName
this.form.originRegionName = item.originRegionName
this.form.deliveryRegionName = item.deliveryRegionName
this.form.deliveryCountryName = item.deliveryCountryName
if (this.mskBookType === 'spot') {
this.form.pId = item.pId
this.form.mD5 = item.mD5
this.form.priceID = item.priceID
this.form.shipRateTotalAmount = item.totalAmount
this.form.shipRateTotalCurrency = item.totalCurrency
}
if (this.mskBookType === 'api') {
const arr = []
if (this.form.ctns.length > 0) {
this.form.ctns.forEach(item => {
@ -786,6 +992,7 @@ export default {
if (arr.length === 0) {
this.form.ctns.push({ ctnCode: this.searchForm.isoEquipmentCode, ctnNum: 1, ctnSufferWeight: 0 })
}
}
this.shipData.push(item)
this.visible = false
this.$forceUpdate()
@ -802,6 +1009,20 @@ export default {
}
this.formLoading = true
if (this.mskType === 'add') {
if (this.mskBookType === 'spot') {
this.form.priceReference = this.form.priceID
SendMSKBookingSpot(this.form).then(res => {
if (res.success) {
this.showFlag = false
this.$message.success('发送成功')
this.$emit('handleSuccess')
} else {
this.$message.error(res.message)
}
this.formLoading = false
})
}
if (this.mskBookType === 'api') {
SendMSKBooking(this.form).then(res => {
if (res.success) {
this.showFlag = false
@ -813,6 +1034,7 @@ export default {
this.formLoading = false
})
}
}
} else {
console.log('error submit!!');
return false;
@ -820,7 +1042,6 @@ export default {
});
},
handleSave() {
console.log(this.form);
this.$refs.form.validate(valid => {
if (valid) {
this.form.carrierId = 'MSK'
@ -832,6 +1053,19 @@ export default {
}
this.formLoading = true
if (this.mskType === 'add') {
if (this.mskBookType === 'spot') {
this.form.priceReference = this.form.priceID
mskGetSaveSpot(this.form).then(res => {
if (res.success) {
this.showFlag = false
this.$emit('handleSuccess')
} else {
this.$message.error(res.message)
}
this.formLoading = false
})
}
if (this.mskBookType === 'api') {
mskGetSave(this.form).then(res => {
if (res.success) {
this.showFlag = false
@ -841,6 +1075,7 @@ export default {
}
this.formLoading = false
})
}
} else {
const data = {
originalId: this.mskCopyId,
@ -929,6 +1164,7 @@ export default {
carrierId: 'MSK',
carrierCode: this.form.carrierCode
}
if (this.mskBookType === 'api') {
SearchLocations(data).then(res => {
if (res.success) {
this.portloadList = res.data
@ -938,6 +1174,17 @@ export default {
this.fetching = false
})
}
if (this.mskBookType === 'spot') {
SearchLocationsSpot(data).then(res => {
if (res.success) {
this.portloadList = res.data
} else {
this.$message.error(res.message)
}
this.fetching = false
})
}
}
},
getSearchLocations1(val) {
if (val.length >= 3) {
@ -947,6 +1194,7 @@ export default {
carrierId: 'MSK',
carrierCode: this.form.carrierCode
}
if (this.mskBookType === 'api') {
SearchLocations(data).then(res => {
if (res.success) {
this.portdischargeList = res.data
@ -956,6 +1204,17 @@ export default {
this.fetching = false
})
}
if (this.mskBookType === 'spot') {
SearchLocationsSpot(data).then(res => {
if (res.success) {
this.portdischargeList = res.data
} else {
this.$message.error(res.message)
}
this.fetching = false
})
}
}
},
handleSelectProduct() {
if (this.form.productCode === 'MaerskContract') {
@ -1068,11 +1327,11 @@ export default {
align-items: center;
.left {
width: 80%;
width: 90%;
}
.right {
width: 20%;
width: 10%;
}
.top {
@ -1108,7 +1367,7 @@ export default {
.item {
display: flex;
width: 20%;
width: 21%;
margin-right: 15px;
.item-left {

@ -20,6 +20,7 @@ const getters = {
bookingList: state => state.user.bookingList,
slotShow: state => state.user.slotShow,
vesselFrom: state => state.user.vesselFrom,
tenantParam: state => state.user.tenantParam,
bookingGridOptions: state => state.user.bookingGridOptions,
needSavePages: state => state.user.needSavePages,
hasbookingDetail: state => state.user.hasbookingDetail,

@ -16,14 +16,15 @@ const user = {
token: '',
name: '',
welcome: '',
firstFlag: true,
feeShow: false,
slotShow: false,
vesselFrom: false,
firstFlag: true, // 订舱台账首次加载
feeShow: false, // 订舱详情是否显示费用
slotShow: false, // 订舱详情是否显示舱位
vesselFrom: false, // 船名下拉框采用哪种方式
avatar: '',
messageNum: 0,
buttons: [], // 按钮权限
admintype: '', // 是否是超管
tenantParam: [], // 马士基几种订舱方式
roles: [],
info: {},
notices: [], // 接收的通知公告
@ -93,6 +94,9 @@ const user = {
SET_FEESHOW: (state, type) => {
state.feeShow = type
},
SET_TENANTPARAM: (state, type) => {
state.tenantParam = type
},
SET_VESSELFROM: (state, type) => {
state.vesselFrom = type
},
@ -187,10 +191,15 @@ const user = {
commit('SET_VESSELFROM', false)
}
}
if (item.paraCode === 'BOOKING_CHANNEL_SELECT_SHOW') {
const arr = item.paraValue ? item.paraValue.split(',') : []
commit('SET_TENANTPARAM', arr)
}
})
if (data.tenantParams.length === 0) {
commit('SET_SLOTSHOW', false)
commit('SET_FEESHOW', false)
commit('SET_TENANTPARAM', [])
}
}
resolve(data)

@ -532,7 +532,7 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30" v-if="details.carrierid != 'EMC'">
<!-- <a-row :gutter="30" v-if="details.carrierid != 'EMC'">
<a-col :span="8">
<a-form-model-item has-feedback prop="shipper" class="sender-label" style="overflow: hidden">
<div class="sender">
@ -706,7 +706,173 @@
</a-form-model-item>
</a-col>
</a-row> -->
<div v-if="details.carrierid != 'EMC'">
<a-row :gutter="100" style="padding-left:60px">
<a-col :span="12">
<div class="row-title">发货人</div>
<div>
<auto-complete
size="small"
style="width: 100%"
v-model="details.shipperName"
placeholder="发货人"
@search="handleSearchAuto"
@select="onSelectAuto"
option-label-prop="value">
<template slot="dataSource">
<a-select-option v-for="(item, index) in shipperList" :key="index" :value="item">{{ item
}}</a-select-option>
</template>
</auto-complete>
</div>
<div style="margin-top:10px">
<a-input size="small" placeholder="发货人地址" style="width:100%" v-model="details.shipperAddress" />
</div>
<div style="margin-top:10px">
<a-select
:filter-option="filterOption"
show-search
size="small"
placeholder="国家代码"
v-model="details.shipperCountry"
style="width: 19%">
<a-select-option v-for="item in countryList" :key="item.gid" :value="item.code">{{ item.code }} / {{ item.cnName }}</a-select-option>
</a-select>
<a-input
size="small"
placeholder="省份"
style="width:19%;margin:0 1%"
v-model="details.shipperLastName" />
<a-input
size="small"
placeholder="城市"
style="width:19%;"
v-model="details.shipperPhoneCountryCode" />
<a-input size="small" placeholder="县区" style="width:19%;margin:0 1%" v-model="details.shipperPhoneCode" />
<a-input size="small" placeholder="邮编" style="width:20%;" v-model="details.shipperPhoneCode" />
</div>
<div style="margin-top:10px">
<a-input
size="small"
placeholder="姓"
style="width:19%;"
v-model="details.shipperLastName" />
<a-input size="small" placeholder="名" style="width:19%;margin:0 1%" v-model="details.shipperFirstName" />
<a-input
size="small"
placeholder="国家区号"
style="width:19%;"
v-model="details.shipperPhoneCountryCode" />
<a-input size="small" placeholder="省市区号" style="width:19%;margin:0 1%" v-model="details.shipperPhoneCode" />
<a-input size="small" placeholder="电话" style="width:20%;" v-model="details.shipperPhone" />
</div>
</a-col>
<a-col :span="12">
<div class="row-title">货物代理人</div>
<div>
<auto-complete
size="small"
style="width: 100%"
v-model="details.bookingName"
@search="handleSearchAuto1"
@select="onSelectAuto1"
option-label-prop="value">
<template slot="dataSource">
<a-select-option v-for="(item, index) in bookingList" :key="index" :value="item">{{ item
}}</a-select-option>
</template>
</auto-complete>
</div>
<div style="margin-top:10px">
<a-select size="small" v-model="details.bookingSex" style="width: 13%">
<a-select-option value="MS">MS</a-select-option>
<a-select-option value="MR">MR</a-select-option>
</a-select>
<a-input
size="small"
placeholder="姓"
style="width:13%;margin:0 1%"
v-model="details.bookingLastName" />
<a-input size="small" placeholder="名" style="width:13%;" v-model="details.bookingFirstName" />
<a-input
size="small"
placeholder="国家区号"
style="width:14%;margin:0 1%"
v-model="details.bookingPhoneCountryCode" />
<a-input size="small" placeholder="省市区号" style="width:14%;" v-model="details.bookingPhoneCode" />
<a-input size="small" placeholder="电话" style="width:14%;margin:0 1%" v-model="details.bookingPhone" />
<a-input size="small" placeholder="分机号" style="width:13%;" v-model="details.bookingPhoneExtension" />
</div>
<div style="margin:10px 0">
<a-input size="small" placeholder="内参号码" v-model="details.bookingInnerCode" />
</div>
<div>
<a-input size="small" placeholder="邮箱" v-model="details.bookingEmail" />
</div>
</a-col>
</a-row>
<a-row :gutter="100" style="padding-left:60px;margin-top:20px">
<a-col :span="12">
<div class="row-title">收货人</div>
<div>
<auto-complete
size="small"
style="width: 100%"
v-model="details.consigneeName"
@search="handleSearchAuto3"
option-label-prop="value">
<template slot="dataSource">
<a-select-option v-for="(item, index) in consigneeList" :key="index" :value="item">{{ item
}}</a-select-option>
</template>
</auto-complete>
</div>
</a-col>
<a-col :span="12">
<div class="row-title">通知人</div>
<div>
<auto-complete
size="small"
style="width: 100%"
v-model="details.notifypartName"
@search="handleSearchAuto2"
option-label-prop="value">
<template slot="dataSource">
<a-select-option v-for="(item, index) in notifypartList" :key="index" :value="item">{{ item
}}</a-select-option>
</template>
</auto-complete>
</div>
</a-col>
</a-row>
<a-row style="margin-top:10px">
<a-col :span="18">
<a-form-model-item
class="from-label"
label="订舱品名"
:labelCol="{ span: 2 }"
:wrapperCol="{ span: 22 }"
has-feedback
prop="description">
<a-input size="small" v-model="details.description" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="18">
<a-form-model-item
class="from-label"
label="订舱备注"
:labelCol="{ span: 2 }"
:wrapperCol="{ span: 22 }"
has-feedback
prop="soremark">
<a-input size="small" v-model="details.soremark" />
</a-form-model-item>
</a-col>
</a-row>
</div>
<div v-if="details.carrierid == 'EMC'">
<a-row :gutter="100" style="padding-left:60px">
<a-col :span="12">
@ -1347,7 +1513,7 @@ import { UploadTempFile, BookingCustomerOrderGetFile } from '@/api/modular/syste
import {
BookingCustomerOrderSave, BookingTemplateAdd, BookingCustomerOrderGet, OrderTemplateSave,
BookingCustomerOrderDelete, BookingCustomerOrderSubmit, BookingCustomerOrderCancelSubmit,
GetOrderTemplate, BookingCustomerOrderPage, QueryShipInfoEMC
GetOrderTemplate, BookingCustomerOrderPage, QueryShipInfoEMC, CodeCountryList
} from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex'
const startDetails = {
@ -1396,7 +1562,6 @@ export default {
this.getDictList()
},
beforeRouteUpdate(to, from, next) {
console.log(111)
if (this.isCopy) {
const hisData = {
bookingDetails: this.details,
@ -1462,6 +1627,7 @@ export default {
modelconfirm: false,
selectedAppKeys: [],
tempName: '',
countryList: [],
vesselLoad: false,
vesselFlag: false,
vesselList: [],
@ -1805,6 +1971,7 @@ export default {
this.isCopy = this.$route.query.isCopy
this.$forceUpdate()
this.startPage()
this.getCountry()
this.getAcconut()
} else if (Object.keys(this.historyData).includes(newId)) {
this.id = this.$route.query.id
@ -1812,6 +1979,7 @@ export default {
const $data = JSON.parse(JSON.stringify(this.historyData[newId]))
this.fileList = $data.fileList
this.startPage()
this.getCountry()
this.getAcconut()
if (this.isCopy && !$data.isCopy) {
this.fileList = []
@ -1928,6 +2096,7 @@ export default {
this.$forceUpdate()
this.init()
this.startPage()
this.getCountry()
this.getAcconut()
}
},
@ -2016,6 +2185,17 @@ export default {
this.vesselLoad = false
})
},
getCountry() {
const arr = localStorage.getItem('countryList') ? JSON.parse(localStorage.getItem('countryList')) : []
if (arr.length === 0) {
CodeCountryList().then(res => {
localStorage.setItem('countryList', JSON.stringify(res.data))
this.countryList = res.data
})
} else {
this.countryList = arr
}
},
handleChangeAccount(val) {
this.accountList.forEach(item => {
if (item.account === val) {
@ -2826,6 +3006,11 @@ export default {
this.details.kindpkgs = kindpkgs
this.pkgstotalRes = parseInt(pkgs)
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
kgsTextChange() {
const kgsTexyVal = this.details.kgstotal
const arr = kgsTexyVal.split(/\n|\r/g)

@ -286,10 +286,10 @@ export default {
}
})
this.peopleList = arr3
if (this.details.opid) {
if (this.details.saleid) {
const oparr = []
peopleArr.forEach(item => {
if (item.id == this.details.opid) {
if (item.id == this.details.saleid) {
oparr.push(item)
}
})
@ -298,27 +298,7 @@ export default {
arr2.push(oparr[0].email)
}
} else {
GetSysUserPage({ name: this.details.op }).then(res => {
arr2.push(res.data[0].email)
if (res.data[0].email) {
arr2.push(res.data[0].email)
}
})
}
}
if (this.details.docid) {
const oparr1 = []
peopleArr.forEach(item => {
if (item.id == this.details.docid) {
oparr1.push(item)
}
})
if (oparr1.length > 0) {
if (oparr1[0].email) {
arr2.push(oparr1[0].email)
}
} else {
GetSysUserPage({ name: this.details.doc }).then(res => {
GetSysUserPage({ name: this.details.sale }).then(res => {
arr2.push(res.data[0].email)
if (res.data[0].email) {
arr2.push(res.data[0].email)

@ -1079,7 +1079,7 @@
<template slot="footer">
<a-spin :spinning="voltaLoading">
<a-popconfirm title="确认发送?" ok-text="" cancel-text="" @confirm="handleSend">
<a-button type="primary">发送</a-button>
<a-button v-if="voltaTitle=='VOLTA截单详情'" type="primary"></a-button>
</a-popconfirm>
<a-button type="primary" @click="handleDownBW">excel</a-button>
@ -1278,7 +1278,7 @@ export default {
if (value === '') {
callback(new Error('请输入'));
} else {
const regex = /[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}/;
const regex = /[0-9]{4}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}/;
if (!regex.test(value)) {
callback(new Error('请输入正确的hscode格式如 0000.00.00.00'));
} else {
@ -2649,7 +2649,7 @@ export default {
this.$set(this.voltaForm, 'documentTypeCode', 'silc')
}
if (!res.data.extra.hsCode) {
this.$set(this.voltaForm, 'hsCode', '0000.00.00')
this.$set(this.voltaForm, 'hsCode', '0000.00.00.00')
}
if (!this.voltaForm.shpperAddr) {
this.$set(this.voltaForm, 'shpperAddr', '')

@ -28,7 +28,7 @@
<a-form-item label="船公司">
<a-select v-model="queryParam.carrierCode" show-search :filter-option="filterOption">
<a-select-option v-for="(item, index) in carrierList" :key="index" :value="item.code">{{ item.cnName
}}/ {{ item.enName}}</a-select-option>
}}/ {{ item.enName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@ -56,7 +56,14 @@
</div>
</template>
</vxe-toolbar>
<vxe-table :data="loadData" stripe resizable round :loading="loading" height="546" empty-text="">
<vxe-table
:data="loadData"
stripe
resizable
round
:loading="loading"
height="546"
empty-text="没有更多数据了!">
<vxe-column type="seq" width="40" fixed="left"></vxe-column>
<vxe-column
v-for="item in columns"
@ -67,7 +74,7 @@
:align="item.align"
>
<template #default="{ row }">
<span v-if="item.dataIndex == 'code'">{{ FnCode(row[item.dataIndex]) }}</span>
<span v-if="item.dataIndex == 'codeName'">{{ FnCode(row[item.dataIndex]) }}</span>
<span v-else-if="item.dataIndex == 'carrierCode'">{{ FncarrierCode(row[item.dataIndex]) }}</span>
<span v-else-if="item.dataIndex == 'module'">{{ FnModule(row[item.dataIndex]) }}</span>
<span v-else>{{ row[item.dataIndex] }}</span>
@ -127,6 +134,12 @@ export default {
title: '目的港',
align: 'center',
width: '100',
dataIndex: 'codeName'
},
{
title: 'code',
align: 'center',
width: '100',
dataIndex: 'code'
},
{

@ -28,7 +28,7 @@
<a-form-item label="船公司">
<a-select v-model="queryParam.carrierCode" show-search :filter-option="filterOption">
<a-select-option v-for="(item, index) in carrierList" :key="index" :value="item.code">{{ item.cnName
}}/ {{ item.enName}}</a-select-option>
}}/ {{ item.enName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@ -56,7 +56,14 @@
</div>
</template>
</vxe-toolbar>
<vxe-table :data="loadData" stripe resizable round :loading="loading" height="546" empty-text="">
<vxe-table
:data="loadData"
stripe
resizable
round
:loading="loading"
height="546"
empty-text="没有更多数据了!">
<vxe-column type="seq" width="40" fixed="left"></vxe-column>
<vxe-column
v-for="item in columns"
@ -67,7 +74,7 @@
:align="item.align"
>
<template #default="{ row }">
<span v-if="item.dataIndex == 'code'">{{ FnCode(row[item.dataIndex]) }}</span>
<span v-if="item.dataIndex == 'codeName'">{{ FnCode(row[item.dataIndex]) }}</span>
<span v-else-if="item.dataIndex == 'carrierCode'">{{ FncarrierCode(row[item.dataIndex]) }}</span>
<span v-else-if="item.dataIndex == 'module'">{{ FnModule(row[item.dataIndex]) }}</span>
<span v-else>{{ row[item.dataIndex] }}</span>
@ -126,6 +133,12 @@ export default {
title: '起始港',
align: 'center',
width: '100',
dataIndex: 'codeName'
},
{
title: 'code',
align: 'center',
width: '100',
dataIndex: 'code'
},
{

@ -50,6 +50,8 @@
<a-form-item label="租户名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select
placeholder="请输入租户名称"
show-search
:filter-option="filterOption"
v-decorator="['tenantName', { rules: [{ required: true, message: '请输入租户名称!' }] }]"
>
<a-select-option v-for="item in SysTenantData" :key="item.id" :value="item.name">
@ -182,6 +184,11 @@ export default {
}
})
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
handleCancel() {
this.file = {}
this.fileList = []

@ -50,6 +50,8 @@
<a-form-item label="租户名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select
placeholder="请输入租户名称"
:filter-option="filterOption"
show-search
v-decorator="['tenantName', { rules: [{ required: true, message: '请输入租户名称!' }] }]"
>
<a-select-option v-for="item in SysTenantData" :key="item.id" :value="item.name">
@ -110,6 +112,11 @@ export default {
this.fileList = newFileList
this.file = {}
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
beforeUpload(file) {
if (!this.form.getFieldsValue().displayName) {
this.form.setFieldsValue({
@ -129,7 +136,7 @@ export default {
this.id = record.id
this.visible = true
setTimeout(() => {
let cateCode = []
const cateCode = []
record.cateCode.split('[').forEach(item => {
if (item) {
item.split(']').forEach(item2 => {

@ -23,7 +23,7 @@
allowClear
:not-found-content="null">
<a-select-option v-for="item in SysTenantData" :key="item.id" :value="item.name">
123
{{ item.name }}
</a-select-option>
</a-select>
<a-input

@ -571,7 +571,7 @@ export default {
index = inde
}
})
GetTaskManagePage({ pK_ID: this.saveNeedCar })
GetTaskManagePage({ pkId: this.saveNeedCar })
.then(res => {
if (res.success) {
this.$set(this.gridOptions.data, index, res.data.items[0])
@ -751,7 +751,7 @@ export default {
if (res.data.succ) {
this.carFlag = false
this.$message.success('操作成功')
this.editRow.truckName = this.selectCarName
this.editRow.trucK_NAME = this.selectCarName
this.selectCar = ''
this.selectCarCode = ''
this.selectCarCode = ''
@ -775,7 +775,7 @@ export default {
if (res.data.succ) {
this.carFlag = false
this.$message.success('修改成功')
this.editRow.truckName = this.selectCarName
this.editRow.trucK_NAME = this.selectCarName
this.selectCar = ''
this.selectCarCode = ''
this.selectCarCode = ''
@ -952,13 +952,20 @@ export default {
DjyUserConfigMulti(this.$qs.stringify(query1, { arrayFormat: 'repeat' })).then(res => {
if (res.data.length > 0) {
const arr = []
let basicArr = []
res.data.forEach(item => {
arr.push({
list: JSON.parse(item.configJson),
type: item.type
})
if (item.type === 'basic') {
basicArr = JSON.parse(item.configJson)
}
})
this.taskTypeColumeList = arr
basicArr.push({ field: 'operate', title: '操作', width: 100, noDraggable: true, slots: { default: 'operate' }, fixed: 'right', resizable: false })
basicArr.unshift({ type: 'checkbox', width: 60, noDraggable: true })
this.gridOptions.columns = basicArr
}
})
},
@ -1028,10 +1035,6 @@ export default {
if (item.field === 'operate') {
item.width = 110
}
if (item.field === 'truckName') {
item.slots = { default: 'truckName' }
item.width = 150
}
return item.field
})
this.gridOptions.columns = JSON.parse(JSON.stringify(this.formTableData))

@ -3,17 +3,18 @@ export default {
{ type: 'checkbox', width: 60, noDraggable: true },
{ field: 'tasK_TYPE', width: 100, title: '任务类型', showHeaderOverflow: true, sortable: true, slots: { default: 'taskType' } },
{ field: 'tasK_TITLE', width: 200, title: '任务标题', showHeaderOverflow: true, sortable: true, slots: { default: 'taskTitle' } },
{ field: 'etd', width: 180, title: '开船日期', showHeaderOverflow: true, sortable: true },
{ field: 'vesseL_VOYNO', width: 180, title: '船名/航次', showHeaderOverflow: true, sortable: true },
{ field: 'createdTime', width: 180, title: '接收时间', showHeaderOverflow: true, sortable: true },
{ field: 'needArriveTime', width: 150, title: '要求送达时间', showHeaderOverflow: true, sortable: true },
{ field: 'trucK_NAME', width: 100, title: '车队', showHeaderOverflow: true, sortable: true, slots: { default: 'truckName' } },
{ field: 'customeR_NAME', width: 100, title: '委托单位', showHeaderOverflow: true, sortable: true },
{ field: 'mbL_NO', width: 120, title: '提单号', showHeaderOverflow: true, sortable: true },
{ field: 'yarD_NAME', width: 100, title: '场站', showHeaderOverflow: true, sortable: true },
{ field: 'contA_INFO', width: 100, title: '箱型箱量', showHeaderOverflow: true, sortable: true },
{ field: 'tasK_REQ_USERNAME', width: 100, title: '操作名称', showHeaderOverflow: true, sortable: true },
{ field: 'carrieR_ID', width: 100, title: '船公司', showHeaderOverflow: true, sortable: true },
{ field: 'trucK_NAME', width: 100, title: '车队', showHeaderOverflow: true, sortable: true },
{ field: 'customeR_NAME', width: 100, title: '委托单位', showHeaderOverflow: true, sortable: true },
{ field: 'createdTime', width: 180, title: '接收时间', showHeaderOverflow: true, sortable: true },
{ field: 'contA_INFO', width: 100, title: '箱型箱量', showHeaderOverflow: true, sortable: true },
{ field: 'yarD_NAME', width: 100, title: '场站', showHeaderOverflow: true, sortable: true },
{ field: 'etd', width: 180, title: '开船日期', showHeaderOverflow: true, sortable: true },
{ field: 'status', width: 100, title: '任务状态', showHeaderOverflow: true, sortable: true, slots: { default: 'status' } },
{ field: 'vesseL_VOYNO', width: 180, title: '船名/航次', showHeaderOverflow: true, sortable: true },
{ field: 'carrieR_ID', width: 100, title: '船公司', showHeaderOverflow: true, sortable: true },
{ field: 'tasK_NO', width: 150, title: '任务流水号', showHeaderOverflow: true, sortable: true },
{ field: 'tasK_SOURCE', width: 100, title: '任务来源', showHeaderOverflow: true, sortable: true, slots: { default: 'taskScource' } },
{ field: 'createdUserName', width: 100, title: '接收人', showHeaderOverflow: true, sortable: true },
@ -31,7 +32,7 @@ export default {
{ field: 'contaInfo', width: 100, title: '箱型箱量', showHeaderOverflow: true, sortable: true },
{ field: 'taskReqUserName', width: 100, title: '操作名称', showHeaderOverflow: true, sortable: true },
{ field: 'carrierId', width: 100, title: '船公司', showHeaderOverflow: true, sortable: true },
{ field: 'truckName', width: 100, title: '车队', showHeaderOverflow: true, sortable: true },
{ field: 'truckName', width: 100, title: '车队', showHeaderOverflow: true, sortable: true, slots: { default: 'truckName' } },
{ field: 'customerName', width: 100, title: '委托单位', showHeaderOverflow: true, sortable: true },
{ field: 'createdTime', width: 180, title: '接收时间', showHeaderOverflow: true, sortable: true },
{ field: 'status', width: 100, title: '任务状态', showHeaderOverflow: true, sortable: true, slots: { default: 'status' } },

@ -168,7 +168,7 @@
@checkbox-change="checkboxChangeEvent"
empty-text="没有更多数据了!">
<template #caozuo="{ row }">
<a-icon @click="handleEdit(row.id)" type="form" style="cursor: pointer;" :style="{ color: '#13c2c2' }" />
<a-icon @click="handleEdit(row)" type="form" style="cursor: pointer;" :style="{ color: '#13c2c2' }" />
<a-popconfirm
title="请确认删除?"
ok-text="是"
@ -235,11 +235,11 @@
</a-form-item>
</a-form>
</a-modal>
<a-modal title="选择" :visible="addFlag" :footer="null" @cancel="addFlag = false">
<a-modal title="" :visible="addFlag" :footer="null" @cancel="addFlag = false">
<div class="change">
<div>马士基api订舱</div>
<div>马士基sport订</div>
<div>马士基edi订</div>
<div @click="handleOpen('api')" v-if="mskApiFlag" >MSKAPI订舱</div>
<div @click="handleOpen('spot')" v-if="mskSpotFlag">MSKSPOT</div>
<div @click="handleOpen('eid')" v-if="mskEdiFlag">MSKEID</div>
</div>
</a-modal>
</div>
@ -249,6 +249,7 @@ import { mskGetPage, mskDelete, DjyUserConfigMulti, maskCopy, BatchSend, CheckWa
import columnSetting from '@/components/tableColumnSetting'
import tableSort from '@/components/tableSort'
import mskBookingOrder from '@/components/mskBookingOrder'
import { mapGetters } from 'vuex'
import { DjyUserConfigAdd } from '@/api/modular/main/DjyUserConfig'
export default {
components: {
@ -259,6 +260,9 @@ export default {
TypeData: [],
// /
advanced: false,
mskEdiFlag: false,
mskSpotFlag: false,
mskApiFlag: false,
visible: false,
loading: false,
selectedRowKeys: [],
@ -491,6 +495,9 @@ export default {
tableHeight: 0
}
},
computed: {
...mapGetters(['tenantParam'])
},
created() { },
mounted() {
this.getConfigStart()
@ -841,8 +848,22 @@ export default {
this.editColumnsSave(this.columns)
this.changeSetting('mskOrder_list_column', this.columns)
},
handleEdit(id) {
this.$refs.mskBookingOrder.init(id)
handleEdit(row) {
if (row.bookingChannelTypeName === 'SPOT订舱') {
this.$refs.mskBookingOrder.spotInit(row.id)
}
if (row.bookingChannelTypeName === '合约API') {
this.$refs.mskBookingOrder.init(row.id)
}
},
handleOpen(type) {
if (type === 'api') {
this.$refs.mskBookingOrder.init()
}
if (type === 'spot') {
this.$refs.mskBookingOrder.spotInit()
}
this.addFlag = false
},
handleSuccess() {
this.FnGetData()
@ -907,8 +928,25 @@ export default {
})
},
handleAdd() {
if (this.tenantParam.length === 0) {
this.$refs.mskBookingOrder.init()
}
if (this.tenantParam.includes('MSK_CON_API')) {
this.mskApiFlag = true
} else {
this.mskApiFlag = false
}
if (this.tenantParam.includes('MSK_SPOT_API')) {
this.mskSpotFlag = true
} else {
this.mskSpotFlag = false
}
if (this.tenantParam.includes('MSK_INTTR_EDI')) {
this.mskEdiFlag = true
} else {
this.mskEdiFlag = false
}
this.addFlag = true
// this.$refs.mskBookingOrder.init()
}
}
}
@ -951,22 +989,22 @@ export default {
.change {
display: flex;
justify-content: center;
margin-top: 25px;
div {
width: 120px;
height: 50px;
border: 1px solid #d1cfcf;
background-color: #fff;
background-color: rgb(247,249,250);
border: 1px solid rgb(247,249,250);
color: rgb(105, 102, 102);
line-height: 50px;
text-align: center;
cursor: pointer;
transition: box-shadow 0.3s, background-color 0.3s;
margin-right: 20px;
margin-right: 10px;
}
div:hover {
box-shadow: 0px 0px 10px rgba(141, 140, 140, 0.5);
background-color: rgb(198, 238, 241);
border: 1px solid #d1cfcf;
}
}
</style>

@ -4,16 +4,16 @@
"title":"基础信息",
"list":[
{"field":"tasK_NO","title":"任务流水号","width":150},
{"field":"tasK_TYPE","title":"任务类型","width":100,"slots": { "default": "taskType" }},
{"field":"tasK_TYPE","title":"任务类型","width":100,"slots": { "default": "taskType" }, "sortable": true},
{"field":"tasK_SOURCE","title":"任务来源","width":100,"slots": { "default": "taskScource" }},
{"field":"statuS_NAME","title":"状态","width":100,"slots": { "default": "status" }},
{"field":"tasK_TITLE","title":"任务标题","width":200,"slots": { "default": "taskTitle" }},
{"field":"tasK_TITLE","title":"任务标题","width":200,"slots": { "default": "taskTitle" }, "sortable": true},
{"field":"tasK_DESP","title":"任务描述","width":100},
{"field":"ouT_BUSI_NO","title":"外业务编号","width":120},
{"field":"ouT_BUSI_TYPE","title":"外业务类型","width":120,"slots": { "default": "ouT_BUSI_TYPE" }},
{"field":"tasK_BASE_TYPE","title":"基础业务类型","width":120},
{"field":"carrieR_ID","title":"船公司代号","width":100},
{"field":"mbL_NO","title":"主单号","width":100},
{"field":"mbL_NO","title":"主单号","width":150, "sortable": true},
{"field":"remark","title":"备注","width":100},
{"field":"iS_EXCEPT","title":"是否异常","width":100,"slots": { "default": "iS_EXCEPT" }},
{"field":"iS_PUBLIC","title":"是否公共","width":100,"slots": { "default": "iS_PUBLIC" }},
@ -21,19 +21,21 @@
{"field":"begiN_DATE","title":"任务启动时间","width":120},
{"field":"completE_DATE","title":"任务完成时间","width":120},
{"field":"resulT_NOTE","title":"反馈结果","width":100},
{"field":"etd","title":"开船日期","width":100},
{"field":"completE_DEAL_NAME","title":"任务完成方式","width":120},
{"field":"etd","title":"开船日期","width":100, "sortable": true},
{"field":"completE_DEAL","title":"任务完成方式","width":120},
{"field":"issuE_TYPE_NAME","title":"签单方式","width":100},
{"field":"tasK_REQ_USERNAME","title":"任务请求人","width":100},
{"field":"contA_INFO","title":"箱型箱量","width":100},
{"field":"vesseL_VOYNO","title":"船名航次","width":100},
{"field":"yarD_NAME","title":"场站","width":100},
{"field":"trucK_NAME","title":"车队名称","width":100},
{"field":"customeR_NAME","title":"委托客户","width":100},
{"field":"needArriveTime","title":"要求到达时间","width":120},
{"field":"tasK_REQ_USERNAME","title":"操作名称","width":100, "sortable": true},
{"field":"contA_INFO","title":"箱型箱量","width":150, "sortable": true},
{"field":"vesseL_VOYNO","title":"船名航次","width":100, "sortable": true},
{"field":"yarD_NAME","title":"场站","width":150, "sortable": true},
{"field":"trucK_NAME","title":"车队名称","width":170,"slots": { "default": "truckName" }, "sortable": true},
{"field":"customeR_NAME","title":"委托客户","width":200, "sortable": true},
{"field":"needArriveTime","title":"要求到达时间","width":200, "sortable": true},
{"field":"realUserName","title":"实际操作人","width":100},
{"field":"batcH_STATIC","title":"批次统计","width":100},
{"field":"systeM_NAME","title":"平台名称","width":100}
{"field":"systeM_NAME","title":"平台名称","width":100},
{"field":"createdUserName","title":"接收人","width":100},
{"field":"createdTime","title":"接收时间","width":200, "sortable": true}
]
},
{

@ -189,6 +189,7 @@ export default {
Type = true
}
})
console.log(this.GrantData)
if (!Type) {
this.GrantData.push({ dataScopeType: value, sysMenuId: this.SelectMenuId, RightData: [] })
}
@ -247,7 +248,6 @@ export default {
sysDictTypeDropDown() {
//
sysDictTypeDropDown({ code: 'data_scope_type' }).then(res => {
console.log(res.data, '数据范围')
this.dataScopeTypeData = res.data
this.formLoading = false
})
@ -257,7 +257,7 @@ export default {
*/
getMenuList() {
this.formLoading = true
SysMenuTreeForGrant().then(res => {
SysMenuTreeForGrant({ IsEnableDataScope: true }).then(res => {
if (res.success) {
this.appList = res.data.appList
this.menuList = res.data.menuTree
@ -279,7 +279,6 @@ export default {
})
this.menuTreeData = menuList
this.expandedKeys = arr
console.log(menuList,arr)
},
onExpand(expandedKeys) {
this.expandedKeys = expandedKeys
@ -318,10 +317,18 @@ export default {
} else {
this.isEdit = false
}
console.log(type)
if (!type) {
this.handleChange('4')
this.form.setFieldsValue({
dataScopeType: '4'
})
} else {
this.handleChange(type)
this.form.setFieldsValue({
dataScopeType: type
})
}
},
onCheckMenu(checkedKeys, e) {
const Select = []
@ -357,9 +364,6 @@ export default {
this.MeuncheckedKeys.forEach(item => {
this.GrantData.forEach(item2 => {
if (item == item2.sysMenuId) {
if (!item2.dataScopeType) {
item2.dataScopeType = 4
}
childrens.push({ ...item2, menuId: item2.sysMenuId })
}
})

Loading…
Cancel
Save