Commit 6012cb31 authored by zhengke's avatar zhengke

颜色 优化

parent 2d0dcce5
...@@ -149,8 +149,8 @@ class ConfigService{ ...@@ -149,8 +149,8 @@ class ConfigService{
* *
* @returns 获取模板查询条件 配置项数据(颜色、国家、季节) * @returns 获取模板查询条件 配置项数据(颜色、国家、季节)
*/ */
static async GetTemplateQueryAsync():Promise<HttpResponse>{ static async GetTemplateQueryAsync(params:any):Promise<HttpResponse>{
return Api.Post("triptemplate_GetTemplateConfigData",{}) return Api.Post("triptemplate_GetTemplateConfigData",params)
} }
/** /**
......
<template> <template>
<div class="row items-center flex-between q-mb-lg"> <div class="row items-center flex-between q-mb-lg">
<div class="row items-center shrink q-pr-md marketTagDown marketTagDown"> <div class="row items-center shrink q-pr-md marketTagDown marketTagDown">
<div class="MarketButton cursor-pointer" <!-- <div class="MarketButton cursor-pointer"
:class="[datas.type == x.Id?'active':'']" v-for="(x,index) in datas.colorType" :key="index" :class="[datas.type == x.Id?'active':'']" v-for="(x,index) in datas.colorType" :key="index"
@click="datas.type=x.Id,search()"> @click="datas.type=x.Id,search()">
{{x.Name}} {{x.Name}}
</div> </div> -->
<!-- <span class="fz14 q-pr-sm shrink">&nbsp;&nbsp;列表类型:</span> <!-- <span class="fz14 q-pr-sm shrink">&nbsp;&nbsp;列表类型:</span>
<el-select v-model="datas.type" <el-select v-model="datas.type"
class="ml-1 shrink TemSel" class="ml-1 shrink TemSel"
...@@ -29,21 +29,27 @@ ...@@ -29,21 +29,27 @@
</template> </template>
</el-input> </el-input>
<div class="row"> <div class="row">
<el-button type="primary" size="default" style="color: #ffff;" @click="addColour"> <el-button type="primary" size="default" style="color: #ffff;" @click="addColour(1)">
新增颜色{{datas.type==2?'分类':''}} 新增颜色
</el-button>
<el-button type="primary" size="default" style="color: #ffff;" @click="addColour(2)">
新增分类
</el-button> </el-button>
<el-button v-if="datas.type==1" class="q-pl-md" type="primary" size="default" style="color: #ffff;" @click="BatchSetting"> <el-button class="q-pl-md" type="primary" size="default" style="color: #ffff;" @click="BatchSetting">
批量设置 设置分类
</el-button> </el-button>
</div> </div>
</div> </div>
<el-table v-loading="loading" ref="dataTableRef" highlight-current-row <el-table v-loading="loading" ref="dataTableRef" highlight-current-row
v-load-more="tableScrollHandler" :data="dataList" class="tableHBEbeef5 col" height="82vh" v-load-more="tableScrollHandler" :data="dataList" class="tableHBEbeef5 col" height="82vh"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange"
<el-table-column type="selection" width="55" v-if="datas.type==1"/> row-key="ID"
<el-table-column v-if="datas.type==1" label="颜色分类"> :tree-props="{ children: 'ChildList', hasChildren: 'hasChildren' }">
<el-table-column type="selection" width="55"
:selectable="selectable" :reserve-selection="true"/>
<el-table-column label="颜色分类">
<template #default="scope"> <template #default="scope">
{{scope.row.ColorName?scope.row.ColorName:'不限'}} {{scope.row.ColorName?scope.row.ColorName:''}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="datas.type==1?'颜色名称':'名称'"> <el-table-column :label="datas.type==1?'颜色名称':'名称'">
...@@ -54,11 +60,11 @@ ...@@ -54,11 +60,11 @@
<el-table-column label="色值"> <el-table-column label="色值">
<template #default="scope"> <template #default="scope">
<el-tag <el-tag
:color="scope.row.Content" :color="scope.row.ColorValue"
effect="dark" class="q-mr-md"> effect="dark" class="q-mr-md">
&nbsp; &nbsp;
</el-tag> </el-tag>
{{scope.row.Content}} {{scope.row.ColorValue}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="130"> <el-table-column label="操作" width="130">
...@@ -74,7 +80,7 @@ ...@@ -74,7 +80,7 @@
:close-on-click-modal="false" style="width: 373px;" :close-on-click-modal="false" style="width: 373px;"
class="small-padding" @close="close"> class="small-padding" @close="close">
<template #header> <template #header>
<div class="text-title text-center fz16 PingFangSC">{{datas.params.ID?'编辑':'新增'}}颜色{{datas.type==2?'分类':''}}</div> <div class="text-title text-center fz16 PingFangSC">{{datas.params.ID?'编辑':'新增'}}{{datas.type==2?'分类':'颜色'}}</div>
</template> </template>
<div class="addTemplateBox q-mb-lg fz14"> <div class="addTemplateBox q-mb-lg fz14">
<div v-if="datas.type==1" class="addTemplateInput q-mt-xs q-mb-lg row items-center"> <div v-if="datas.type==1" class="addTemplateInput q-mt-xs q-mb-lg row items-center">
...@@ -83,19 +89,20 @@ ...@@ -83,19 +89,20 @@
style="width: 260px;" style="width: 260px;"
class="ml-1" class="ml-1"
placeholder="请选择颜色分类" clearable> placeholder="请选择颜色分类" clearable>
<el-option :key="Number(0)" label="不限" :value="Number(0)"/> <el-option key="" label="不限" value=""/>
<el-option <el-option
v-for="item in ColorList" v-for="item in ColorList"
:key="item.ID" :key="item.ID"
:label="`${item.Name}`" :label="`${item.Name}`"
:value="item.ID" :value="item.ID"
:disabled="setColorDisabled(item.ID)"
/> />
</el-select> </el-select>
</div> </div>
<div class="addTemplateInput q-mt-xs q-mb-lg row items-center"> <div class="addTemplateInput q-mt-xs q-mb-lg row items-center">
<span class="q-pr-md shrink">{{datas.type==1?'':'分类'}}名称:</span> <span class="q-pr-md shrink">{{datas.type==1?'':'分类'}}名称:</span>
<el-input min="750" v-model="datas.params.Name" <el-input min="750" v-model="datas.params.Name"
:placeholder="datas.type==1?'请输入颜色名称':'请输入颜色分类名称'" class=""></el-input> :placeholder="datas.type==1?'请输入颜色名称':'请输入分类名称'" class=""></el-input>
</div> </div>
<div class="addTemplateInput q-mt-xs q-mb-lg row items-center"> <div class="addTemplateInput q-mt-xs q-mb-lg row items-center">
<span class="q-pr-md shrink">色值:</span> <span class="q-pr-md shrink">色值:</span>
...@@ -136,7 +143,7 @@ ...@@ -136,7 +143,7 @@
<div class="addTemplateInput q-mt-xs q-mb-lg"> <div class="addTemplateInput q-mt-xs q-mb-lg">
<template v-for="(x,index) in multipleSelection"> <template v-for="(x,index) in multipleSelection">
<el-tag <el-tag
:color="x.Content" :color="x.ColorValue"
effect="dark" class="q-mr-xs w10"> effect="dark" class="q-mr-xs w10">
&nbsp; &nbsp;
</el-tag> </el-tag>
...@@ -154,22 +161,10 @@ ...@@ -154,22 +161,10 @@
:key="item.ID" :key="item.ID"
:label="`${item.Name}`" :label="`${item.Name}`"
:value="item.ID" :value="item.ID"
:disabled="setColorDisabled(item.ID)"
/> />
</el-select> </el-select>
</div> </div>
<!-- <div class="addTemplateInput q-mt-xs q-mb-lg row items-center">
<span class="q-pr-md shrink">名称:</span>
<el-input min="750" v-model="datas.params.Name"
placeholder="请输入颜色名称" class=""></el-input>
</div>
<div class="addTemplateInput q-mt-xs q-mb-lg row items-center">
<span class="q-pr-md shrink">色值:</span>
<el-input min="750" v-model="datas.params.Content"
placeholder="例子:#e5e3da" class=""></el-input>
<div class="q-pl-sm">
<el-color-picker v-model="datas.params.Content" />
</div>
</div> -->
</div> </div>
<div class="text-center"> <div class="text-center">
<el-button class="MarketIndexButtom MarketRec" type="primary" @click="ConfirmCreation(1)" <el-button class="MarketIndexButtom MarketRec" type="primary" @click="ConfirmCreation(1)"
...@@ -207,11 +202,11 @@ ...@@ -207,11 +202,11 @@
const enTheme = ENT_USER_THEME const enTheme = ENT_USER_THEME
const dataList = ref([] as Array < any > ); const dataList = ref([] as Array < any > );
const RawDataList = ref([] as Array < any > ); const DataListAll = ref([] as Array < any > );
const loading = ref(false as any) const loading = ref(false as any)
const deleteLoading = ref<any>(null) const deleteLoading = ref<any>(null)
const queryObj = reactive({ const queryObj = reactive({
DictKey: 'Trip_Template_Color', // DictKey: 'Trip_Template_Color',
Name: '' Name: ''
}) })
const dataTableRef = ref() const dataTableRef = ref()
...@@ -248,6 +243,25 @@ ...@@ -248,6 +243,25 @@
const ColorList = ref([]) const ColorList = ref([])
const multipleSelection = ref([]) const multipleSelection = ref([])
const setColorDisabled = (ID:number) => {
if(datas.addEditVisible) {
if(datas.params.Code==ID) return true
else false
}
if(datas.DominantColour) {
for(let i=0;i<multipleSelection.value.length;i++){
if(multipleSelection.value[i].ID==ID) return true
else false
}
}
}
const selectable = (row:Object, index:Number)=> {
if (row.ChildList&&row.ChildList.length>0) {
return false;
} else {
return true;
}
}
const handleSelectionChange = (val: any) =>{ const handleSelectionChange = (val: any) =>{
multipleSelection.value = val multipleSelection.value = val
datas.paramsParent.ColorList = val.length>0? val.map(x=> {return x.ID}) : 0 datas.paramsParent.ColorList = val.length>0? val.map(x=> {return x.ID}) : 0
...@@ -282,12 +296,23 @@ ...@@ -282,12 +296,23 @@
await addEditColor() await addEditColor()
} }
} }
const toggleSelection = (rows:any) => {
if (rows) {
rows.forEach(row => {
dataTableRef.value.toggleRowSelection(row);
});
} else {
dataTableRef.value.clearSelection();
}
getColor()
}
const setColour = async () => { const setColour = async () => {
datas.requestLoading = true datas.requestLoading = true
const result = await LineService.BatchSetColor(datas.paramsParent) const result = await LineService.BatchSetColor(datas.paramsParent)
if(result.data.resultCode==1){ if(result.data.resultCode==1){
datas.DominantColour = false datas.DominantColour = false
datas.requestLoading = false datas.requestLoading = false
toggleSelection()
querySearchHandler() querySearchHandler()
}else{ }else{
ElMessage({ ElMessage({
...@@ -326,6 +351,7 @@ ...@@ -326,6 +351,7 @@
if(result.data.resultCode==1){ if(result.data.resultCode==1){
datas.addEditVisible = false datas.addEditVisible = false
datas.requestLoading = false datas.requestLoading = false
toggleSelection()
querySearchHandler() querySearchHandler()
}else{ }else{
ElMessage({ ElMessage({
...@@ -335,7 +361,8 @@ ...@@ -335,7 +361,8 @@
datas.requestLoading = false datas.requestLoading = false
} }
} }
const addColour = () => { const addColour = (Id:number) => {
datas.type = Id
datas.addEditVisible = true datas.addEditVisible = true
} }
const editDelete = (item: Object,index: Number) => { const editDelete = (item: Object,index: Number) => {
...@@ -344,6 +371,9 @@ ...@@ -344,6 +371,9 @@
}else{ }else{
datas.params = JSON.parse(JSON.stringify(item)) datas.params = JSON.parse(JSON.stringify(item))
datas.params.Code = item.Code?Number(item.Code):'' datas.params.Code = item.Code?Number(item.Code):''
datas.params.Content = item.ColorValue
datas.type = item.ChildList&&item.ChildList.length>0?2:1
if(datas.type==2||(datas.type==1&&!datas.params.Name))datas.params.Name = item.ColorName
datas.addEditVisible = true datas.addEditVisible = true
} }
} }
...@@ -366,7 +396,7 @@ ...@@ -366,7 +396,7 @@
}) })
let dataRes = await LineService.RemoveTemplateConfigData(item.ID) let dataRes = await LineService.RemoveTemplateConfigData(item.ID)
if (dataRes.data.resultCode == 1) { if (dataRes.data.resultCode == 1) {
queryObj.pageIndex = 1 // queryObj.pageIndex = 1
ElMessage({ ElMessage({
showClose: true, showClose: true,
message: `删除${item.Content}成功`, message: `删除${item.Content}成功`,
...@@ -391,48 +421,30 @@ ...@@ -391,48 +421,30 @@
} }
const tableScrollHandler = ()=>{ const tableScrollHandler = ()=>{
if(queryObj.pageCount>queryObj.pageIndex){ // if(queryObj.pageCount>queryObj.pageIndex){
queryObj.value.pageIndex++ // queryObj.value.pageIndex++
refreshHandler() // refreshHandler()
} // }
} }
const search = () => { const search = () => {
queryObj.pageIndex = 1 // queryObj.pageIndex = 1
querySearchHandler() querySearchHandler()
} }
const querySearchHandler = async () => { const querySearchHandler = async () => {
loading.value = true loading.value = true
try { try {
let pageRes = await LineService.GetTemplateConfigDataList(queryObj); let response = await ConfigService.GetTemplateQueryAsync(queryObj)
// if(datas.type==1) pageRes = await LineService.GetTemplateConfigDataList(queryObj); if (response.data.resultCode == 1) {
// else pageRes = await LineService.GetParentColor(queryColor.value);
if (pageRes.data.resultCode == 1) {
let arrList = function(list){ let arrList = function(list){
list.forEach(x=>{ list.forEach(x=>{
x.ColorName = '' x.Content = ''
}) })
} }
arrList(pageRes.data.data) arrList(response.data.data.ColorList)
if(datas.type==1) { DataListAll.value = response.data.data.ColorList
dataList.value = pageRes.data.data.filter(x=>{ dataList.value = response.data.data.ColorList
return x.Code // ColorList.value = response.data.data.ColorList
})
}
else {
dataList.value = pageRes.data.data.filter(x=>{
return !x.Code
})
}
for(let i=0;i<dataList.value.length;i++){
let Color = ColorList.value.filter(x=>{
if(datas.type==1) return x.ID==Number(dataList.value[i].Code)
else return x.ID==Number(dataList.value[i].ID)
})
if(Color.length>0) {
dataList.value[i].ColorName = Color[0].Name
}
}
} }
loading.value = false loading.value = false
} catch (error) { } catch (error) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment