szh_zidingyibiaoti
lilu 2 years ago
commit 925a091dcb

@ -7,9 +7,10 @@ import './index.less'
export default { export default {
components: { components: {
draggable, columnSetting draggable,
columnSetting
}, },
data () { data() {
return { return {
needTotalList: [], needTotalList: [],
@ -49,9 +50,9 @@ export default {
type: String, type: String,
default: 'middle' default: 'middle'
}, },
scroll:{ scroll: {
type:Object, type: Object,
default:() => ({ y: '50vh'}) default: () => ({ y: '50vh' })
}, },
alert: { alert: {
type: [Object, Boolean], type: [Object, Boolean],
@ -85,12 +86,13 @@ export default {
}, },
extraTool: { extraTool: {
type: Array, type: Array,
default: () => ([]) default: () => []
} }
}), }),
watch: { watch: {
'localPagination.current' (val) { 'localPagination.current'(val) {
this.pageURI && this.$router.push({ this.pageURI &&
this.$router.push({
...this.$route, ...this.$route,
name: this.$route.name, name: this.$route.name,
params: Object.assign({}, this.$route.params, { params: Object.assign({}, this.$route.params, {
@ -98,26 +100,28 @@ export default {
}) })
}) })
}, },
pageNum (val) { pageNum(val) {
Object.assign(this.localPagination, { Object.assign(this.localPagination, {
current: val current: val
}) })
}, },
pageSize (val) { pageSize(val) {
Object.assign(this.localPagination, { Object.assign(this.localPagination, {
pageSize: val pageSize: val
}) })
}, },
showSizeChanger (val) { showSizeChanger(val) {
Object.assign(this.localPagination, { Object.assign(this.localPagination, {
showSizeChanger: val showSizeChanger: val
}) })
} }
}, },
created () { created() {
const { pageNo } = this.$route.params const { pageNo } = this.$route.params
const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum const localPageNum = (this.pageURI && pageNo && parseInt(pageNo)) || this.pageNum
this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { this.localPagination =
(['auto', true].includes(this.showPagination) &&
Object.assign({}, this.localPagination, {
current: localPageNum, current: localPageNum,
pageSize: this.pageSize, pageSize: this.pageSize,
showSizeChanger: this.showSizeChanger, showSizeChanger: this.showSizeChanger,
@ -125,31 +129,28 @@ export default {
showTotal: (total, range) => { showTotal: (total, range) => {
return range[0] + '-' + range[1] + '共' + total + '条' return range[0] + '-' + range[1] + '共' + total + '条'
} }
}) || false })) ||
false
this.needTotalList = this.initTotalList(this.columns) this.needTotalList = this.initTotalList(this.columns)
this.loadData() this.loadData()
// this.columnsSetting = this.columns // this.columnsSetting = this.columns
//记录选择显示的列以当前路由为key //记录选择显示的列以当前路由为key
this.columnsSetting = [] this.columnsSetting = []
let cacheColumns=this.$ls.get(this.$route.path); let cacheColumns = this.$ls.get(this.$route.path)
if(cacheColumns && cacheColumns.length>0){ if (cacheColumns && cacheColumns.length > 0) {
this.columnsSetting=cacheColumns; this.columnsSetting = cacheColumns
this.columns.forEach((item,index,arr)=>{ this.columns.forEach((item, index, arr) => {
let temp=this.columnsSetting.find(m=>m.dataIndex==item.dataIndex); let temp = this.columnsSetting.find(m => m.dataIndex == item.dataIndex)
//如果存在 //如果存在
if(temp){ if (temp) {
arr[index].checked=temp.checked; arr[index].checked = temp.checked
} }
}) })
this.columnsSetting = this.columns this.columnsSetting = this.columns
} } else {
else{
this.columnsSetting = this.columns this.columnsSetting = this.columns
} }
}, },
@ -159,10 +160,15 @@ export default {
* 如果参数为 true, 则强制刷新到第一页 * 如果参数为 true, 则强制刷新到第一页
* @param Boolean bool * @param Boolean bool
*/ */
refresh (bool = false) { refresh(bool = false) {
bool && (this.localPagination = Object.assign({}, { bool &&
current: 1, pageSize: this.pageSize (this.localPagination = Object.assign(
})) {},
{
current: 1,
pageSize: this.pageSize
}
))
this.loadData() this.loadData()
}, },
/** /**
@ -171,20 +177,28 @@ export default {
* @param {Object} filters 过滤条件 * @param {Object} filters 过滤条件
* @param {Object} sorter 排序条件 * @param {Object} sorter 排序条件
*/ */
loadData (pagination, filters, sorter) { loadData(pagination, filters, sorter) {
this.localLoading = true this.localLoading = true
const parameter = Object.assign({ const parameter = Object.assign(
pageNo: (pagination && pagination.current) || {
this.showPagination && this.localPagination.current || this.pageNum, pageNo:
pageSize: (pagination && pagination.pageSize) || (pagination && pagination.current) || (this.showPagination && this.localPagination.current) || this.pageNum,
this.showPagination && this.localPagination.pageSize || this.pageSize pageSize:
}, (pagination && pagination.pageSize) ||
(sorter && sorter.field && { (this.showPagination && this.localPagination.pageSize) ||
this.pageSize
},
(sorter &&
sorter.field && {
sortField: sorter.field sortField: sorter.field
}) || {}, }) ||
(sorter && sorter.order && { {},
(sorter &&
sorter.order && {
sortOrder: sorter.order sortOrder: sorter.order
}) || {}, { }) ||
{},
{
...filters ...filters
} }
) )
@ -197,13 +211,15 @@ export default {
this.localLoading = false this.localLoading = false
return return
} }
this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { this.localPagination =
(this.showPagination &&
Object.assign({}, this.localPagination, {
current: r.pageNo, // pageNo, // 返回结果中的当前分页数 current: r.pageNo, // pageNo, // 返回结果中的当前分页数
total: r.totalRows, // totalCount, // 返回结果中的总记录数 total: r.totalRows, // totalCount, // 返回结果中的总记录数
showSizeChanger: this.showSizeChanger, showSizeChanger: this.showSizeChanger,
pageSize: (pagination && pagination.pageSize) || pageSize: (pagination && pagination.pageSize) || this.localPagination.pageSize
this.localPagination.pageSize })) ||
}) || false false
// 后端数据rows为null保存修复 // 后端数据rows为null保存修复
if (r.rows == null) { if (r.rows == null) {
r.rows = [] r.rows = []
@ -218,20 +234,25 @@ export default {
// 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小
// 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能
try { try {
if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.totalPage * this.localPagination.pageSize))) { if (
['auto', true].includes(this.showPagination) &&
r.totalCount <= r.totalPage * this.localPagination.pageSize
) {
this.localPagination.hideOnSinglePage = true this.localPagination.hideOnSinglePage = true
} }
} catch (e) { } catch (e) {
this.localPagination = false this.localPagination = false
} }
this.localDataSource = this.showPagination? r.rows:r // 返回结果中的数组数据 this.localDataSource = this.showPagination ? r.rows : r // 返回结果中的数组数据
this.localLoading = false this.localLoading = false
}) })
} }
}, },
initTotalList (columns) { initTotalList(columns) {
const totalList = [] const totalList = []
columns && columns instanceof Array && columns.forEach(column => { columns &&
columns instanceof Array &&
columns.forEach(column => {
if (column.needTotal) { if (column.needTotal) {
totalList.push({ totalList.push({
...column, ...column,
@ -246,7 +267,7 @@ export default {
* @param selectedRowKeys * @param selectedRowKeys
* @param selectedRows * @param selectedRows
*/ */
updateSelect (selectedRowKeys, selectedRows) { updateSelect(selectedRowKeys, selectedRows) {
this.selectedRows = selectedRows this.selectedRows = selectedRows
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
const list = this.needTotalList const list = this.needTotalList
@ -263,7 +284,7 @@ export default {
/** /**
* 清空 table 已选中项 * 清空 table 已选中项
*/ */
clearSelected () { clearSelected() {
if (this.rowSelection) { if (this.rowSelection) {
this.rowSelection.onChange([], []) this.rowSelection.onChange([], [])
this.updateSelect([], []) this.updateSelect([], [])
@ -274,31 +295,40 @@ export default {
* @param callback * @param callback
* @returns {*} * @returns {*}
*/ */
renderClear (callback) { renderClear(callback) {
if (this.selectedRowKeys.length <= 0) return null if (this.selectedRowKeys.length <= 0) return null
return ( return (
<a style="margin-left: 24px" onClick={() => { <a
style="margin-left: 24px"
onClick={() => {
callback() callback()
this.clearSelected() this.clearSelected()
}}>清空</a> }}
>
清空
</a>
) )
}, },
renderAlert () { renderAlert() {
// 绘制统计列数据 // 绘制统计列数据
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const needTotalItems = this.needTotalList.map((item) => { const needTotalItems = this.needTotalList.map(item => {
return (<span style="margin-right: 12px"> return (
{item.title}总计 <a style="font-weight: 600">{!item.customRender ? item.total : item.customRender(item.total)}</a> <span style="margin-right: 12px">
</span>) {item.title}总计{' '}
<a style="font-weight: 600">{!item.customRender ? item.total : item.customRender(item.total)}</a>
</span>
)
}) })
// 绘制 清空 按钮 // 绘制 清空 按钮
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( const clearItem =
this.renderClear(this.clearSelected) typeof this.alert.clear === 'boolean' && this.alert.clear
) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( ? this.renderClear(this.clearSelected)
this.renderClear(this.alert.clear) : this.alert !== null && typeof this.alert.clear === 'function'
) : null ? this.renderClear(this.alert.clear)
: null
// 绘制 alert 组件 // 绘制 alert 组件
// 统一先去除alert组件 // 统一先去除alert组件
@ -317,7 +347,7 @@ export default {
this.columnsSetting = val this.columnsSetting = val
this.$ls.set(this.$route.path, val) this.$ls.set(this.$route.path, val)
}, },
renderHeader () { renderHeader() {
let tools = [ let tools = [
{ {
icon: 'reload', icon: 'reload',
@ -342,8 +372,7 @@ export default {
</a-menu> </a-menu>
) )
}, },
onClick: () => { onClick: () => {}
}
}, },
{ {
icon: 'setting', icon: 'setting',
@ -353,8 +382,7 @@ export default {
//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} /> return <columnSetting slot="overlay" columns={this.columnsSetting} onColumnChange={this.columnChange} />
}, },
onClick: () => { onClick: () => {}
}
} }
] ]
if (this.extraTool.length) { if (this.extraTool.length) {
@ -363,19 +391,16 @@ export default {
return ( return (
<div class="s-table-tool"> <div class="s-table-tool">
<div class="s-table-tool-left"> <div class="s-table-tool-left">{this.$scopedSlots.operator && this.$scopedSlots.operator()}</div>
{this.$scopedSlots.operator && this.$scopedSlots.operator()}
</div>
<div class="s-table-tool-right"> <div class="s-table-tool-right">
{ {tools.map(tool => {
tools.map(tool => {
if (tool.isDropdown) { if (tool.isDropdown) {
return ( return (
<a-dropdown trigger={['click']}> <a-dropdown trigger={['click']}>
<a-tooltip title={tool.title} class="s-tool-item" onClick={tool.onClick}> <a-tooltip title={tool.title} class="s-tool-item" onClick={tool.onClick}>
<a-icon type={tool.icon}/> <a-icon type={tool.icon} />
</a-tooltip> </a-tooltip>
{ tool.menu() } {tool.menu()}
</a-dropdown> </a-dropdown>
) )
} }
@ -384,8 +409,7 @@ export default {
<a-icon type={tool.icon} /> <a-icon type={tool.icon} />
</a-tooltip> </a-tooltip>
) )
}) })}
}
</div> </div>
</div> </div>
) )
@ -401,10 +425,15 @@ export default {
} }
}, },
render () { render() {
let props = {} let props = {}
const localKeys = Object.keys(this.$data) const localKeys = Object.keys(this.$data)
const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert const showAlert =
(typeof this.alert === 'object' &&
this.alert !== null &&
this.alert.show &&
typeof this.rowSelection.selectedRowKeys !== 'undefined') ||
this.alert
Object.keys(T.props).forEach(k => { Object.keys(T.props).forEach(k => {
const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}`
@ -441,16 +470,24 @@ export default {
return props[k] return props[k]
}) })
const table = ( const table = (
<a-table {...{ props, scopedSlots: { ...this.$scopedSlots } }} onChange={this.loadData} onExpand={ (expanded, record) => { this.$emit('expand', expanded, record) } }> <a-table
{ Object.keys(this.$slots).map(name => (<template slot={name}>{this.$slots[name]}</template>)) } {...{ props, scopedSlots: { ...this.$scopedSlots } }}
onChange={this.loadData}
onExpand={(expanded, record) => {
this.$emit('expand', expanded, record)
}}
>
{Object.keys(this.$slots).map(name => (
<template slot={name}>{this.$slots[name]}</template>
))}
</a-table> </a-table>
) )
return ( return (
<div class="table-wrapper"> <div class="table-wrapper">
{ this.renderHeader() } {this.renderHeader()}
{ showAlert ? this.renderAlert() : null } {showAlert ? this.renderAlert() : null}
{ table } {table}
</div> </div>
) )
} }

@ -9,7 +9,7 @@
<!-- --> <!-- -->
</template> </template>
<script> <script>
let timer; let timer
export default { export default {
name: '', name: '',
props: { props: {
@ -38,17 +38,19 @@ export default {
}, },
watch: { watch: {
parentVal(nval, oval) { parentVal(nval, oval) {
if (this.inEdit) { return false } if (this.inEdit) {
return false
}
this.value = nval this.value = nval
} }
}, },
mounted() {}, mounted() {},
methods: { methods: {
debounce (func, wait, ...args) { debounce(func, wait, ...args) {
if (timer) clearTimeout(timer); if (timer) clearTimeout(timer)
timer = setTimeout(() => { timer = setTimeout(() => {
func.apply(this, args); func.apply(this, args)
}, wait); }, wait)
}, },
textareaBlur() { textareaBlur() {
if (this.openToCDB) { if (this.openToCDB) {
@ -70,27 +72,27 @@ export default {
}) })
}, },
ToCDB(str) { ToCDB(str) {
var tmp = ''; var tmp = ''
for (var i = 0; i < str.length; i++) { for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) { if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) {
tmp += String.fromCharCode(str.charCodeAt(i) - 65248); tmp += String.fromCharCode(str.charCodeAt(i) - 65248)
} else { } else {
tmp += String.fromCharCode(str.charCodeAt(i)); tmp += String.fromCharCode(str.charCodeAt(i))
} }
} }
tmp = tmp.replace(//ig, ',') tmp = tmp.replace(//gi, ',')
tmp = tmp.replace(/。/ig, '.') tmp = tmp.replace(/。/gi, '.')
tmp = tmp.replace(//ig, ';') tmp = tmp.replace(//gi, ';')
tmp = tmp.replace(//ig, ':') tmp = tmp.replace(//gi, ':')
tmp = tmp.replace(//ig, '?') tmp = tmp.replace(//gi, '?')
tmp = tmp.replace(//ig, '!') tmp = tmp.replace(//gi, '!')
tmp = tmp.replace(/《/ig, '<<') tmp = tmp.replace(/《/gi, '<<')
tmp = tmp.replace(/》/ig, '>>') tmp = tmp.replace(/》/gi, '>>')
tmp = tmp.replace(//ig, "'") tmp = tmp.replace(//gi, "'")
tmp = tmp.replace(//ig, "'") tmp = tmp.replace(//gi, "'")
tmp = tmp.replace(/、/ig, ',') tmp = tmp.replace(/、/gi, ',')
// tab // tab
tmp = tmp.replace(/\t/ig, ' ') tmp = tmp.replace(/\t/gi, ' ')
// //
if (/[\u4E00-\u9FA5]+/g.test(tmp) && ['description', 'marks'].includes(this.type)) { if (/[\u4E00-\u9FA5]+/g.test(tmp) && ['description', 'marks'].includes(this.type)) {
tmp = tmp.replace(/[\u4E00-\u9FA5]+/g, '') tmp = tmp.replace(/[\u4E00-\u9FA5]+/g, '')
@ -98,7 +100,7 @@ export default {
} }
return tmp return tmp
}, },
getTypeName (type) { getTypeName(type) {
switch (type) { switch (type) {
case 'marks': case 'marks':
return '封志号 / 标记与号码' return '封志号 / 标记与号码'

@ -121,7 +121,12 @@
</a-col> </a-col>
</a-row> </a-row>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="分单信息" :forceRender="true" v-show="bookingDetails.hbList && bookingDetails.hbList.length > 0"> <a-tab-pane
key="2"
tab="分单信息"
:forceRender="true"
v-show="bookingDetails.hbList && bookingDetails.hbList.length > 0"
>
<sedOrder <sedOrder
ref="sedOrder" ref="sedOrder"
:details="bookingDetails" :details="bookingDetails"
@ -405,8 +410,27 @@ export default {
defaultData: {} defaultData: {}
} }
}, },
watch: {
'bookingDetails.yardid': {
deep: true,
handler(nVal, oVal) {
console.log(nVal, oVal)
}
}
},
computed: { computed: {
...mapGetters(['bookingList', 'needSavePages', 'hasbookingDetail', 'bookingList', 'bookingGridOptions', 'carrierList', 'yardList', 'packageList', 'issuetypeList', 'blfrtList']) ...mapGetters([
'bookingList',
'needSavePages',
'hasbookingDetail',
'bookingList',
'bookingGridOptions',
'carrierList',
'yardList',
'packageList',
'issuetypeList',
'blfrtList'
])
}, },
created() { created() {
this.init() this.init()
@ -583,7 +607,9 @@ export default {
}, 200) }, 200)
setTimeout(() => { setTimeout(() => {
const key = this.$route.fullPath const key = this.$route.fullPath
const detailsChange = Object.keys(this.needSavePages).includes(key) ? !!this.needSavePages[key].details : false const detailsChange = Object.keys(this.needSavePages).includes(key)
? !!this.needSavePages[key].details
: false
this.checkSaveFun({ type: 'details', hasChange: detailsChange }) this.checkSaveFun({ type: 'details', hasChange: detailsChange })
const hbListChange = !!this.needSavePages[key].hbList const hbListChange = !!this.needSavePages[key].hbList
@ -627,7 +653,9 @@ export default {
setTimeout(() => { setTimeout(() => {
const key = this.$route.fullPath const key = this.$route.fullPath
const detailsChange = Object.keys(this.needSavePages).includes(key) ? !!this.needSavePages[key].details : false const detailsChange = Object.keys(this.needSavePages).includes(key)
? !!this.needSavePages[key].details
: false
this.checkSaveFun({ type: 'details', hasChange: detailsChange }) this.checkSaveFun({ type: 'details', hasChange: detailsChange })
const hbListChange = !!this.needSavePages[key].hbList const hbListChange = !!this.needSavePages[key].hbList
@ -688,7 +716,9 @@ export default {
setTimeout(() => { setTimeout(() => {
const key = this.$route.fullPath const key = this.$route.fullPath
const detailsChange = Object.keys(this.needSavePages).includes(key) ? !!this.needSavePages[key].details : false const detailsChange = Object.keys(this.needSavePages).includes(key)
? !!this.needSavePages[key].details
: false
this.checkSaveFun({ type: 'details', hasChange: detailsChange }) this.checkSaveFun({ type: 'details', hasChange: detailsChange })
const hbListChange = !!this.needSavePages[key].hbList const hbListChange = !!this.needSavePages[key].hbList
@ -709,7 +739,9 @@ export default {
setTimeout(() => { setTimeout(() => {
const key = this.$route.fullPath const key = this.$route.fullPath
const detailsChange = Object.keys(this.needSavePages).includes(key) ? !!this.needSavePages[key].details : false const detailsChange = Object.keys(this.needSavePages).includes(key)
? !!this.needSavePages[key].details
: false
this.checkSaveFun({ type: 'details', hasChange: detailsChange }) this.checkSaveFun({ type: 'details', hasChange: detailsChange })
const hbListChange = !!this.needSavePages[key].hbList const hbListChange = !!this.needSavePages[key].hbList
@ -755,7 +787,8 @@ export default {
getDefaultVal() { getDefaultVal() {
getDjyTenantConfig({ getDjyTenantConfig({
type: 'booking_default_value' type: 'booking_default_value'
}).then(res => { })
.then(res => {
const defaultData = JSON.parse(res.data.configJson) const defaultData = JSON.parse(res.data.configJson)
this.defaultData = defaultData this.defaultData = defaultData
defaultData.map((item, index) => { defaultData.map((item, index) => {
@ -767,17 +800,57 @@ export default {
} }
if (Object.keys(initDetail).includes(label)) { if (Object.keys(initDetail).includes(label)) {
initDetail[label] = item.code initDetail[label] = item.code
this.bookingDetails[label] = this.bookingDetails[label] && this.bookingDetails[label] !== '' ? this.bookingDetails[label] : item.code this.bookingDetails[label] =
this.bookingDetails[label] && this.bookingDetails[label] !== ''
? this.bookingDetails[label]
: item.code
} }
} else if (field[0] === 'ctn') { } else if (field[0] === 'ctn') {
if (['CTNALL', 'CTNNUM', 'CNTRNO', 'SEALNO', 'PKGS', 'KINDPKGS', 'KGS', 'CBM', 'TAREWEIGHT', 'WEIGHTYPE', 'WEIGHKGS'].includes(field[1])) { if (
[
'CTNALL',
'CTNNUM',
'CNTRNO',
'SEALNO',
'PKGS',
'KINDPKGS',
'KGS',
'CBM',
'TAREWEIGHT',
'WEIGHTYPE',
'WEIGHKGS'
].includes(field[1])
) {
this.ctnDefaultData[label] = item.code this.ctnDefaultData[label] = item.code
this.bookingDetails.ctnInputs.map((citem, cindex) => { this.bookingDetails.ctnInputs.map((citem, cindex) => {
this.bookingDetails.ctnInputs[cindex][label] = citem[label] && citem[label] !== '' ? citem[label] : item.code this.bookingDetails.ctnInputs[cindex][label] =
citem[label] && citem[label] !== '' ? citem[label] : item.code
}) })
} }
} else if (field[0] === 'edi') { } else if (field[0] === 'edi') {
const typeArr1 = ['WeiTuoFang', 'SendCode', 'ReceiveCode', 'NotifyCdoe', 'SalerCode', 'MasterBolIndicator', 'EmanifestHbl', 'ConsigneeEdiCode', 'ShipperEdiCode', 'OpEName', 'OpTel', 'OpEmail', 'GoodsName', 'MasterBolIndicatorName', 'SalerCodeName', 'OrderRemark', 'ExRemark1', 'ExRemark2', 'ExRemark3', 'ExRemark4', 'KingTareweight'] const typeArr1 = [
'WeiTuoFang',
'SendCode',
'ReceiveCode',
'NotifyCdoe',
'SalerCode',
'MasterBolIndicator',
'EmanifestHbl',
'ConsigneeEdiCode',
'ShipperEdiCode',
'OpEName',
'OpTel',
'OpEmail',
'GoodsName',
'MasterBolIndicatorName',
'SalerCodeName',
'OrderRemark',
'ExRemark1',
'ExRemark2',
'ExRemark3',
'ExRemark4',
'KingTareweight'
]
const typeArr2 = ['EDIAttn', 'EDIAttnTel', 'EDIAttnMail', 'AMSConsignee', 'AMSNotifyParty'] const typeArr2 = ['EDIAttn', 'EDIAttnTel', 'EDIAttnMail', 'AMSConsignee', 'AMSNotifyParty']
const typeArr3 = ['ACIHBL', 'CKHI', 'CNCM', 'WNCM'] const typeArr3 = ['ACIHBL', 'CKHI', 'CNCM', 'WNCM']
const typeArr4 = ['S0CC0C'] const typeArr4 = ['S0CC0C']
@ -790,15 +863,19 @@ export default {
} }
initDetail.bookingEDIExt[label] = item.code initDetail.bookingEDIExt[label] = item.code
bookingEDIExt[label] = item.code bookingEDIExt[label] = item.code
this.bookingDetails.bookingEDIExt[label] = this.bookingDetails.bookingEDIExt[label] && this.bookingDetails.bookingEDIExt[label] !== '' ? this.bookingDetails.bookingEDIExt[label] : item.code this.bookingDetails.bookingEDIExt[label] =
this.bookingDetails.bookingEDIExt[label] && this.bookingDetails.bookingEDIExt[label] !== ''
? this.bookingDetails.bookingEDIExt[label]
: item.code
} }
}) })
}).catch(err => { })
.catch(err => {
console.log(err) console.log(err)
}) })
}, },
emnuDefaultLabel (field) { emnuDefaultLabel(field) {
switch (field) { switch (field) {
case 'EPCODE': case 'EPCODE':
return 'epCode' return 'epCode'
@ -935,7 +1012,9 @@ export default {
if (res.data.ctnInputs.length > 0) { if (res.data.ctnInputs.length > 0) {
res.data.ctnInputs.map((item, index) => { res.data.ctnInputs.map((item, index) => {
if (item.weightype === '累加') { if (item.weightype === '累加') {
item.weighkgs = item.weighkgs ? item.weighkgs : this.calc(Number(item['kgs']), Number(item['tareweight']), '+') item.weighkgs = item.weighkgs
? item.weighkgs
: this.calc(Number(item['kgs']), Number(item['tareweight']), '+')
} }
}) })
} }
@ -1016,7 +1095,7 @@ export default {
this.$forceUpdate() this.$forceUpdate()
}, },
getRightAll () { getRightAll() {
GetAllData({ GetAllData({
bookingId: this.id bookingId: this.id
}) })
@ -1032,7 +1111,7 @@ export default {
}) })
}, },
upDateRightFun () { upDateRightFun() {
this.getRightAll() this.getRightAll()
}, },
@ -1425,7 +1504,9 @@ export default {
}, },
checkSaveFun(data) { checkSaveFun(data) {
console.log('== details 发生变化 - 保存 ==', data, this.inGoodsSave, this.detailsLoadOver) console.log('== details 发生变化 - 保存 ==', data, this.inGoodsSave, this.detailsLoadOver)
if (this.inGoodsSave) { return false } if (this.inGoodsSave) {
return false
}
const key = this.$route.fullPath const key = this.$route.fullPath
const lastPages = this.needSavePages const lastPages = this.needSavePages
const $data = this.needSavePages[key] || {} const $data = this.needSavePages[key] || {}
@ -1441,7 +1522,7 @@ export default {
this.setNeedSavePages(lastPages) this.setNeedSavePages(lastPages)
console.log('保存信息设置完成', this.needSavePages) console.log('保存信息设置完成', this.needSavePages)
}, },
inGoodsSaveFun (data) { inGoodsSaveFun(data) {
this.inGoodsSave = data this.inGoodsSave = data
}, },
@ -1560,12 +1641,12 @@ export default {
this.tabActiveKey = '1' this.tabActiveKey = '1'
} }
}, },
changeCtnInfoFun ({ type, val }) { changeCtnInfoFun({ type, val }) {
if (type === 'kindpkgs') { if (type === 'kindpkgs') {
this.bookingDetails.kindpkgs = val this.bookingDetails.kindpkgs = val
} }
}, },
removeOrderFun () { removeOrderFun() {
DeleteBookingOrder([this.bookingDetails.id].toString()) DeleteBookingOrder([this.bookingDetails.id].toString())
.then(res => { .then(res => {
if (res.success) { if (res.success) {
@ -1593,6 +1674,5 @@ export default {
/deep/ .ant-tabs-top-bar { /deep/ .ant-tabs-top-bar {
display: none !important; display: none !important;
} }
} }
</style> </style>

@ -1,11 +1,14 @@
<template> <template>
<a-collapse class="collapse-box" :bordered="false" v-model="showKey" > <a-collapse class="collapse-box" :bordered="false" v-model="showKey">
<a-collapse-panel key="1" :showArrow="false"> <a-collapse-panel key="1" :showArrow="false">
<template slot="header"> <template slot="header">
<div class="base-tit"><i class="iconfont icon-a-fahuodaifahuo"></i>收发通信息 <span class="click-btn" @click.stop="tabStopFun"></span></div> <div class="base-tit">
<i class="iconfont icon-a-fahuodaifahuo"></i>收发通信息
<span class="click-btn" @click.stop="tabStopFun"></span>
</div>
</template> </template>
<template slot="extra"> <template slot="extra">
<div class="tab-change"><i class="iconfont icon-xia" :class="{'active': !showKey.includes('1')}"></i></div> <div class="tab-change"><i class="iconfont icon-xia" :class="{ active: !showKey.includes('1') }"></i></div>
</template> </template>
<div class="mail-info"> <div class="mail-info">
<a-form-model :selfUpdate="true" ref="mailingFrom" :model="details" :rules="rules"> <a-form-model :selfUpdate="true" ref="mailingFrom" :model="details" :rules="rules">
@ -69,7 +72,9 @@
@change="getSelectViewRes" @change="getSelectViewRes"
style="flex:1;" style="flex:1;"
></selectView> ></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"> <div class="right">
<span class="btn-circle" @click="spliceMore('consignee')" :style="{ fontSize: '14px' }">*</span> <span class="btn-circle" @click="spliceMore('consignee')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'consignee')">35</span> <span class="btn" @click="changeCode(35, 'consignee')">35</span>
@ -116,7 +121,9 @@
@change="getSelectViewRes" @change="getSelectViewRes"
style="flex:1;" style="flex:1;"
></selectView> ></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"> <div class="right">
<span class="btn-circle" @click="spliceMore('notifyparty')" :style="{ fontSize: '14px' }">*</span> <span class="btn-circle" @click="spliceMore('notifyparty')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'notifyparty')">35</span> <span class="btn" @click="changeCode(35, 'notifyparty')">35</span>
@ -145,7 +152,7 @@
</a-col> </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"> <a-row :gutter="16">
<div class="right-content-top" > <div class="right-content-top">
<a-col :span="12"> <a-col :span="12">
<a-form-model-item <a-form-model-item
class="from-label yarn-label" class="from-label yarn-label"
@ -284,7 +291,7 @@
type="shippingMethod" type="shippingMethod"
:defaultVal="details.shippingMethod" :defaultVal="details.shippingMethod"
searchApi="ShippingMethod" searchApi="ShippingMethod"
:searchQuery="{ name: ''}" :searchQuery="{ name: '' }"
:showLabel="['name']" :showLabel="['name']"
:openSearch="false" :openSearch="false"
:isCopy="true" :isCopy="true"
@ -434,7 +441,12 @@
has-feedback has-feedback
prop="placereceipt" prop="placereceipt"
> >
<inputView type="placereceipt" size="small" :parentVal="details.placereceipt" @getInputChange="inputChange"/> <inputView
type="placereceipt"
size="small"
:parentVal="details.placereceipt"
@getInputChange="inputChange"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -467,7 +479,12 @@
has-feedback has-feedback
prop="portload" prop="portload"
> >
<inputView type="portload" size="small" :parentVal="details.portload" @getInputChange="inputChange"/> <inputView
type="portload"
size="small"
:parentVal="details.portload"
@getInputChange="inputChange"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -499,7 +516,12 @@
has-feedback has-feedback
prop="transport" prop="transport"
> >
<inputView type="transport" size="small" :parentVal="details.transport" @getInputChange="inputChange"/> <inputView
type="transport"
size="small"
:parentVal="details.transport"
@getInputChange="inputChange"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -531,7 +553,12 @@
has-feedback has-feedback
prop="portdischarge" prop="portdischarge"
> >
<inputView type="portdischarge" size="small" :parentVal="details.portdischarge" @getInputChange="inputChange"/> <inputView
type="portdischarge"
size="small"
:parentVal="details.portdischarge"
@getInputChange="inputChange"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -563,7 +590,12 @@
has-feedback has-feedback
prop="destination" prop="destination"
> >
<inputView type="destination" size="small" :parentVal="details.destination" @getInputChange="inputChange"/> <inputView
type="destination"
size="small"
:parentVal="details.destination"
@getInputChange="inputChange"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -595,7 +627,12 @@
has-feedback has-feedback
prop="placedelivery" prop="placedelivery"
> >
<inputView type="placedelivery" size="small" :parentVal="details.placedelivery" @getInputChange="inputChange"/> <inputView
type="placedelivery"
size="small"
:parentVal="details.placedelivery"
@getInputChange="inputChange"
/>
<!-- <a-input :allowClear="true" v-model="details.placedelivery" /> --> <!-- <a-input :allowClear="true" v-model="details.placedelivery" /> -->
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
@ -610,7 +647,13 @@
> >
<div class="line-box"> <div class="line-box">
<!-- <inputView type="pkgs" :parentVal="details.pkgs" inputType="number" @getInputChange="inputChange"/> --> <!-- <inputView type="pkgs" :parentVal="details.pkgs" inputType="number" @getInputChange="inputChange"/> -->
<a-input :allowClear="true" size="small" v-model="details.pkgs" type="number" @change="changePkgs"/> <a-input
:allowClear="true"
size="small"
v-model="details.pkgs"
type="number"
@change="changePkgs"
/>
<i class="iconfont icon-bianji1 edit-icon" @click="editTextEntryModel('pkgs')"></i> <i class="iconfont icon-bianji1 edit-icon" @click="editTextEntryModel('pkgs')"></i>
</div> </div>
</a-form-model-item> </a-form-model-item>
@ -800,9 +843,7 @@ import inputView from '../components/inputView'
import textareaView from '../components/textareaView' import textareaView from '../components/textareaView'
import selectView from '../components/selectView' import selectView from '../components/selectView'
import datePickerView from '../components/datePickerView' import datePickerView from '../components/datePickerView'
import { import { BookingTemplateAdd } from '@/api/modular/main/BookingLedger'
BookingTemplateAdd
} from '@/api/modular/main/BookingLedger'
let timer let timer
export default { export default {
@ -904,7 +945,7 @@ export default {
} }
} }
}, },
created() { }, created() {},
mounted() { mounted() {
const shipperScroll = document.getElementById('shipper-scroll') const shipperScroll = document.getElementById('shipper-scroll')
if (shipperScroll) { if (shipperScroll) {
@ -957,7 +998,7 @@ export default {
this.yardVisible = false this.yardVisible = false
this.yardType = '' this.yardType = ''
}, },
init() { }, init() {},
// //
saveModel(type) { saveModel(type) {
@ -1439,23 +1480,29 @@ export default {
this.cbmtotalRes = cbm this.cbmtotalRes = cbm
}, },
// - // -
getSelectViewRes ({ type, res }) { getSelectViewRes({ type, res }) {
console.log('选择数据: ', type, res) console.log('选择数据: ', type, res)
if (['yard'].includes(type)) { if (['yard'].includes(type)) {
// //
this.details[type] = res.name || '' this.details[type] = res.name || ''
this.details[`${type}id`] = res.code || '' this.details[`${type}id`] = res.code || ''
} else if (['placereceiptid', 'portloadid', 'transportid', 'portdischargeid', 'destinationid', 'placedeliveryid'].includes(type)) { } else if (
['placereceiptid', 'portloadid', 'transportid', 'portdischargeid', 'destinationid', 'placedeliveryid'].includes(
type
)
) {
// //
this.details[type] = res['ediCode'] || '' this.details[type] = res['ediCode'] || ''
this.details[type.replace('id', '')] = res['enName'] || '' this.details[type.replace('id', '')] = res['enName'] || ''
if (type === 'portloadid') { // if (type === 'portloadid') {
//
this.details.issueplace = res['enName'] || '' this.details.issueplace = res['enName'] || ''
this.details.issueplaceid = res['ediCode'] || '' this.details.issueplaceid = res['ediCode'] || ''
// this.details.prepardat = this.details.prepardat ? this.details.prepardat : res['enName'] || '' // this.details.prepardat = this.details.prepardat ? this.details.prepardat : res['enName'] || ''
this.details.placereceiptid = this.details.placereceiptid ? this.details.placereceiptid : res['ediCode'] || '' this.details.placereceiptid = this.details.placereceiptid ? this.details.placereceiptid : res['ediCode'] || ''
this.details.placereceipt = this.details.placereceipt ? this.details.placereceipt : res['enName'] || '' this.details.placereceipt = this.details.placereceipt ? this.details.placereceipt : res['enName'] || ''
} else if (type === 'portdischargeid') { // } else if (type === 'portdischargeid') {
//
// this.details.payableat = this.details.payableat ? this.details.payableat : res['enName'] || '' // this.details.payableat = this.details.payableat ? this.details.payableat : res['enName'] || ''
// this.details.payableatid = this.details.payableatid ? this.details.payableatid : res['ediCode'] || '' // this.details.payableatid = this.details.payableatid ? this.details.payableatid : res['ediCode'] || ''
} else if (type === 'placereceiptid') { } else if (type === 'placereceiptid') {
@ -1463,14 +1510,26 @@ export default {
this.details.portload = this.details.portload ? this.details.portload : res['enName'] || '' this.details.portload = this.details.portload ? this.details.portload : res['enName'] || ''
} }
// 线 // 线
console.log(`用户航线设置: ${this.userHasLine}, 卸货港航线设置: ${this.portdischargeHasline}, 目的港航线设置: ${this.destinationidHasline}`) console.log(
if (['portdischargeid', 'destinationid'].includes(type)) { // , `用户航线设置: ${this.userHasLine}, 卸货港航线设置: ${this.portdischargeHasline}, 目的港航线设置: ${this.destinationidHasline}`
if (Object.keys(res).length === 0 || !res.lineName || res.lineName.length === 0 || !res.lineName[0]['cnName']) { )
if (['portdischargeid', 'destinationid'].includes(type)) {
// ,
if (
Object.keys(res).length === 0 ||
!res.lineName ||
res.lineName.length === 0 ||
!res.lineName[0]['cnName']
) {
this[`${type}Hasline`] = false this[`${type}Hasline`] = false
return false return false
} }
if (res.lineName[0]['carrierCode'] && this.details.carrierid !== res.lineName[0]['carrierCode']) { return false } if (res.lineName[0]['carrierCode'] && this.details.carrierid !== res.lineName[0]['carrierCode']) {
if (type === 'destinationid' && this.portdischargeHasline) { return false } return false
}
if (type === 'destinationid' && this.portdischargeHasline) {
return false
}
this.details.lineName = this.userHasLine ? this.details.lineName : res.lineName[0]['cnName'] this.details.lineName = this.userHasLine ? this.details.lineName : res.lineName[0]['cnName']
if (type === 'portdischargeid') { if (type === 'portdischargeid') {
this.portdischargeHasline = true this.portdischargeHasline = true
@ -1502,7 +1561,7 @@ export default {
this.details.shippingMethod = res['name'] || '' this.details.shippingMethod = res['name'] || ''
} }
}, },
dateChangeFun ({ type, value }) { dateChangeFun({ type, value }) {
console.log(type, value) console.log(type, value)
if (['closingdate', 'closevgmdate', 'closedocdate'].includes(type)) { if (['closingdate', 'closevgmdate', 'closedocdate'].includes(type)) {
this.details[type] = value + ':00' this.details[type] = value + ':00'
@ -1511,12 +1570,11 @@ export default {
} }
console.log('== 日期修改 ==', type, value, this.details[type]) console.log('== 日期修改 ==', type, value, this.details[type])
}, },
tabStopFun () { tabStopFun() {
return false return false
}, },
tabChangeFun () { tabChangeFun() {},
}, toNotifyparty() {
toNotifyparty () {
this.details.notifyparty = this.details.consignee this.details.notifyparty = this.details.consignee
this.$forceUpdate() this.$forceUpdate()
} }

@ -9,7 +9,7 @@
<!-- --> <!-- -->
</template> </template>
<script> <script>
let timer; let timer
export default { export default {
name: '', name: '',
props: { props: {
@ -38,17 +38,19 @@ export default {
}, },
watch: { watch: {
parentVal(nval, oval) { parentVal(nval, oval) {
if (this.inEdit) { return false } if (this.inEdit) {
return false
}
this.value = nval this.value = nval
} }
}, },
mounted() {}, mounted() {},
methods: { methods: {
debounce (func, wait, ...args) { debounce(func, wait, ...args) {
if (timer) clearTimeout(timer); if (timer) clearTimeout(timer)
timer = setTimeout(() => { timer = setTimeout(() => {
func.apply(this, args); func.apply(this, args)
}, wait); }, wait)
}, },
textareaBlur() { textareaBlur() {
if (this.openToCDB) { if (this.openToCDB) {
@ -70,27 +72,27 @@ export default {
}) })
}, },
ToCDB(str) { ToCDB(str) {
var tmp = ''; var tmp = ''
for (var i = 0; i < str.length; i++) { for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) { if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) {
tmp += String.fromCharCode(str.charCodeAt(i) - 65248); tmp += String.fromCharCode(str.charCodeAt(i) - 65248)
} else { } else {
tmp += String.fromCharCode(str.charCodeAt(i)); tmp += String.fromCharCode(str.charCodeAt(i))
} }
} }
tmp = tmp.replace(//ig, ',') tmp = tmp.replace(//gi, ',')
tmp = tmp.replace(/。/ig, '.') tmp = tmp.replace(/。/gi, '.')
tmp = tmp.replace(//ig, ';') tmp = tmp.replace(//gi, ';')
tmp = tmp.replace(//ig, ':') tmp = tmp.replace(//gi, ':')
tmp = tmp.replace(//ig, '?') tmp = tmp.replace(//gi, '?')
tmp = tmp.replace(//ig, '!') tmp = tmp.replace(//gi, '!')
tmp = tmp.replace(/《/ig, '<<') tmp = tmp.replace(/《/gi, '<<')
tmp = tmp.replace(/》/ig, '>>') tmp = tmp.replace(/》/gi, '>>')
tmp = tmp.replace(//ig, "'") tmp = tmp.replace(//gi, "'")
tmp = tmp.replace(//ig, "'") tmp = tmp.replace(//gi, "'")
tmp = tmp.replace(/、/ig, ',') tmp = tmp.replace(/、/gi, ',')
// tab // tab
tmp = tmp.replace(/\t/ig, ' ') tmp = tmp.replace(/\t/gi, ' ')
// //
if (/[\u4E00-\u9FA5]+/g.test(tmp) && ['description', 'marks'].includes(this.type)) { if (/[\u4E00-\u9FA5]+/g.test(tmp) && ['description', 'marks'].includes(this.type)) {
tmp = tmp.replace(/[\u4E00-\u9FA5]+/g, '') tmp = tmp.replace(/[\u4E00-\u9FA5]+/g, '')
@ -98,7 +100,7 @@ export default {
} }
return tmp return tmp
}, },
getTypeName (type) { getTypeName(type) {
switch (type) { switch (type) {
case 'marks': case 'marks':
return '封志号 / 标记与号码' return '封志号 / 标记与号码'

@ -266,7 +266,7 @@
title="下货纸比对(有差异)" title="下货纸比对(有差异)"
@cancel="TaskShippingOrderCompareHandleCancel" @cancel="TaskShippingOrderCompareHandleCancel"
:visible="TaskShippingOrderCompareVisible" :visible="TaskShippingOrderCompareVisible"
width="60%" width="40%"
> >
<template slot="footer"> <template slot="footer">
<a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> <a-button key="back" @click="TaskShippingOrderCompareHandleCancel">
@ -300,10 +300,10 @@
> >
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p>{{ item.reqVal }}</p> <p>{{ item.reqVal }}</p>
<p v-if="item.msg" :style="{ flex: 1 }"> <p v-if="item.msg">
<a-icon type="close" :style="{ color: 'red' }" /> <a-icon type="close" :style="{ color: 'red' }" />
</p> </p>
<p v-else :style="{ flex: 1 }"><a-icon type="check" :style="{ color: 'green' }" /></p> <p v-else><a-icon type="check" :style="{ color: 'green' }" /></p>
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p v-if="!item.isDiff">{{ item.targetVal }}</p> <p v-if="!item.isDiff">{{ item.targetVal }}</p>
<p v-else v-html="item.mergeHtml"></p> <p v-else v-html="item.mergeHtml"></p>
@ -329,10 +329,10 @@
> >
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p>{{ item.reqVal }}</p> <p>{{ item.reqVal }}</p>
<p v-if="item.msg" :style="{ flex: 1 }"> <p v-if="item.msg">
<a-icon type="close" :style="{ color: 'red' }" /> <a-icon type="close" :style="{ color: 'red' }" />
</p> </p>
<p v-else :style="{ flex: 1 }"><a-icon type="check" :style="{ color: 'green' }" /></p> <p v-else><a-icon type="check" :style="{ color: 'green' }" /></p>
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p v-if="!item.isDiff">{{ item.targetVal }}</p> <p v-if="!item.isDiff">{{ item.targetVal }}</p>
<p v-else v-html="item.mergeHtml"></p> <p v-else v-html="item.mergeHtml"></p>
@ -2710,10 +2710,13 @@ export default {
&:nth-child(1) { &:nth-child(1) {
flex: 3; flex: 3;
} }
&:nth-child(2) {
width: 46px;
}
&:nth-child(3) { &:nth-child(3) {
flex: 3; flex: 3;
} }
flex: 1;
> p { > p {
&:first-child { &:first-child {
font-weight: bolder; font-weight: bolder;
@ -2736,6 +2739,10 @@ export default {
&:nth-child(1) { &:nth-child(1) {
flex: 1; flex: 1;
} }
&:nth-child(3) {
flex: 0;
margin: 0 1rem;
}
&:nth-child(4) { &:nth-child(4) {
flex: 1; flex: 1;
} }

Loading…
Cancel
Save