@@ -14,6 +14,7 @@
v-bind = "crudBind"
: summary -method = summaryMethod1
:row-style = "rowStyleMethod"
:cell-class-name = "cellClassNameMethod"
@ search -change = " searchChange "
@ search -reset = " resetChange "
@ refresh -change = " refreshChange "
@@ -147,7 +148,16 @@ const { wsCache } = useCache()
const route = useRoute()
const message = useMessage() // 消息弹窗
const { mergeLocaleMessage, t } = useI18n() // 国际化
const defualtSearch=ref<any>({})
const transferFields={
'zoneName':'salezonename',
'saleTypeName':'saletypename',
'salerName':'salername',
'goodsName':'goodsname',
'customName':'customname',
'dosageName':'dosagename',
}
const loading = ref(false) // 列表的加载中
const isInit = ref(false)
const isSearch = ref(false)
@@ -178,6 +188,7 @@ const fieldList = ref<any[]>([]) // 添加fieldList引用
const hideFeilds= ref<any>({})
const hideCols=ref<any>([])
const dictFieldList=ref<any>([])
const textAlignFiels=ref<any>({})
const permissions =
wsCache.get(CACHE_KEY.USER).lideeYunjipermissions?.[route.meta.menuDataId as string] || false
const selectIds = computed(() => {
@@ -191,7 +202,8 @@ const remoteMethod= async(query,column)=>{
pageSize: 100,
pageNo:1,
}
params[column.prop]=query
params[transferFields[column.prop]?transferFields[column.prop]: column.prop]=query
let data = await ReportApi.getTableList(column.reportCode,params)
column.dicData=column.formatterDic(data)
}
@@ -267,6 +279,12 @@ const summaryMethod1=({columns,data})=>{
})
return styleObj
}
const cellClassNameMethod=({row,column,rowIndex,columnIndex})=>{
if(textAlignFiels.value[column.property]){
return 'textAlignCell'
}
}
function getCurrentDate() {
const now = new Date();
// 补零函数: 小于10则前面加0
@@ -379,6 +397,7 @@ const initTable = async () => {
}else{
tableSearch.value[config.prop]=item.searchDefaultValue
}
defualtSearch.value[config.prop]=tableSearch.value[config.prop]
}
if(['年','年度','年份','月','月度','月份','年月'].includes(item.fieldName)&&config.search){
@@ -413,19 +432,20 @@ const initTable = async () => {
'客户':'khxx',
'业务员':'ywyxx',
'业务区域':'ywqy',
'标准品名':'bzpm',
}
if(Object.keys(jkTableDicFields).includes(item.fieldName)&&config.search){
config.dataType= 'string'
config.reportCode= `${jkTableDicFields[item.fieldName]}`
const formatterData=(res) => { //请求数据格式化
const arr=[...new Set(res.records.map(item=>item[config.prop=="zonename"?"salezonename" :config.prop]))]
const arr=[...new Set(res.records.map(item=>item[transferFields[config.prop]?transferFields[config.prop] :config.prop]))]
return arr.map(item=>({label:item,value:item}))
}
let data = await ReportApi.getTableList(jkTableDicFields[item.fieldName],{pageSize: 50, pageNo:1})
ReportApi.getTableList(jkTableDicFields[item.fieldName],{pageSize: 50, pageNo:1}).then(res=>{
config.dicData=formatterData(res)
})
config.formatterDic=formatterData
config.page=1
config.total=data.total
config.dicData=formatterData(data)
searchReportSlots.value.push(config.prop)
// config.multiple?tableSearch.value[config.prop]=item.searchDefaultValue?item.searchDefaultValue.split(','):[]:''
}
@@ -556,12 +576,15 @@ const getSearchData = () => {
resolve(searchObj)
})
}
const computedIncluedes=(row,prop)=>{
return (typeof row[prop])==='string'&&(row[prop].includes('🔴')||row[prop].includes('🟢'))
}
const getTableData = async (isLoading = true) => {
if (timerObj.value.getTableData) clearTimeout(timerObj.value.getTableData)
await new Promise((resolve) => {
timerObj.value.getTableData = setTimeout(() => resolve(true), 100)
})
textAlignFiels.value={}
return new Promise(async (resolve) => {
if (isLoading) loading.value = true
const searchObj = await getSearchData()
@@ -709,9 +732,10 @@ const getTableData = async (isLoading = true) => {
// 没有分组字段,直接处理数据
processedData = data.records.map((record, recordIndex) => {
const flatRecord = { ...record }
// 处理固定列
fieldList.value.forEach(field => {
computedIncluedes(record,field.fieldCode)&&!textAlignFiels.value[field.fieldCode]?textAlignFiels.value[field.fieldCode]=true:''
if (field.isFixedColumn === 'Y' && field.fixedColumnValue) {
const fixedValues = field.fixedColumnValue.split(',')
flatRecord[field.fieldCode] = fixedValues[recordIndex] || ''
@@ -822,7 +846,10 @@ const searchChange = async (params?, done?) => {
}
const resetChange = () => {
return new Promise(async (resolve) => {
tableSearch.value = {}
tableSearch.value = {
'Group by':tableSearch.value['Group by']||[],
...defualtSearch.value
}
if (tablePage.value) tablePage.value['currentPage'] = 1
await getTableData()
resolve(true)
@@ -900,6 +927,7 @@ defineExpose({
}
. el - table _ _body tr . hover - row > td . el - table _ _cell {
background - color : # FFFFD2 ;
}
& . el - table -- enable - row - hover . el - table _ _body tr : hover > td . el - table _ _cell {
background - color : # FFFFD2 ;
@@ -910,6 +938,13 @@ defineExpose({
border - right : 1 px solid # 000 ! important ;
}
td . textAlignCell . cell {
span {
text - align : left ;
width : 100 % ;
display : inline - block ;
}
}
-- el - table - border - color : # 000 ;
tfoot . el - table _ _cell {
border - top : 1 px solid # 000 ! important ;