Files
cmanager/src/views/manage/recommend/manageContent/addDialog.vue
2024-02-02 15:04:47 +08:00

279 lines
7.5 KiB
Vue

<template>
<div>
<el-form size="small" label-position="right" style="padding-left: 10px;padding-right: 10px;" :inline="true">
<el-row :span="24">
<el-form-item label="一级分类" prop="firstId">
<el-select v-model="query.firstId" placeholder="请选择分类" @change="secondList">
<el-option v-for="(item, index) in first" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="二级分类" prop="secondId">
<el-select v-if="query.firstId" v-model="query.secondId" placeholder="请选择标签">
<el-option v-for="(item, index) in second" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
<el-select v-else disabled v-model="query.secondId" placeholder="请选择标签"></el-select>
</el-form-item>
<div class="searchBtn">
<el-button type="primary" size="small" icon="el-icon-search" @click="searchChange1"> </el-button>
<el-button size="small" icon="el-icon-delete" @click="searchReset1"> </el-button>
</div>
</el-row>
</el-form>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
:page.sync="page"
ref="crud"
@search-change="searchChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@selection-change="selectionChange"
@on-load="onLoad"
>
<template slot="menuLeft">
<el-button size="small" type="primary" @click="submit" :loading="btnLoading">保存</el-button>
</template>
<template slot="menu" slot-scope="{row}">
<el-button size="small" type="text" @click="look(row)">查看</el-button>
</template>
</avue-crud>
<!-- 展示区 -->
<el-drawer title="查看" :visible.sync="viewDrawer" size="60%">
<modify-dialog v-if="viewDrawer" :formOption="formOption" disabled></modify-dialog>
</el-drawer>
</div>
</template>
<script>
import modifyDialog from "./modifyDialog";
import {
getAllContentCategoryFirst,
getAllContentCategoryFirstList,
getAllContentCategorySecondList
} from '@/api/help/classify'
import {getContentList, contentDel} from '@/api/help/content/allContent'
import {sidebarContentSave} from '@/api/help/recommend/contentManage'
const wxStatus = process.env.VUE_APP_SITE
export default {
name: "addDialog",
inject:["contentManage", "recommend"],
components: {modifyDialog},
props: {
viewDrawerAdd: {
type: Boolean,
default: false
}
},
created() {
this.firstList()
},
data () {
return {
wxStatus,
btnLoading:false,
loading:false,
viewDrawer:false,
formOption: {
secondId: ''
},
query: {
secondId: ''
},
option: {
height: "auto",
tip: false,
searchShow: true,
searchMenuSpan: 4,
border: true,
index: false,
indexLabel: "序号",
selection: true,
viewBtn: false,
addBtn: false,
editBtn:false,
delBtn: false,
columnBtn: false,
menuWidth: 300,
labelWidth: 151,
dialogClickModal: false,
dialogType: "drawer",
dialogFullscreen: true,
column: [
{
label: "内容标题",
prop: "title",
display: false,
search: false
},
{
label: "一级分类",
prop: "firstId",
display: false,
type: "tree",
dicUrl: getAllContentCategoryFirst(),
props: {
label: "name",
value: "id"
},
},
{
label: "二级分类",
prop: "secondName",
display: false,
}
]
},
first: [],
second: [],
data: [],
submitList: [],
page: {
pageSize: 10,
currentPage: 1,
total: 100,
},
}
},
methods: {
firstList(){
getAllContentCategoryFirstList().then(res => {
this.first = res.data.data
})
},
secondList (id) {
getAllContentCategorySecondList (id).then(res => {
this.formOption.secondId = ''
this.second = res.data.data
})
},
/* 按钮方法 */
searchChange1() {
this.page.currentPage = 1;
this.onLoad(this.page, this.query);
},
searchReset1() {
this.query = {
secondId: ''
}
this.onLoad(this.page, this.query);
},
submit () {
if (this.recommend && this.recommend.titleList[1].select) {
this.wxSubmit()
} else {
this.pcSubmit()
}
},
/*
* wxStatus
* default 企嘉云
* hengshui 衡水
* */
wxSubmit () {
if(this.submitList.length === 0) return
this.btnLoading = true
var idArr = ''
this.submitList.forEach(e => {
if (idArr.length === 0) {
idArr+=e.id
} else {
idArr=idArr+','+e.id
}
})
var source = (this.wxStatus === 'default' || this.wxStatus ==='fangzhen') ? 1 : 2
var params = {
sidebarId: '',
type: source,
contentIds: idArr,
source: source
}
sidebarContentSave(params).then(res => {
this.$message({
type: 'success',
message: '保存成功!'
});
this.btnLoading = false
this.contentManage.closeAdd()
}).catch(() => {
this.btnLoading = false
})
},
pcSubmit () {
if(this.submitList.length === 0) return
this.btnLoading = true
var idArr = ''
this.submitList.forEach(e => {
if (idArr.length === 0) {
idArr+=e.id
} else {
idArr=idArr+','+e.id
}
})
// var source = this.wxStatus === 'default' ? 1 : 2
var pcSource = (this.wxStatus === 'default' || this.wxStatus ==='fangzhen') ? 3 : 4;
var params = {
sidebarId: this.$route.params.id,
type: this.$route.params.type,
contentIds: idArr,
source: pcSource
}
sidebarContentSave(params).then(res => {
this.$message({
type: 'success',
message: '保存成功!'
});
this.btnLoading = false
this.contentManage.closeAdd()
}).catch(() => {
this.btnLoading = false
})
},
look (row) {
this.formOption = JSON.parse(JSON.stringify(row))
this.formOption.type = JSON.parse(JSON.stringify(row.firstName))
this.formOption.tag = JSON.parse(JSON.stringify(row.secondName))
this.formOption.note = JSON.parse(JSON.stringify(row.content))
this.viewDrawer = true
},
/* 表格方法 */
onLoad(page, params = {}) {
this.loading = true;
getContentList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
});
},
selectionChange(list){
this.submitList = JSON.parse(JSON.stringify(list))
},
currentChange(val) {
this.page.currentPage = val
},
sizeChange(val) {
this.page.currentPage = 1
this.page.pageSize = val
},
refreshChange () {
this.page.currentPage = 1;
this.onLoad(this.page)
}
}
}
</script>
<style scoped>
.searchBtn {
display: inline-block;
margin-bottom: 18px;
}
</style>