4 changed files with 611 additions and 554 deletions
@ -0,0 +1,202 @@ |
|||
<template> |
|||
<div> |
|||
<div class="div_tip"> |
|||
全部类别 |
|||
</div> |
|||
|
|||
<div class="div_list div_all_list"> |
|||
<el-scrollbar style="height:100%"> |
|||
<div class="div_room"> |
|||
|
|||
<div v-for="(item,index) in defaultList" |
|||
:key="index" |
|||
class="item" |
|||
@click="handelSelCategory(index)"> |
|||
<div v-if="item.selected" |
|||
class="icon_circle icon_sel"> |
|||
<!-- <icon name="el-icon-check" |
|||
scale="20"></icon> --> |
|||
<i class="el-icon-check" |
|||
style="font-size: 17px; color: #5d5d5d ;margin-left:1px;margin-top:2px" /> |
|||
</div> |
|||
<div v-if="!item.selected" |
|||
class="icon_circle"></div> |
|||
|
|||
<div class="item_category"> |
|||
<img :src="item.managementIcon" |
|||
alt /> |
|||
<span>{{item.label}}</span> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</el-scrollbar> |
|||
|
|||
</div> |
|||
<div class="div_btn"> |
|||
<el-button type="warning" |
|||
@click="handleCancle">取消</el-button> |
|||
<el-button type="primary" |
|||
class="btn_right" |
|||
@click="handleConfirm">确定</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapGetters } from "vuex"; |
|||
import { Loading } from 'element-ui'; //引入Loading服务 |
|||
import { requestPost } from "@/js/dai/request"; |
|||
|
|||
|
|||
let loading;//加载动画 |
|||
|
|||
export default { |
|||
|
|||
data () { |
|||
return { |
|||
defaultList: [], |
|||
addList: [] |
|||
|
|||
} |
|||
}, |
|||
async mounted () { |
|||
|
|||
|
|||
}, |
|||
methods: { |
|||
async initData () { |
|||
await this.getDefaultCategoryList() |
|||
|
|||
this.addList = [...this.categoryList] |
|||
this.addList.pop() |
|||
}, |
|||
//获取默认分类信息 |
|||
async getDefaultCategoryList () { |
|||
const url = "/oper/customize/icindividualcategorymanage/individualcategoryalllist" |
|||
// const url = "http://yapi.elinkservice.cn/mock/245/oper/customize/icindividualcategorymanage/individualcategoryalllist" |
|||
|
|||
let params = {} |
|||
|
|||
const { data, code, msg } = await requestPost(url, params) |
|||
|
|||
if (code === 0) { |
|||
// this.defaultList = [] |
|||
this.defaultList = [...data] |
|||
|
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
}, |
|||
|
|||
handelSelCategory (index) { |
|||
let obj = JSON.parse(JSON.stringify(this.defaultList[index])) |
|||
|
|||
if (!obj.selected) {//原状态不是选中状态,在数组最后添加 |
|||
this.addList.push(obj) |
|||
} else {//原状态是选中状态,从数组里找到并去除 |
|||
for (let itemIndex in this.addList) { |
|||
// debugger |
|||
let tempObj = this.addList[itemIndex] |
|||
if (obj.columnName === tempObj.columnName) { |
|||
this.addList.splice(itemIndex, 1); |
|||
break |
|||
|
|||
} |
|||
} |
|||
|
|||
this.addList.forEach(element => { |
|||
console.log(element.label) |
|||
}); |
|||
|
|||
} |
|||
|
|||
obj.selected = !obj.selected |
|||
this.$set(this.defaultList, index, obj) |
|||
|
|||
}, |
|||
|
|||
async handleConfirm () { |
|||
this.addList.forEach((element, index) => { |
|||
element.sort = index |
|||
element.columnId = element.id |
|||
}); |
|||
|
|||
const url = "/oper/customize/icindividualcategorymanage/editindividualcategory" |
|||
|
|||
|
|||
const { data, code, msg } = await requestPost(url, this.addList) |
|||
|
|||
if (code === 0) { |
|||
this.$emit('handleConfirm') |
|||
|
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
}, |
|||
|
|||
handleCancle () { |
|||
this.$emit('handleCancle') |
|||
}, |
|||
|
|||
|
|||
|
|||
//开启加载动画 |
|||
startLoading () { |
|||
loading = Loading.service({ |
|||
lock: true, //是否锁定 |
|||
text: '正在加载……', //加载中需要显示的文字 |
|||
background: 'rgba(0,0,0,.7)' //背景颜色 |
|||
}); |
|||
|
|||
}, |
|||
|
|||
//结束加载动画 |
|||
endLoading () { |
|||
//clearTimeout(timer); |
|||
if (loading) { |
|||
loading.close(); |
|||
} |
|||
}, |
|||
}, |
|||
props: { |
|||
categoryList: { |
|||
type: Array, |
|||
default () { |
|||
return [] |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
// selectWidth () { |
|||
// let width = this.selHouseName.length * 200 |
|||
// console.log(width) |
|||
// return width + 'px'; |
|||
// }, |
|||
|
|||
mapHeight () { |
|||
|
|||
return this.clientHeight - 120; |
|||
|
|||
}, |
|||
|
|||
...mapGetters(["clientHeight"]) |
|||
|
|||
}, |
|||
components: {}, |
|||
} |
|||
|
|||
</script> |
|||
|
|||
<style |
|||
lang="scss" |
|||
src="@/assets/scss/modules/management/categoryMain.scss" |
|||
scoped |
|||
></style> |
|||
|
|||
<style lang=scss > |
|||
.el-scrollbar__wrap { |
|||
overflow-x: hidden !important; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue