123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- import {
- apiMyClassifyList,
- apiPublicClassifyList,
- apiAddClassify,
- apiEidtClassify,
- apiDeleteClassify,
- apiShareClassify,
- apiClassifyCopy
- } from '@/api/myETA.js'
- import apiETAForum from '@/api/etaForum'
- import {reactive} from 'vue'
- import { showToast,showDialog,Dialog } from 'vant';
- export function useClassify(){
- const classifyTypeOpt=[
- {
- name:"我的图库",
- type:1
- },
- {
- name:"ETA社区图库",
- type:3
- },
- {
- name:"公共图库",
- type:2
- }
- ]
- const classifyState=reactive({
- classifyTypeAct:1,//当前选中的类型
- myClassifyList:[],//我的图库分类
- pubClassifyList:[],//公共图库分类
- forumClassifyList:[],//ETA社区图库分类
- classifyAct:0,//当前选中的分类id
- showEidtClassifyName:false,//显示新增/编辑分类弹窗
- isAddClassifyName:false,//是否为新增分类 false为编辑分类
- classifyNameVal:'',//当前分类名称
- showClassifyOpt:false,//显示分类操作弹窗
- activeClassifyVal:null,//当前选中的分类数据
- })
- // 获取我的图库分类
- const getMyClassify=async()=>{
- const res=await apiMyClassifyList()
- if(res.Ret===200){
- classifyState.myClassifyList=res.Data.List||[]
- }
- }
- // 获取公共图库分类
- const getPubClassify=async()=>{
- const res=await apiPublicClassifyList()
- if(res.Ret===200){
- classifyState.pubClassifyList=res.Data.List||[]
- }
- }
- // 获取ETA社区图库分类
- const getETAForumClassify=async()=>{
- const res=await apiETAForum.myClassifyList()
- if(res.Ret===200){
- const arr=res.Data.List||[]
- classifyState.forumClassifyList=arr.map(item=>{
- return {
- ...item,
- MyChartClassifyId:item.CollectClassifyId,
- MyChartClassifyName:item.ClassifyName
- }
- })
- // 没有分类则去除eta社区分类模块
- if(classifyState.forumClassifyList.length===0){
- classifyTypeOpt.splice(1,1)
- }
- }
- }
- // 切换图库分类类型
- const classifyTypeChange=(e)=>{
- classifyState.classifyTypeAct=e.name
- }
- // 显示新增分类弹窗
- const handleAddClassify=(item)=>{
- console.log('item',item);
- classifyState.isAddClassifyName=item?false:true
- classifyState.classifyNameVal=item.MyChartClassifyName||''
- classifyState.showEidtClassifyName=true
- }
- // 确认编辑分类
- const handleConfirmEditClassify=async ()=>{
- if(!classifyState.classifyNameVal){
- showToast('请填写分类名称!')
- return
- }
- // 新增
- let res
- if(classifyState.isAddClassifyName){
- res=await apiAddClassify({MyChartClassifyName:classifyState.classifyNameVal})
- }else{
- res=await apiEidtClassify({
- MyChartClassifyName:classifyState.classifyNameVal,
- MyChartClassifyId:classifyState.activeClassifyVal.MyChartClassifyId
- })
- }
- if(res.Ret===200){
- getMyClassify()
- classifyState.showEidtClassifyName=false
- }
- }
- // 显示分类操作弹窗
- const handleShowOpt=(item)=>{
- classifyState.activeClassifyVal=item
- classifyState.showClassifyOpt=true
- }
- // 设置分类是否为公共
- const handleClassifyShare=async ()=>{
- const params={
- IsPublic:classifyState.activeClassifyVal.IsPublic?0:1,
- MyChartClassifyId:classifyState.activeClassifyVal.MyChartClassifyId
- }
- const res=await apiShareClassify(params)
- if(res.Ret===200){
- classifyState.activeClassifyVal.IsPublic=params.IsPublic
- getMyClassify()
- showToast('设置成功')
- }
- }
- // 复制公共图表分类到我的分类中
- const handleCopyClassify=async (item)=>{
- const res=await apiClassifyCopy({
- MyChartClassifyId:item.MyChartClassifyId
- })
- if(res.Ret===200){
- setTimeout(() => {
- showToast('复制成功')
- }, 100);
- getMyClassify()
- }
- }
- // 删除分类
- const handleClassifyDel=(item)=>{
- showDialog({
- title: '提示',
- message: '若删除分类,则分类下关联的所有图表将被全部删除,是否确认删除?',
- showCancelButton:true
- }).then(() => {
- // on close
- apiDeleteClassify({MyChartClassifyId:item.MyChartClassifyId}).then(res=>{
- if(res.Ret===200){
- getMyClassify()
- classifyState.showClassifyOpt=false
- setTimeout(() => {
- showToast('删除成功')
- }, 100);
- }
- })
- }).catch(()=>{})
- }
- const handleAddClassifyBeforeClose=(action)=>{
- if(action==='confirm'&&classifyState.isAddClassifyName){
- return false
- }else{
- return true
- }
- }
- return {
- classifyTypeOpt,
- classifyState,
- getMyClassify,
- getPubClassify,
- getETAForumClassify,
- classifyTypeChange,
- handleAddClassify,
- handleConfirmEditClassify,
- handleShowOpt,
- handleClassifyShare,
- handleCopyClassify,
- handleClassifyDel,
- handleAddClassifyBeforeClose
- }
- }
|