自定义标题

szh_zidingyibiaoti
sunzehua 2 years ago
commit 60bab44640

@ -773,7 +773,7 @@ export function DeleteBookingOrder(parameter) {
})
}
//恢复删除
// 恢复删除
export function RecoverDeleteOrder(parameter) {
return axios({
url: '/BookingOrder/RecoverDelete?Ids=' + parameter,
@ -864,3 +864,35 @@ export function seaeEdiCustEDI(parameter) {
data: parameter
})
}
export function downloadBookingConfirm(parameter) {
return axios({
url: '/BookingValueAdded/DownloadBookingConfirm',
method: 'post',
data: parameter
})
}
export function downloadDraft(parameter) {
return axios({
url: '/BookingValueAdded/DownloadDraft',
method: 'post',
data: parameter
})
}
export function checkUpdateETA(parameter) {
return axios({
url: '/BookingValueAdded/CheckUpdateETA',
method: 'post',
data: parameter
})
}
export function checkUpdateManifestNo(parameter) {
return axios({
url: '/BookingValueAdded/CheckUpdateManifestNo',
method: 'post',
data: parameter
})
}

@ -16,7 +16,7 @@ export default {
selectedRows: [],
selectedRowKeys: [],
sortObj: { DescSort: '' },
localLoading: false,
localDataSource: [],
localPagination: Object.assign({}, this.pagination),
@ -46,6 +46,10 @@ export default {
type: Boolean,
default: true
},
pageSizeOptions: {
type: Array,
default: ['10', '20', '30', '40', '50']
},
size: {
type: String,
default: 'middle'
@ -125,25 +129,29 @@ export default {
current: localPageNum,
pageSize: this.pageSize,
showSizeChanger: this.showSizeChanger,
//pageSizeOptions: ['10', '20', '30', '40', '50'], //分页选项
pageSizeOptions: this.pageSizeOptions,
showTotal: (total, range) => {
return range[0] + '-' + range[1] + '共' + total + '条'
}
})) ||
false
this.needTotalList = this.initTotalList(this.columns)
this.sortObj = {
DescSort: '',
field: ''
}
this.loadData()
// this.columnsSetting = this.columns
//记录选择显示的列以当前路由为key
// 记录选择显示的列以当前路由为key
this.columnsSetting = []
let cacheColumns = this.$ls.get(this.$route.path)
const cacheColumns = this.$ls.get(this.$route.path)
if (cacheColumns && cacheColumns.length > 0) {
this.columnsSetting = cacheColumns
this.columns.forEach((item, index, arr) => {
let temp = this.columnsSetting.find(m => m.dataIndex == item.dataIndex)
//如果存在
const temp = this.columnsSetting.find(m => m.dataIndex == item.dataIndex)
// 如果存在
if (temp) {
arr[index].checked = temp.checked
}
@ -161,6 +169,7 @@ export default {
* @param Boolean bool
*/
refresh(bool = false) {
console.log(this.sortObj)
bool &&
(this.localPagination = Object.assign(
{},
@ -179,6 +188,9 @@ export default {
*/
loadData(pagination, filters, sorter) {
this.localLoading = true
if (sorter) {
this.sortObj = sorter
}
const parameter = Object.assign(
{
pageNo:
@ -188,20 +200,25 @@ export default {
(this.showPagination && this.localPagination.pageSize) ||
this.pageSize
},
(sorter &&
sorter.field && {
sortField: sorter.field
}) ||
{},
(sorter &&
sorter.order && {
sortOrder: sorter.order
}) ||
{},
(this.sortObj && this.sortObj.field && { SortField: this.sortObj.field }) || {},
{
...filters
}
)
if (this.sortObj && this.sortObj.order === 'descend' && this.sortObj.field) {
parameter.DescSort = true
this.sortObj.DescSort = true
} else {
if (this.sortObj && this.sortObj.field) {
parameter.DescSort = false
this.sortObj.DescSort = false
} else {
delete parameter.DescSort
if (this.sortObj) {
this.sortObj.DescSort = ''
}
}
}
const result = this.data(parameter)
// 对接自己的通用数据接口需要修改下方代码中的 r.pageNo, r.totalCount, r.data
// eslint-disable-next-line
@ -379,7 +396,7 @@ export default {
title: '列设置',
isDropdown: true,
menu: () => {
//return <columnSetting slot="overlay" columns={this.columns} onColumnChange={this.columnChange} />
// return <columnSetting slot="overlay" columns={this.columns} onColumnChange={this.columnChange} />
return <columnSetting slot="overlay" columns={this.columnsSetting} onColumnChange={this.columnChange} />
},
onClick: () => {}

@ -330,12 +330,12 @@ const booking = {
allData['payableatInitList'] = $data
break
case 'user':
allData['saleInitList'] = $data.result
allData['opInitList'] = $data.result
allData['docInitList'] = $data.result
allData['custserviceInitList'] = $data.result
allData['routeInitList'] = $data.result
allData['lineManageInitList'] = $data.result
allData['saleInitList'] = $data
allData['opInitList'] = $data
allData['docInitList'] = $data
allData['custserviceInitList'] = $data
allData['routeInitList'] = $data
allData['lineManageInitList'] = $data
break
case 'contractno':
allData['contractnoInitList'] = $data

@ -52,7 +52,7 @@
:defaultVal="details.goodsname"
searchApi="getGoodsname"
:searchQuery="{ queryItem: '', top: 50 }"
:showLabel="['goodsCode', 'goodsNameEN']"
:showLabel="['goodsNameEN', 'goodsCode']"
:openSearch="true"
@change="getSelectViewRes"
style="width: 75%;max-width:210px;"

@ -293,6 +293,7 @@ export default {
edit: false,
width: 130,
renderBodyCell: ({ row, column, rowIndex }, h) => {
this.openEdit = true
return (
<a-select
size="small"
@ -1104,47 +1105,32 @@ export default {
'== 当前是否允许编辑 ==',
this.cellSelectionOption.enable
)
// console.log(':' + event.key + ':' + event.keyCode, document.activeElement);
// if ([37, 38, 39, 40, 9].includes(event.keyCode)) {
// event = window.event || event;
// if (event.stopPropagation) {
// event.stopPropagation();
// event.preventDefault()
// } else {
// event.cancelBubble = true;
// }
// // this.openKeyDown = true
// setTimeout(() => {
// const activeDom = document.getElementsByClassName('ve-table-cell-selection')[0].firstChild
// if (this.isDOM(activeDom)) {
// const isCtnall = activeDom.classList.contains('ctnallView')
// const isKindpkgs = activeDom.classList.contains('kindpkgsView')
// if (isCtnall) {
// console.log('== table ==')
// activeDom.click()
// // this.cellSelectionOption.enable = false
// // setTimeout(() => {
// // this.cellAutofillOption = false
// // this.rowKeyName = false
// // this.tableData.map((item, index) => {
// // delete item.rowKey
// // })
// // }, 300)
// }
// if (isKindpkgs) {
// activeDom.click()
// // this.cellSelectionOption.enable = false
// // setTimeout(() => {
// // this.cellAutofillOption = false
// // this.rowKeyName = false
// // this.tableData.map((item, index) => {
// // delete item.rowKey
// // })
// // }, 300)
// }
// }
// }, 600)
// }
const arr = []
if (document.getElementsByClassName('ant-select-dropdown').length > 0) {
document.getElementsByClassName('ant-select-dropdown').forEach((item) => {
const style = item.style
if (style.display !== 'none') {
arr.push(1)
}
})
}
if (arr.length === 0) {
this.cellSelectionOption.enable = true
if ([37, 38, 39, 40, 9].includes(event.keyCode)) {
if (arr.length === 0) {
// this.openKeyDown = true
setTimeout(() => {
const activeDom = document.getElementsByClassName('ve-table-cell-selection')[0].firstChild
if (this.isDOM(activeDom)) {
activeDom.click()
}
}, 200)
}
}
} else {
this.cellSelectionOption.enable = false
}
}
})
}

@ -13,9 +13,26 @@
<div class="mail-info">
<a-form-model :selfUpdate="true" ref="mailingFrom" :model="details" :rules="rules">
<a-row :gutter="10">
<a-col class="left-sender-box" :xs="24" :sm="24" :md="24" :lg="10" :xl="11">
<a-col
class="left-sender-box"
:xs="24"
:sm="24"
:md="24"
:lg="10"
:xl="11">
<a-form-model-item has-feedback prop="shipper" class="sender-label" style="overflow: hidden">
<div class="sender">
<a-tooltip>
<template slot="title">
<p>PIL要求 EDI和ESI报文只允许所有报文中的每个record中的ascii代码必须小于0x7E大于等于0x20, 每个Record必须250字节,必填项为数值类型的不足位数用0补齐</p>
<p>1发货人Rec16收货人Rec21通知人Rec26: 公司抬头两行地址三行每行35字节</p>
<p>2第1/2行是公司抬头栏字段23-92总共70字节不足70字节请留空占位</p>
<p>3第3/4/5行是地址栏字段93-197总共105字节超过105字节通过星号*链接去rec47品名栏显示</p>
<p>4极个别情况下公司抬头可能超过70字节超出部分放在第三行</p>
<p> 5无论什么情况报文里地址信息都不放在在第1/2两行即不占23-92字段</p>
</template>
<div class="move-btn" ><a-icon type="info-circle" /></div>
</a-tooltip>
<div class="top" :class="{ required: rules['shipper'] && rules['shipper'][0].required }">
<div class="name"><span class="iconfont icon-bianji"></span>发货人</div>
<selectView
@ -72,8 +89,13 @@
@change="getSelectViewRes"
style="flex: 1"
></selectView>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('consignee')"
>保存</a-button
<a-button
class="save-btn"
type="link"
size="small"
icon="save"
@click="saveModel('consignee')"
>保存</a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('consignee')" :style="{ fontSize: '14px' }">*</span>
@ -119,8 +141,13 @@
@change="getSelectViewRes"
style="flex: 1"
></selectView>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('notifyparty')"
>保存</a-button
<a-button
class="save-btn"
type="link"
size="small"
icon="save"
@click="saveModel('notifyparty')"
>保存</a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('notifyparty')" :style="{ fontSize: '14px' }">*</span>
@ -148,7 +175,13 @@
</div>
</a-form-model-item>
</a-col>
<a-col class="right-content" :xs="24" :sm="24" :md="24" :lg="14" :xl="13">
<a-col
class="right-content"
:xs="24"
:sm="24"
:md="24"
:lg="14"
:xl="13">
<a-row :gutter="16">
<div class="right-content-top">
<a-col :span="12">
@ -1144,15 +1177,15 @@ export default {
},
SetTOTALNO(SS) {
SS = SS.toString()
let i = SS.indexOf('\n')
const i = SS.indexOf('\n')
let num = 0
let strKind = ''
let enCapital = ''
if (i > 0) {
let slist = SS.split('\n')
const slist = SS.split('\n')
for (let i = 0; i < slist.length; i += 1) {
let member = slist[i]
let strNum = this.GetStringNum(member)
const member = slist[i]
const strNum = this.GetStringNum(member)
if (i == 0) {
strKind = member.substring(strNum.length)
}
@ -1266,14 +1299,15 @@ export default {
}
a = a.substring(1)
}
if (a.length == 2)
if (a.substr(0, 1) == '0') a = a.substring(1)
if (a.length == 2) {
if (a.substr(0, 1) == '0') a = a.substring(1)
else if (a.substr(0, 1) == '1') strRet += arr4[a.substr(1, 2)]
else {
strRet += arr2[a.substr(0, 1)]
if (a.substr(1, 1) != '0') strRet += '-'
a = a.substring(1)
}
}
if (a.length == 1 && a.substr(0, 1) != '0') strRet += arr3[a.substr(0, 1)]
return strRet
},

@ -237,6 +237,23 @@
}
}
}
.sender{
position: relative;
.move-btn{
position: absolute;
height: 20px;
// transform: rotateY(180deg);
top: 5px;
right: 0;
// background: #f99;
z-index: 99;
i{
display: block;
font-size: 14px;
color: #ff9702;
}
}
}
/deep/ .ant-form-item-children-icon .anticon-check-circle {
display: none;
}

File diff suppressed because it is too large Load Diff

@ -4,50 +4,21 @@
<inputView ref="inputView" :type="labelData.label" :parentVal="value" @getInputChange="inputChange" />
</template>
<template v-else-if="labelData.type == 'date'">
<datePickerView
ref="datePickerView"
class="date-picker"
:parentVal="value"
type="etd"
format="YYYY-MM-DD"
@dateChange="dateChangeFun"
></datePickerView>
<datePickerView ref="datePickerView" class="date-picker" :parentVal="value" type="etd" format="YYYY-MM-DD"
@dateChange="dateChangeFun"></datePickerView>
</template>
<template v-else-if="labelData.type == 'dateRange'">
<div class="picker-box" style="display: flex; padding-right: 2px">
<a-date-picker
style="min-width: 30px; flex: 1"
v-model="startValue"
:disabled-date="disabledStartDate"
format="YYYY-MM-DD"
suffixIcon=" "
placeholder="开始时间"
@openChange="handleStartOpenChange"
/>
<a-date-picker style="min-width: 30px; flex: 1" v-model="startValue" :disabled-date="disabledStartDate"
format="YYYY-MM-DD" suffixIcon=" " placeholder="开始时间" @openChange="handleStartOpenChange" />
<span style="margin: 0 4px">-</span>
<a-date-picker
style="min-width: 30px; flex: 1"
v-model="endValue"
:disabled-date="disabledEndDate"
format="YYYY-MM-DD"
placeholder="结束时间"
suffixIcon=" "
:open="endOpen"
@openChange="handleEndOpenChange"
/>
<a-date-picker style="min-width: 30px; flex: 1" v-model="endValue" :disabled-date="disabledEndDate"
format="YYYY-MM-DD" placeholder="结束时间" suffixIcon=" " :open="endOpen" @openChange="handleEndOpenChange" />
</div>
</template>
<template v-else-if="labelData.type == 'select'">
<a-select
size="small"
style="margin-top: 7px"
v-model="value"
show-search
:dropdownMatchSelectWidth="false"
:filter-option="filterOption"
@change="debounce(handleSelectChange, 300, $event)"
@focus="getSelectFirst"
>
<a-select size="small" style="margin-top: 7px" v-model="value" show-search :dropdownMatchSelectWidth="false"
:filter-option="filterOption" @change="debounce(handleSelectChange, 300, $event)" @focus="getSelectFirst">
<template v-if="['CARRIER', 'YARDID', 'ISSUETYPE', 'CARGOID'].includes(labelData.label)">
<a-select-option v-for="(sitem, sindex) in dataList" :key="sindex">
{{ sitem[labelData.showLabel2] }}/ {{ sitem[labelData.showLabel] }}
@ -66,18 +37,9 @@
</a-select>
</template>
<template v-else-if="labelData.type == 'complete'">
<auto-complete
size="small"
:allowClear="true"
class="customer-input"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
v-model="value"
option-label-prop="label"
@select="completeSelect"
@focus="completeChangeFirst"
@change="debounce(completeChange, 300, $event)"
>
<auto-complete size="small" :allowClear="true" class="customer-input" :dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }" v-model="value" option-label-prop="label" @select="completeSelect"
@focus="completeChangeFirst" @change="debounce(completeChange, 300, $event)">
<!-- <template slot="dataSource" v-if="labelData.label === 'VESSEL'">
<a-select-option v-for="(item, index) in dataSourceList" :key="index" :value="item[labelData.showLabel]">
<div class="vessel-label">
@ -87,12 +49,8 @@
</a-select-option>
</template>-->
<template slot="dataSource">
<a-select-option
v-for="(item, index) in dataSourceList"
:key="`${index}-${item[labelData.showLabel]}`"
:value="`${index}-${item[labelData.showLabel]}`"
:label="item[labelData.showLabel]"
>
<a-select-option v-for="(item, index) in dataSourceList" :key="`${index}-${item[labelData.showLabel]}`"
:value="`${index}-${item[labelData.showLabel]}`" :label="item[labelData.showLabel]">
<div>
<div class="title">{{ item[labelData.showLabel] }}</div>
</div>
@ -188,7 +146,7 @@ export default {
'bookingInitData'
])
},
mounted() {},
mounted() { },
methods: {
debounce(func, wait, ...args) {
if (timer) clearTimeout(timer)
@ -286,10 +244,7 @@ export default {
'NOBILL',
'CARGOID',
'zhanCangFlag',
'status',
'taskCategory',
'taskSource',
'taskType'
'OP'
].includes(this.labelData.label)
) {
this.dataList = this.emnuData(this.labelData.label)
@ -303,6 +258,7 @@ export default {
}
},
emnuData(type) {
console.log(this.bookingInitData.opInitList)
switch (type) {
case 'LINENAME':
return this.lineList
@ -322,14 +278,8 @@ export default {
return this.labelData.data
case 'zhanCangFlag':
return this.labelData.data
case 'status':
return this.labelData.data
case 'taskCategory':
return this.labelData.data
case 'taskSource':
return this.labelData.data
case 'taskType':
return this.labelData.data
case 'OP':
return this.bookingInitData.opInitList
}
},
completeSelect(value) {
@ -362,7 +312,6 @@ export default {
'FORWARDER',
'SALE',
'CUSTSERVICE',
'OP',
'DOC',
'ROUTE',
'PAYABLEAT',
@ -413,10 +362,13 @@ export default {
.aa {
transform: scaleY(0.8);
}
/deep/ .ant-select-selection__clear {
margin-top: 0;
}
.vessel-label {
// border-bottom:1px solid #eee;
.title {
height: 28px;
@ -427,6 +379,7 @@ export default {
border-bottom: 1px dashed #ddd;
margin-bottom: 4px;
}
.voyno,
.etd {
height: 22px;
@ -439,10 +392,12 @@ export default {
/deep/.ant-calendar-picker-input {
overflow: hidden;
}
/deep/.ant-calendar-range-picker-input {
height: 24px !important;
line-height: 24px !important;
}
/deep/ .ant-input {
height: 24px !important;
}

@ -468,7 +468,7 @@ export default {
{ title: '装货港', align: 'center', width: 120, label: 'PORTLOAD', type: 'complete', showLabel: 'enName' },
{ title: '揽货人', align: 'center', width: 120, label: 'SALE', type: 'complete', showLabel: 'name' }, // 销售
{ title: '客服员', align: 'center', width: 120, label: 'CUSTSERVICE', type: 'complete', showLabel: 'name' },
{ title: '操作员', align: 'center', width: 120, label: 'OP', type: 'complete', showLabel: 'name' },
{ title: '操作员', align: 'center', width: 120, label: 'OP', type: 'select', showLabel: 'name' },
{ title: '单证员', align: 'center', width: 120, label: 'DOC', type: 'complete', showLabel: 'name' },
{ title: '报关行', align: 'center', width: 120, label: 'CUSTOMSER', type: 'complete', showLabel: 'shortName' },
{ title: '订舱编号', align: 'center', width: 120, label: 'CUSTNO', type: 'input' },

@ -92,10 +92,15 @@
:showSearch="true"
:filterOption="filterOption"
v-decorator="['truckId']"
@focus="gettruckIdData"
@change="ChangetruckId"
@change="Changeyardid"
allowClear
:disabled="taskPKId ? false : true"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
show-search
@search="gettruckIdData"
@focus="gettruckIdData"
>
<a-select-option v-for="item in truckIdData" :key="item.id" :value="item.id">
{{ item.shortName }}
@ -318,16 +323,21 @@
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="工厂联系人:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-col :span="16">
<a-form-item
label="工厂联系人:"
:labelCol="labelCol4"
:wrapperCol="{ xs: { span: 25 }, sm: { span: 21 } }"
has-feedback
>
<a-input v-decorator="['factoryContact']" />
</a-form-item>
</a-col>
<a-col :span="8">
<!-- <a-col :span="8">
<a-form-item label="联系电话:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['factoryTel']" />
</a-form-item>
</a-col>
</a-col> -->
<a-col :span="8">
<a-form-item label="返场时间:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-date-picker v-decorator="['returnTime']" />
@ -1200,7 +1210,8 @@ export default {
}
})
},
gettruckIdData(name = '', type) {
gettruckIdData(name, type) {
console.log(name)
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'fleet', queryItem: name }).then((res) => {
this.truckIdData = res.data
})

@ -50,12 +50,17 @@
:columns="columns"
:data="loadData"
:alert="true"
:pageSizeOptions="['10', '20', '50', '100']"
:rowKey="record => record.id"
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
>
<template slot="operator">
<a-button type="primary" v-if="hasPerm('sysUser:add')" icon="plus" @click="$refs.addForm.add()"
>新增用户
<a-button
type="primary"
v-if="hasPerm('sysUser:add')"
icon="plus"
@click="$refs.addForm.add()"
>新增用户
</a-button>
<a-upload
:customRequest="customRequest"
@ -73,7 +78,6 @@
{{ departmentFilter(text) }}
</span>
<span slot="sex" slot-scope="text">
{{ sexFilter(text) }}
</span>
@ -173,13 +177,15 @@ export default {
},
{
title: '姓名',
dataIndex: 'name'
dataIndex: 'name',
sorter: true
},
{
title: '部门',
dataIndex: 'sysEmpInfo',
dataIndex: 'orgName',
sorter: true,
scopedSlots: {
customRender: 'sysEmpInfo'
customRender: 'orgName'
}
},
{
@ -256,6 +262,9 @@ export default {
}
},
methods: {
handleTableChange(pagination, filters, sorter) {
console.log(pagination, filters, sorter);
},
departmentFilter(sysEmpInfo) {
// console.log('sysEmpInfo===>>',sysEmpInfo)
return sysEmpInfo.orgName
@ -361,13 +370,13 @@ export default {
})
},
downloadfile(res) {
let fileReader = new FileReader()
let _this = this
const fileReader = new FileReader()
const _this = this
fileReader.onload = function() {
try {
// JSON.parse(this.result)this.resultjson
// JSON.parse(this.result)catch
let r = JSON.parse(this.result)
const r = JSON.parse(this.result)
if (!r.success) {
_this.$message.error(r.message)
} else {

Loading…
Cancel
Save