szh_zidingyibiaoti
lilu 2 years ago
commit e611cb7722

@ -0,0 +1,96 @@
import { axios } from '@/utils/request'
/**
* 查询订舱模板
*
* @author Myshipping
*/
export function BookingTruckGetPage(parameter) {
return axios({
url: '/BookingTruck/GetPage',
method: 'post',
data: parameter
})
}
/**
* 检索往来单位包含车队
*
* @author Myshipping
*/
export function DjyCustomerQuerytDjyCustomerInfo(parameter) {
return axios({
url: '/DjyCustomer/QuerytDjyCustomerInfo',
method: 'get',
params: parameter
})
}
/**
* 添加订舱模板
*
* @author Myshipping
*/
export function DjyCustomerAdd(parameter) {
return axios({
url: '/DjyCustomer/add',
method: 'post',
data: parameter
})
}
/**
* 编辑订舱模板
*
* @author Myshipping
*/
export function DjyCustomerEdit(parameter) {
return axios({
url: '/DjyCustomer/edit',
method: 'post',
data: parameter
})
}
/**
* 删除订舱模板
*
* @author Myshipping
*/
export function DjyCustomerDelete(parameter) {
return axios({
url: '/DjyCustomer/delete',
method: 'post',
data: parameter
})
}
// 获取用户自定义配置
export function DjyCustomerGet(parameter) {
return axios({
url: '/DjyUserConfig/get',
method: 'get',
params: parameter
})
}
// 分页查询用户自定义配置
export function DjyUserConfigPage(parameter) {
return axios({
url: '/DjyUserConfig/page',
method: 'get',
params: parameter
})
}
// 增加用户自定义配置(同用户、同类型的会更新)
export function DjyUserConfigAdd(parameter) {
return axios({
url: '/DjyUserConfig/add',
method: 'post',
data: parameter
})
}
// 获取客户
export function DjyCustomerDetail(parameter) {
return axios({
url: '/DjyCustomer/detail',
method: 'get',
params: parameter
})
}

