12 changed files with 286 additions and 44 deletions
@ -0,0 +1,42 @@ |
|||||
|
export default { |
||||
|
searchFields: [ |
||||
|
{ |
||||
|
name: '附加编码', |
||||
|
value: 'additionalCode', |
||||
|
type: 'input', |
||||
|
isFixed: true, |
||||
|
span: 3 |
||||
|
}, |
||||
|
{ |
||||
|
name: '语言类别', |
||||
|
value: 'cultureCode', |
||||
|
type: 'select', |
||||
|
optionsKey: 'GLOBAL_TARIFF_LANGUAGE_TYPE', |
||||
|
isFixed: true, |
||||
|
span: 3 |
||||
|
} |
||||
|
], |
||||
|
columns:[ |
||||
|
{ |
||||
|
label: '附加编码', |
||||
|
prop: 'additionalCode', |
||||
|
'width': 130, |
||||
|
}, |
||||
|
{ |
||||
|
label: '附加编码类型', |
||||
|
prop: 'additionalCodeType', |
||||
|
'width': 130, |
||||
|
}, |
||||
|
{ |
||||
|
label: '附加编码说明', |
||||
|
prop: 'codeDescription', |
||||
|
'min-width': 160, |
||||
|
}, |
||||
|
{ |
||||
|
label: '语言类别', |
||||
|
prop: 'cultureCode', |
||||
|
'width': 130, |
||||
|
}, |
||||
|
] |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,158 @@ |
|||||
|
<template> |
||||
|
<md-dialog |
||||
|
:close-on-click-modal="false" |
||||
|
:title="title" |
||||
|
:fullscreen="false" |
||||
|
:visible.sync="dialogVisible" |
||||
|
append-to-body |
||||
|
width="800px" |
||||
|
> <div class="table-page-search-wrapper"> |
||||
|
<w-form @keyup.enter.native="searchQueryHandle" layout="inline"> |
||||
|
<w-row :gutter="10"> |
||||
|
<w-col :span="5" v-for="i in config.searchFields" :key="i.value"> |
||||
|
<w-input v-if="i.type === 'input'" v-model="queryParam[i.value]" :placeholder="i.placeholder || i.name" /> |
||||
|
<md-select v-if="i.type === 'select'" v-model="queryParam[i.value]" :placeholder="i.placeholder || i.name" filterable clearable> |
||||
|
<md-option |
||||
|
v-for="item in optionsData[i.optionsKey] || {}" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value"> |
||||
|
</md-option> |
||||
|
</md-select> |
||||
|
</w-col> |
||||
|
<w-col :span="8" style="justify-content:flex-end"> |
||||
|
<span style="float: right; overflow: hidden" class="table-page-search-submitButtons"> |
||||
|
<w-button @click="searchQueryHandle" type="primary" icon="search">查询</w-button> |
||||
|
<w-button @click="searchResetHandle" type="primary" style="margin-left: 8px">重置</w-button> |
||||
|
</span> |
||||
|
</w-col> |
||||
|
</w-row> |
||||
|
</w-form> |
||||
|
</div> |
||||
|
<md-table :data="tableData" border size="mini" style="width: 100%" @row-dblclick="rowDblclick"> |
||||
|
<md-table-column v-for="col in config.columns" :key="col.prop" :prop="col.prop" :label="col.label" v-bind="{ ...$attrs }"></md-table-column> |
||||
|
</md-table> |
||||
|
</md-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { postAction, getAction } from '@/api/manage'; |
||||
|
import config from './additionCode'; |
||||
|
import lodash from 'lodash'; |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
config, |
||||
|
queryParam:{}, |
||||
|
modelData:{}, |
||||
|
tableData:[], |
||||
|
tableDataBackup:[], |
||||
|
dialogVisible: false, |
||||
|
optionsData:{}, |
||||
|
title: '' |
||||
|
}; |
||||
|
}, |
||||
|
methods: { |
||||
|
searchQueryHandle(){ |
||||
|
const { additionalCode, cultureCode } = this.queryParam; |
||||
|
if (additionalCode && isNaN(additionalCode)) { |
||||
|
this.$MdMessage({ |
||||
|
message: '附加编码只能输入数字', |
||||
|
type: 'warning' |
||||
|
}); |
||||
|
return; |
||||
|
} |
||||
|
if (additionalCode && String(additionalCode).length > 6) { |
||||
|
this.$MdMessage({ |
||||
|
message: '附加编码不能超过6位', |
||||
|
type: 'warning' |
||||
|
}); |
||||
|
return; |
||||
|
} |
||||
|
if( additionalCode || cultureCode) { |
||||
|
const filterData = this.tableDataBackup.filter(item => { |
||||
|
// 处理 additionalCode |
||||
|
let additionalCodeMatch = true; |
||||
|
if (!lodash.isEmpty(additionalCode)) { |
||||
|
// 只有当筛选条件有值时才进行匹配 |
||||
|
additionalCodeMatch = item.additionalCode === additionalCode; |
||||
|
} |
||||
|
|
||||
|
// 处理 cultureCode |
||||
|
let cultureCodeMatch = true; |
||||
|
if (!lodash.isEmpty(cultureCode)) { |
||||
|
// 只有当筛选条件有值时才进行匹配 |
||||
|
cultureCodeMatch = item.cultureCode === cultureCode; |
||||
|
} |
||||
|
|
||||
|
return additionalCodeMatch && cultureCodeMatch; |
||||
|
}); |
||||
|
this.tableData = filterData; |
||||
|
} else { |
||||
|
this.tableData = this.tableDataBackup; |
||||
|
} |
||||
|
}, |
||||
|
searchResetHandle(){ |
||||
|
this.queryParam = {}; |
||||
|
this.tableData = this.tableDataBackup; |
||||
|
}, |
||||
|
show({data}){ |
||||
|
if(!data.hsCode){ |
||||
|
this.$message.warning('商品编码不能为空,请维护后重试'); |
||||
|
return; |
||||
|
} |
||||
|
this.queryParam = { |
||||
|
additionalCode: data.additionalCode || '', |
||||
|
cultureCode: 'eng' |
||||
|
} |
||||
|
this.dialogVisible = true; |
||||
|
this.title = data.hsCode + '-附加编码'; |
||||
|
this.modelData = data; |
||||
|
this.$nextTick(()=>{ |
||||
|
this.getDate(); |
||||
|
}) |
||||
|
}, |
||||
|
close(){ |
||||
|
this.dialogVisible = false; |
||||
|
this.tableData = []; |
||||
|
}, |
||||
|
rowDblclick(row){ |
||||
|
this.$emit('confirm', row) |
||||
|
this.close(); |
||||
|
}, |
||||
|
getDate() { |
||||
|
postAction(process.env.VUE_APP_API_BASE_DOMAIN + '/api-iems-cn/base/tariff/additional/code/v1/get-by-page', { |
||||
|
hscode: this.modelData.hsCode || '', |
||||
|
countryCode: this.modelData.country || '', |
||||
|
pageSize: 999 |
||||
|
}).then(res => { |
||||
|
if (res && +res.code === 0) { |
||||
|
this.tableDataBackup = lodash.cloneDeep(res.data.list); |
||||
|
this.searchQueryHandle(); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initDict() { |
||||
|
const keyList = ['GLOBAL_TARIFF_LANGUAGE_TYPE']; |
||||
|
getAction(process.env.VUE_APP_API_BASE_DOMAIN + '/api-it-dc/dictionaryDetail/translateWithTenant', |
||||
|
{ dictCodes: keyList.join(',') } |
||||
|
).then(res => { |
||||
|
if (res && +res.code === 0 && res.data && res.data.GLOBAL_TARIFF_LANGUAGE_TYPE) { |
||||
|
const data = res.data.GLOBAL_TARIFF_LANGUAGE_TYPE; |
||||
|
const list = []; |
||||
|
Object.keys(data).forEach(key => { |
||||
|
list.push({ |
||||
|
label: data[key], |
||||
|
value: key |
||||
|
}) |
||||
|
}); |
||||
|
this.optionsData.GLOBAL_TARIFF_LANGUAGE_TYPE = list; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.initDict() |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
@ -1,6 +0,0 @@ |
|||||
1dddssssdf |
|
||||
sa |
|
||||
df |
|
||||
asg |
|
||||
asggs |
|
||||
|
|
||||
Loading…
Reference in new issue