@ -1225,6 +1225,8 @@ export default {
this.setDeatilsFun(res, true)
setTimeout(() => {
this.inAddSave = false
this.getRightAll()
this.$refs.rightContent.init()
}, 2000)
} else if (that.$route.query.mblno === that.bookingDetails.mblno) {
that.isCopy = false

@ -5,11 +5,14 @@
<div class="left">
<a-button class="btn btn-add" type="primary" @click="addboxLine"></a-button>
<a-button class="btn btn-delete" @click="removeLine" :style="{ marginRight: '50px' }">删除</a-button>
<a-button class="btn btn-more-name" type="primary" @click="openDialog" :disabled="tableData.length === 0"><a-icon type="appstore" />多品名
<a-button class="btn btn-more-name" type="primary" @click="openDialog" :disabled="tableData.length === 0"
><a-icon type="appstore" />多品名
</a-button>
<a-button class="btn btn-import-station" type="primary" @click="importYarn" :loading="YarnLoading"><a-icon type="import" />引入场站数据</a-button
<a-button class="btn btn-import-station" type="primary" @click="importYarn" :loading="YarnLoading"
><a-icon type="import" />引入场站数据</a-button
>
<a-button class="btn btn-weight" type="primary" @click="importWeight" :loading="WeightLoading"><a-icon type="import" />引入箱皮重</a-button
<a-button class="btn btn-weight" type="primary" @click="importWeight" :loading="WeightLoading"
><a-icon type="import" />引入箱皮重</a-button
>
<a-button class="btn btn-weight" type="primary" @click="arrowsWeight">
<a-icon type="arrows-alt" />展开箱量
@ -171,7 +174,7 @@ export default {
class="ctnallView"
allow-clear={true}
style="width: 90px"
filter-option={ this.filterOption }
filter-option={this.filterOption}
on-change={val => {
// console.log('== change ==')
if (val !== undefined) {
@ -294,7 +297,7 @@ export default {
showSearch
defaultValue={row['kindpkgs']}
option-filter-prop="children"
filter-option={ this.filterOption }
filter-option={this.filterOption}
style="width: 120px"
class="kindpkgsView"
on-change={val => {
@ -309,10 +312,12 @@ export default {
// console.log('== - ==', index, item.kindpkgs)
if (
document
.getElementsByClassName('kindpkgsView')[index].getElementsByClassName('ant-select-selection-selected-value')[0]
.getElementsByClassName('kindpkgsView')
[index].getElementsByClassName('ant-select-selection-selected-value')[0]
) {
document
.getElementsByClassName('kindpkgsView')[index].getElementsByClassName('ant-select-selection-selected-value')[0].innerHTML =
.getElementsByClassName('kindpkgsView')
[index].getElementsByClassName('ant-select-selection-selected-value')[0].innerHTML =
this.packageList[val].name || ''
} else {
document.getElementsByClassName('kindpkgsView')[index].getElementsByTagName('input')[0].val =
@ -328,7 +333,8 @@ export default {
if (index !== rowIndex) {
item.kindpkgs = ''
document
.getElementsByClassName('kindpkgsView')[index].getElementsByClassName('ant-select-selection-selected-value')[0].innerHTML = ''
.getElementsByClassName('kindpkgsView')
[index].getElementsByClassName('ant-select-selection-selected-value')[0].innerHTML = ''
}
})
}
@ -481,11 +487,14 @@ export default {
edit: false,
renderBodyCell: ({ row, column, rowIndex }, h) => {
return (
<a-date-picker value={row['weighdate']} on-change={(date, dateString) => {
// console.log('== ==', dateString)
this.tableData[rowIndex].weighdate = dateString
row['weighdate'] = dateString
}} />
<a-date-picker
value={row['weighdate']}
on-change={(date, dateString) => {
// console.log('== ==', dateString)
this.tableData[rowIndex].weighdate = dateString
row['weighdate'] = dateString
}}
/>
)
},
renderHeaderCell: ({ column }, h) => {
@ -495,7 +504,7 @@ export default {
</span>
)
}
},
}
],
modelColumns: [
{
@ -644,7 +653,9 @@ export default {
tableData: [],
editOption: {
beforeCellValueChange: ({ row, column, changeValue }) => {
if (this.inTableLoad) { return false }
if (this.inTableLoad) {
return false
}
if (
['pkgs', 'kgs', 'cbm', 'tareweight'].includes(column.field) &&
!new RegExp(/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/).test(changeValue)
@ -689,7 +700,9 @@ export default {
}
},
afterCellValueChange: ({ row, column, changeValue }) => {
if (this.inTableLoad) { return false }
if (this.inTableLoad) {
return false
}
if (['kgs', 'cbm', 'tareweight', 'weighkgs'].includes(column.field)) {
changeValue = changeValue + ''
const valIndex = changeValue.includes('.') ? changeValue.indexOf('.') + 1 : false
@ -811,8 +824,7 @@ export default {
}
}
},
cellValueChange: ({ row, column }) => {
}
cellValueChange: ({ row, column }) => {}
},
editChildOption: {
beforeCellValueChange: ({ row, column, changeValue }) => {
@ -1049,19 +1061,20 @@ export default {
val: this.totalCbm
})
},
openEdit (nval, oval) {
openEdit(nval, oval) {
// -
if (nval) {
const editDom = document.getElementsByClassName('ve-table-edit-input')[0]
// console.log('', editDom)
editDom.addEventListener('focus', (e) => {
editDom.addEventListener('focus', e => {
// console.log('== ==', this.cellSelectionOption.enable)
// if (!this.cellSelectionOption.enable) { return false }
document.onkeydown = event => {
// - start
if (event.key === 'Backspace' && this.ctnallViewIndex !== null) {
const val = document.getElementsByClassName('ctnallView')[this.ctnallViewIndex].getElementsByTagName('input')[0]
.value
const val = document
.getElementsByClassName('ctnallView')
[this.ctnallViewIndex].getElementsByTagName('input')[0].value
document
.getElementsByClassName('ctnallView')
[this.ctnallViewIndex].getElementsByTagName('input')[0].value = val.substr(0, val.length - 1)
@ -1076,8 +1089,12 @@ export default {
[this.kindpkgsViewIndex].getElementsByTagName('input')[0].value = val.substr(0, val.length - 1)
// this.tableData[this.ctnallViewIndex].ctnall = val.substr(0, val.length - 1)
}
// - end
console.log('按下:' + event.key + '键:' + event.keyCode, '== 当前是否允许编辑 ==', this.cellSelectionOption.enable);
// - end
console.log(
'按下:' + event.key + '键:' + event.keyCode,
'== 当前是否允许编辑 ==',
this.cellSelectionOption.enable
)
// console.log(':' + event.key + ':' + event.keyCode, document.activeElement);
// if ([37, 38, 39, 40, 9].includes(event.keyCode)) {
// event = window.event || event;
@ -1131,10 +1148,10 @@ export default {
methods: {
isDOM(item) {
// HTMLELement使HTMLElementDOMODM使
return (typeof HTMLElement === 'function')
? (item instanceof HTMLElement)
: (item && (typeof item === 'object') && (item.nodeType === 1) && (typeof item.nodeName === 'string'));
// HTMLELement使HTMLElementDOMODM使
return typeof HTMLElement === 'function'
? item instanceof HTMLElement
: item && typeof item === 'object' && item.nodeType === 1 && typeof item.nodeName === 'string'
},
//
changeSelectedRowKeys(keys) {
@ -1145,7 +1162,7 @@ export default {
this.$refs['tableRef'].startEditingCell({ rowKey, colKey, defaultValue })
},
setCellSelection(rowKey, colKey) {
this.$refs['tableRef'].setCellSelection({ rowKey, colKey });
this.$refs['tableRef'].setCellSelection({ rowKey, colKey })
},
init() {
this.inTableLoad = true
@ -1211,9 +1228,7 @@ export default {
}, 1200)
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
enmuErrorLabel(val) {
switch (val) {
@ -1276,6 +1291,9 @@ export default {
this.totalPkgs = pkgs
this.checkboxOption.selectedRowKeys = []
this.selectArr = []
this.tableData.forEach((item, index) => {
item.rowKey = index
})
},
developboxLine() {
const arr = []
@ -1496,6 +1514,7 @@ export default {
this.$message.error('请选择一条数据')
} else {
console.log(this.tableData, this.selectArr[0])
console.log(this.tableData[this.selectArr[0]])
if (this.tableData[this.selectArr[0]].ctnnum > 1) {
console.log(
parseFloat(this.tableData[this.selectArr[0]].ctnnum),

@ -215,17 +215,35 @@
</template>
<template #lstShipOrderCompareRlt="{ row }">
<div class="goods-status">
<div v-if="row.lstShipOrderCompareRlt">
<div v-if="row.lstShipOrderCompareRlt == 'DIFF'">
<a-icon type="close-circle" :style="{ color: '#ff9200' }" />
</div>
<div v-else-if="row.lstShipOrderCompareRlt == 'NO_DIFF'">
<a-icon type="check-circle" :style="{ color: '#54bc25' }" />
</div>
<div v-else>
<a-popover>
<template slot="content">
<p>
比对方式:
<span>{{
row.lstShipOrderCompareMode
? row.lstShipOrderCompareMode == 'MANUAL'
? '手动'
: '自动'
: ''
}}</span>
</p>
<p>
比对时间: <span>{{ row.lstShipOrderCompareDate }}</span>
</p>
</template>
<div v-if="row.lstShipOrderCompareRlt">
<div v-if="row.lstShipOrderCompareRlt == 'DIFF'">
<a-icon type="close-circle" :style="{ color: '#ff9200' }" />
</div>
<div v-else-if="row.lstShipOrderCompareRlt == 'NO_DIFF'">
<a-icon type="check-circle" :style="{ color: '#54bc25' }" />
</div>
<!-- <div v-else>
{{ row.lstShipOrderCompareRltName }}
</div> -->
</div>
</div>
</a-popover>
<a-icon
class="TablelstShipOrderCompareRltRedo"
@click="excuteShippingOrderCompareBatch(row)"
@ -2516,6 +2534,7 @@ export default {
.TablelstShipOrderCompareRltRedo {
cursor: pointer;
margin-left: 0.5rem;
color: #13c2c2;
}
}

@ -421,7 +421,7 @@ export default {
{
field: 'lstShipOrderCompareRlt',
label: 'LSTSHIPORDERCOMPARERLT',
minWidth: 160,
minWidth: 92,
title: '下货纸比对',
showHeaderOverflow: true,
slots: { default: 'lstShipOrderCompareRlt' }

@ -7,11 +7,7 @@
<a-form layout="inline" :form="form">
<a-row :gutter="48">
<a-col :md="5" :sm="24" :style="{ paddingRight: 0 }">
<a-form-item
label="API接口"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-form-item label="API接口" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
style="width: 100%"
show-search
@ -26,11 +22,7 @@
</a-form-item>
</a-col>
<a-col :md="5" :sm="24" :style="{ paddingRight: 0 }">
<a-form-item
label="租户"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-form-item label="租户" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- <a-input
placeholder="请输入租户名称"
v-decorator="[
@ -42,10 +34,7 @@
<a-select
show-search
placeholder="请选择租户"
v-decorator="[
'TenantName',
{ rules: [{ required: false, message: '请输入租户名称' }] },
]"
v-decorator="['TenantName', { rules: [{ required: false, message: '请输入租户名称' }] }]"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="filterOption"
@ -58,11 +47,7 @@
</a-form-item>
</a-col>
<a-col :md="5" :sm="24" :style="{ paddingRight: 0 }">
<a-form-item
label="用户姓名"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-form-item label="用户姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- <a-input
placeholder="请输入用户姓名"
v-decorator="[
@ -73,9 +58,7 @@
<auto-complete
:allowClear="true"
class="customer-input"
v-decorator="[
'UserName'
]"
v-decorator="['UserName']"
:data-source="userListArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@ -85,11 +68,7 @@
</a-form-item>
</a-col>
<a-col :md="4" :sm="24" :style="{ paddingRight: 0 }">
<a-form-item
label="是否禁用"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-form-item label="是否禁用" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
default-value="2"
style="width: 100%"
@ -139,14 +118,32 @@
</template>
<template #operate="{ row }">
<vxe-button type="text" class="disable-btn" @click="editColumns(row)"></vxe-button>
<a-popconfirm title="确认删除?" ok-text="" cancel-text="" @confirm="removeColumns(row)" @cancel="cancel">
<a-popconfirm
title="确认删除?"
ok-text="是"
cancel-text="否"
@confirm="removeColumns(row)"
@cancel="cancel"
>
<vxe-button type="text" class="disable-btn active">删除</vxe-button>
</a-popconfirm>
<a-popconfirm :title="`是否${row.isDisable? '启用' : '禁用'}`" ok-text="" cancel-text="" @confirm="setDisableFun(row)" @cancel="cancel">
<a-popconfirm
:title="`是否${row.isDisable ? '启用' : '禁用'}`"
ok-text="是"
cancel-text="否"
@confirm="setDisableFun(row)"
@cancel="cancel"
>
<span v-if="row.isDisable" class="disable-btn"></span>
<span v-else class="disable-btn active">禁用</span>
</a-popconfirm>
<a-popconfirm title="确认重置秘钥?" ok-text="" cancel-text="" @confirm="secretResetFun(row)" @cancel="cancel">
<a-popconfirm
title="确认重置秘钥?"
ok-text="是"
cancel-text="否"
@confirm="secretResetFun(row)"
@cancel="cancel"
>
<vxe-button class="disable-btn active" type="text">重置秘钥</vxe-button>
</a-popconfirm>
</template>
@ -158,7 +155,7 @@
<add-form ref="addForm" :formData="addFormData" :type="addFormType" :index="addFromIndex" @ok="handleOk" />
</div>
</template>
<script>
<script>
import { XCard } from '@/components'
import initData from './modules/initData'
import columnSetting from '@/components/tableColumnSetting'
@ -213,10 +210,10 @@ export default {
total: 0,
currentPage: 1,
pageSize: 10,
pageSizes: [10, 20, 50, 100, 200, 500],
pageSizes: [10, 20, 50, 100, 200, 500]
},
columns: JSON.parse(JSON.stringify(initData.columns)),
data: [],
data: []
},
addFormData: {},
addFormType: 'add',
@ -227,24 +224,23 @@ export default {
}
},
computed: {
userListArr() {
if (this.userList) {
const arr = []
this.userList.map((item, index) => {
if (!arr.includes(item.name)) {
arr.push(item.name)
}
})
return arr
} else {
return []
}
userListArr() {
if (this.userList) {
const arr = []
this.userList.map((item, index) => {
if (!arr.includes(item.name)) {
arr.push(item.name)
}
})
return arr
} else {
return []
}
},
}
},
created() {
this.getList()
this.apiInterface = this.$options.filters['dictData']('api_interface')
console.log('apiInterface', this.apiInterface)
SysTenantPage({ pageNo: 1, pageSize: 9999, name: '' }).then(res => {
this.TenantData = res.data.rows
})
@ -256,15 +252,14 @@ export default {
total: 0,
currentPage: 1,
pageSize: 10,
pageSizes: [10, 20, 50, 100, 200, 500],
pageSizes: [10, 20, 50, 100, 200, 500]
}
this.gridOptions.data = []
this.getList(queryParam)
},
handlePageChange({ currentPage, pageSize }) {
console.log(currentPage, pageSize)
const {
form: { validateFields },
form: { validateFields }
} = this
validateFields((err, values) => {
if (!err) {
@ -276,12 +271,10 @@ export default {
},
getList(queryParam = {}) {
const { currentPage, pageSize } = this.gridOptions.pagerConfig
console.log('查询内容', queryParam)
let IsDisable = null
if (Object.keys(queryParam).length > 0 && queryParam.IsDisable && queryParam.IsDisable !== 2) {
IsDisable = Boolean(queryParam.IsDisable)
}
console.log('IsDisable = ', IsDisable)
GetApiPage({
ApiCode: queryParam.ApiCode,
ApiName: queryParam.ApiName,
@ -291,17 +284,17 @@ export default {
pageNo: currentPage,
pageSize: pageSize
})
.then((res) => {
.then(res => {
const _data = res.data.rows.map((item, index) => {
item.row_id = (currentPage - 1) * pageSize + index
return item
})
this.$set(this.gridOptions.pagerConfig, 'total', res.data.totalCount)
this.$set(this.gridOptions.pagerConfig, 'total', res.data.totalRows)
this.$set(this.gridOptions, 'data', JSON.parse(JSON.stringify(_data)))
this.$set(this.gridOptions, 'loading', false)
this.$forceUpdate()
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -310,11 +303,10 @@ export default {
this.addFormId = data.id
this.addFromIndex = data.row_id
GetApiDetail({
id: this.addFormId,
}).then((res) => {
id: this.addFormId
}).then(res => {
if (res.success) {
this.addFormData = res.data
console.log(this.addFormData)
this.$refs.addForm.add()
} else {
this.$message.error(res.message)
@ -324,11 +316,11 @@ export default {
removeColumns(data) {
DeleteApi({
id: data.id
}).then((res) => {
}).then(res => {
if (res.success) {
this.$message.success('删除成功')
const {
form: { validateFields },
form: { validateFields }
} = this
validateFields((err, values) => {
if (!err) {
@ -359,19 +351,17 @@ export default {
this.$forceUpdate()
},
confirmRemove(e) {
console.log(e)
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return Number(item.id)
})
console.log(pkIdArr)
DeleteApi({
Ids: pkIdArr,
}).then((res) => {
Ids: pkIdArr
}).then(res => {
if (res.success) {
this.$message.success('删除成功')
const {
form: { validateFields },
form: { validateFields }
} = this
validateFields((err, values) => {
if (!err) {
@ -384,12 +374,11 @@ export default {
})
},
cancelRemove(e) {
console.log(e)
this.$message.error('取消操作')
},
handleOk(data) {
SaveApi(data)
.then((res) => {
.then(res => {
this.$refs.addForm.$data.confirmLoading = false
if (res.success) {
this.$message.success('保存成功')
@ -406,13 +395,13 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
tableRefresh() {
const {
form: { validateFields },
form: { validateFields }
} = this
validateFields((err, values) => {
if (!err) {
@ -426,40 +415,39 @@ export default {
},
tableHeaderEdit() {},
setDisableFun(data) {
console.log('是否禁用: ', data.id, data.isDisable, data)
DisableApi({
id: data.id,
disable: !data.isDisable
})
.then((res) => {
if (res.success) {
const tip = !data.isDisable ? '已禁用' : '已启用'
this.$message.success(tip)
this.gridOptions.data[data.row_id].isDisable = !data.isDisable
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
console.log(err)
})
.then(res => {
if (res.success) {
const tip = !data.isDisable ? '已禁用' : '已启用'
this.$message.success(tip)
this.gridOptions.data[data.row_id].isDisable = !data.isDisable
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
})
.catch(err => {
console.log(err)
})
},
secretResetFun (data) {
secretResetFun(data) {
ResetApi({
id: data.id
})
.then((res) => {
if (res.success) {
this.$message.success('秘钥已重置')
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
console.log(err)
})
.then(res => {
if (res.success) {
this.$message.success('秘钥已重置')
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
})
.catch(err => {
console.log(err)
})
},
cancel() {},
filterOption(input, option) {
@ -494,22 +482,22 @@ export default {
// },
userChange(value) {
this.getUserList(value)
},
}
}
}
</script>
<style lang="less" scoped>
.disable-btn{
.disable-btn {
font-size: 12px;
color: @primary-color;
margin-left: 10px;
cursor: pointer;
&.active{
&.active {
color: #999;
}
}
.disable-radio{
display:flex;
.disable-radio {
display: flex;
width: 100%;
margin-top: 7px;
}

@ -41,7 +41,7 @@
<a-form-item label="车队:" :labelCol="labelCol3" :wrapperCol="wrapperCol3" has-feedback>
<a-select
mode="multiple"
v-decorator="['WpropString', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
v-decorator="['truckCode', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
>
<a-select-option v-for="item in propStringData" :key="item.id" :value="item.code">
{{ item.name }}
@ -55,7 +55,7 @@
<a-form-item label="ATTN:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select
mode="multiple"
v-decorator="['WpropString', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
v-decorator="['attn', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
>
<a-select-option v-for="item in propStringData" :key="item.id" :value="item.code">
{{ item.name }}
@ -65,12 +65,12 @@
</a-col>
<a-col :span="6">
<a-form-item label="ATTN电话:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['attnTel', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="ATTN传真:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['attnMail', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -79,7 +79,7 @@
<a-form-item label="FROM:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select
mode="multiple"
v-decorator="['WpropString', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
v-decorator="['fromName', { rules: [{ required: true, message: '请选择客户属性!' }] }]"
>
<a-select-option v-for="item in propStringData" :key="item.id" :value="item.code">
{{ item.name }}
@ -89,17 +89,17 @@
</a-col>
<a-col :span="6">
<a-form-item label="FROM电话:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['fromTel', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="FROM传真:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['fromMail', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="EMAIL:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['fromMail', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -112,44 +112,44 @@
<a-row>
<a-col :span="5">
<a-form-item label="箱型箱量:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['ctncode', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="3">
<a-form-item label="吨数:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['kgs', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="5">
<a-form-item label="陆运费:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['fee', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="5">
<a-form-item label="支付方式:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['payMethod', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="派车日期:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['truckTime', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="提箱场站:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['yardid', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="联系人:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['yardcontract', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="电话:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['yardcontracttel', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -161,7 +161,7 @@
<a-row>
<a-col :span="16">
<a-form-item label="工厂:" :labelCol="labelCol4" :wrapperCol="wrapperCol4" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['factoryName', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -176,24 +176,24 @@
</a-col>
<a-col :span="8">
<a-form-item label="要求到达时间:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['needArriveTime', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="工厂联系人:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['factoryContact', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="联系人:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-form-item label="工厂联系电话:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['factoryTel', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="返场时间:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['returnTime', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -205,34 +205,34 @@
<a-row>
<a-col :span="8">
<a-form-item label="入场场站:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['inYardID', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="联系人:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['inYardContact', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="电话:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['inYardContractTel', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="截港日期:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['closingTime', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="提货日期:" :labelCol="labelCol8" :wrapperCol="wrapperCol8" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['pickUpTime', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="派车状态:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input v-decorator="['shortName', { rules: [{ required: true, message: '' }] }]" />
<a-input v-decorator="['status', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
</a-col>
</a-row>
@ -259,12 +259,12 @@
>
<vxe-column type="checkbox" width="40"></vxe-column>
<!-- <vxe-column type="seq" width="60"></vxe-column> -->
<vxe-column field="roleCode" title="箱型" :edit-render="{}">
<vxe-column field="ctncode" title="箱型" :edit-render="{}">
<template #default="{ row }">
<span>{{ formatRole(row.roleCode) }}</span>
<span>{{ formatRole(row.ctncode) }}</span>
</template>
<template #edit="{ row }">
<vxe-select v-model="row.roleCode" transfer>
<vxe-select v-model="row.ctncode" transfer>
<vxe-option
v-for="item in TypeData"
:key="item.code"
@ -274,34 +274,34 @@
</vxe-select>
</template>
</vxe-column>
<vxe-column field="name" title="箱号" :edit-render="{}">
<vxe-column field="cntrno" title="箱号" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.name" type="text"></vxe-input>
<vxe-input v-model="row.cntrno" type="text"></vxe-input>
</template>
</vxe-column>
<vxe-column field="email" title="铅封号" :edit-render="{}">
<vxe-column field="sealno" title="铅封号" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.email" type="text"></vxe-input>
<vxe-input v-model="row.sealno" type="text"></vxe-input>
</template>
</vxe-column>
<vxe-column field="tel" title="箱量" :edit-render="{}">
<vxe-column field="ctnnum" title="箱量" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.tel" type="text"></vxe-input>
<vxe-input v-model="row.ctnnum" type="text"></vxe-input>
</template>
</vxe-column>
<vxe-column field="qq" title="件数" :edit-render="{}">
<vxe-column field="pkgs" title="件数" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.qq" type="text" transfer></vxe-input>
<vxe-input v-model="row.pkgs" type="text" transfer></vxe-input>
</template>
</vxe-column>
<vxe-column field="remark" title="重量(KGS)" :edit-render="{}">
<vxe-column field="weighkgs" title="重量(KGS)" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.remark" type="text" transfer></vxe-input>
<vxe-input v-model="row.weighkgs" type="text" transfer></vxe-input>
</template>
</vxe-column>
<vxe-column field="remark" title="尺寸(CMB)" :edit-render="{}">
<vxe-column field="cbm" title="尺寸(CMB)" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.remark" type="text" transfer></vxe-input>
<vxe-input v-model="row.cbm" type="text" transfer></vxe-input>
</template>
</vxe-column>
<vxe-column field="remark" title="车牌号" :edit-render="{}">
@ -327,7 +327,7 @@
<a-form-item label="注意事项:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-textarea
:auto-size="{ minRows: 3, maxRows: 5 }"
v-decorator="['shortName', { rules: [{ required: true, message: '请输入简称!' }] }]"
v-decorator="['attention', { rules: [{ required: true, message: '请输入简称!' }] }]"
/>
</a-form-item>
</a-col>
@ -335,7 +335,7 @@
<a-form-item label="备注:" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-textarea
:auto-size="{ minRows: 3, maxRows: 5 }"
v-decorator="['shortName', { rules: [{ required: true, message: '请输入简称!' }] }]"
v-decorator="['remark', { rules: [{ required: true, message: '请输入简称!' }] }]"
/>
</a-form-item>
</a-col>
@ -348,7 +348,11 @@
</template>
<script>
import { DjyCustomerAdd, DjyCustomerEdit } from '@/api/modular/main/CustomerInformationManagement'
import {
DjyCustomerAdd,
DjyCustomerQuerytDjyCustomerInfo,
DjyCustomerEdit
} from '@/api/modular/main/CustomerInformationManagement'
import { GetSysUserPage } from '@/api/modular/main/BookingLedger'
export default {
data() {
@ -477,6 +481,9 @@ export default {
add(record) {
this.visible = true
this.typeData = []
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'fleet' }).then(res => {
console.log(res)
})
},
/**
* 提交表单

@ -87,6 +87,9 @@
:align="item.align"
v-if="item.checked"
>
<template #default="{ row }" v-if="item.dataIndex == 'truckName'">
<span> {{ row.truckCode }}-{{ row.truckName }} </span>
</template>
</vxe-column>
<vxe-column title="操作" fixed="right" width="120" align="center">
<template #default="{ row }">
@ -129,12 +132,7 @@
</div>
</template>
<script>
import {
DjyCustomerGet,
DjyCustomerPage,
DjyCustomerDelete,
DjyUserConfigAdd
} from '@/api/modular/main/CustomerInformationManagement'
import { BookingTruckGetPage, DjyCustomerGet, DjyCustomerDelete, DjyUserConfigAdd } from '@/api/modular/main/SendCar'
// import addForm from './addForm.vue'
// import editForm from './editForm.vue'
const addForm = () => import('./addForm.vue')
@ -145,7 +143,7 @@ const columns = [
title: '派车单号',
align: 'center',
width: '90',
dataIndex: 'codeName'
dataIndex: 'id'
},
{
title: '任务流水号',
@ -157,37 +155,37 @@ const columns = [
title: '状态',
align: 'center',
width: '180',
dataIndex: 'fullName'
dataIndex: 'status'
},
{
title: '车队',
align: 'center',
width: '90',
dataIndex: 'chief'
dataIndex: 'truckName'
},
{
title: '工厂',
align: 'center',
width: '200',
dataIndex: 'email'
dataIndex: 'factoryName'
},
{
title: '截港日期',
align: 'center',
width: '180',
dataIndex: 'qq'
dataIndex: 'closingTime'
},
{
title: '指定到厂时间',
align: 'center',
width: '180',
dataIndex: 'webUrl'
dataIndex: 'closingTime'
},
{
title: '提箱日期',
align: 'center',
width: '60',
dataIndex: 'province'
dataIndex: 'pickUpTime'
}
]
export default {
@ -235,6 +233,81 @@ export default {
this.init()
},
methods: {
init() {
Object.assign(this.$data, this.$options.data())
columns.forEach(item => {
item.checked = true
})
columns.forEach(item => {
this.ColumnsQuery.push({ ...item, checked: true })
})
DjyCustomerGet({ type: 'customer_column_config' }).then(res => {
if (res.data && JSON.parse(res.data.configJson).length) {
columns.forEach(item => {
item.checked = false
})
let Arr = []
JSON.parse(res.data.configJson).forEach(item => {
columns.forEach(item2 => {
if (item2.dataIndex == item) {
item2.checked = true
Arr.push(item2)
}
})
})
columns.forEach(item => {
let type = true
Arr.forEach(item2 => {
if (item.dataIndex == item2.dataIndex) {
type = false
}
})
if (type) {
Arr.push(item)
}
})
this.TableColumns = Arr
} else {
this.TableColumns = columns
}
this.FnGetData()
this.$forceUpdate()
})
DjyCustomerGet({ type: 'pai_che' }).then(res => {
if (res.data) {
this.ColumnsQueryL = JSON.parse(res.data.configJson).length
if (JSON.parse(res.data.configJson).length) {
this.ColumnsQuery = []
columns.forEach(item => {
this.ColumnsQuery.push({ ...item, checked: false })
})
let Arr = []
JSON.parse(res.data.configJson).forEach(item => {
this.ColumnsQuery.forEach(item2 => {
if (item == item2.dataIndex) {
item2.checked = true
Arr.push(item2)
}
})
})
this.ColumnsQuery.forEach(item => {
let type = true
Arr.forEach(item2 => {
if (item.dataIndex == item2.dataIndex) {
type = false
}
})
if (type) {
Arr.push(item)
}
})
this.ColumnsQuery = Arr
}
}
this.$forceUpdate()
})
},
FnRpropString(data) {
let propString = ''
if (data.propString) {
@ -332,81 +405,7 @@ export default {
toggleAdvanced() {
this.advanced = !this.advanced
},
init() {
Object.assign(this.$data, this.$options.data())
columns.forEach(item => {
item.checked = true
})
columns.forEach(item => {
this.ColumnsQuery.push({ ...item, checked: true })
})
DjyCustomerGet({ type: 'customer_column_config' }).then(res => {
if (res.data && JSON.parse(res.data.configJson).length) {
columns.forEach(item => {
item.checked = false
})
let Arr = []
JSON.parse(res.data.configJson).forEach(item => {
columns.forEach(item2 => {
if (item2.dataIndex == item) {
item2.checked = true
Arr.push(item2)
}
})
})
columns.forEach(item => {
let type = true
Arr.forEach(item2 => {
if (item.dataIndex == item2.dataIndex) {
type = false
}
})
if (type) {
Arr.push(item)
}
})
this.TableColumns = Arr
} else {
this.TableColumns = columns
}
this.FnGetData()
this.$forceUpdate()
})
DjyCustomerGet({ type: 'pai_che' }).then(res => {
if (res.data) {
this.ColumnsQueryL = JSON.parse(res.data.configJson).length
if (JSON.parse(res.data.configJson).length) {
this.ColumnsQuery = []
columns.forEach(item => {
this.ColumnsQuery.push({ ...item, checked: false })
})
let Arr = []
JSON.parse(res.data.configJson).forEach(item => {
this.ColumnsQuery.forEach(item2 => {
if (item == item2.dataIndex) {
item2.checked = true
Arr.push(item2)
}
})
})
this.ColumnsQuery.forEach(item => {
let type = true
Arr.forEach(item2 => {
if (item.dataIndex == item2.dataIndex) {
type = false
}
})
if (type) {
Arr.push(item)
}
})
this.ColumnsQuery = Arr
}
}
this.$forceUpdate()
})
},
handlePageChange({ currentPage, pageSize }) {
this.queryParam.pageNo = currentPage
this.queryParam.pageSize = pageSize
@ -414,12 +413,12 @@ export default {
},
FnGetData() {
this.loading = true
DjyCustomerPage(this.queryParam).then(res => {
this.loadData = res.data.rows
BookingTruckGetPage(this.queryParam).then(res => {
this.loadData = res.data.items
this.loading = false
this.queryParam.currentPage = res.data.pageNo
this.queryParam.currentPage = res.data.pageIndex
this.queryParam.pageSize = res.data.pageSize
this.queryParam.totalResult = res.data.totalRows
this.queryParam.totalResult = res.data.totalPages
})
},
/**

@ -11,6 +11,7 @@
{ "name": "订舱编号", "code": "custno" },
{ "name": "EP号", "code": "EPCode" },
{ "name": "运费协议号", "code": "contractno" },
{ "name": "真提单号", "code": "tmblno" },
{ "name": "船名", "code": "vessel" },
{ "name": "航线代码", "code": "lanecode" },
{ "name": "内部航次", "code": "voynoinner" },
@ -25,6 +26,7 @@
{ "name": "单证", "code": "doc" },
{ "name": "客服", "code": "custservice" },
{ "name": "航线操作", "code": "route" },
{ "name": "航线管理", "code": "lineManage" },
{ "name": "单证备注", "code": "dzRemark" },
{ "name": "操作备注", "code": "czRemark" }
]
@ -41,6 +43,7 @@
{ "name": "车队", "code": "trucker" },
{ "name": "国外代理", "code": "agentname" },
{ "name": "仓库", "code": "warehouse" },
{ "name": "装运方式", "code": "shippingMethod" },
{ "name": "预抵日期", "code": "eta" },
{ "name": "截港时间", "code": "closingdate" },
{ "name": "截单时间", "code": "closedocdate" },
@ -77,7 +80,7 @@
"title": "签单信息",
"children": [
{ "name": "签单方式", "code": "issuetype" },
{ "name": "签单日期", "code": "issuedate" },
{ "name": "签单日期", "code": "tmblno" },
{ "name": "签单地点", "code": "issueplace" },
{ "name": "签单地代码", "code": "issueplaceid" },
{ "name": "提单份数", "code": "nobill" },

Loading…
Cancel
Save