提交 e3376ebb authored 作者: pengxiaohui's avatar pengxiaohui

设置模块接口调试

上级 1b59626c
......@@ -51,10 +51,10 @@ export function createStaff(data) {
return httpRequest.post('/api/cms/admin/v1/user/create', data)
}
/**
* 更新角色
* 更新员工
*/
export function updateStaff(data) {
return httpRequest.put(`/api/cms/admin/v1/user/${data.type_id}/update`, data)
return httpRequest.put(`/api/cms/admin/v1/user/${data.sso_id}/update`, data)
}
/* ------------------------------------项目管理------------------------------------ */
......@@ -77,8 +77,15 @@ export function createProject(data) {
* 更新项目
*/
export function updateProject(data) {
return httpRequest.put(`/api/cms/admin/v1/project/${data.type_id}/update`, data)
return httpRequest.put(`/api/cms/admin/v1/project/${data.project_id}/update`, data)
}
/**
* 删除项目
*/
export function deleteProject(data) {
return httpRequest.delete(`/api/cms/admin/v1/project/${data.project_id}/delete`, data)
}
/* ------------------------------------类型管理------------------------------------ */
/**
* 获取类型列表
......@@ -99,3 +106,9 @@ export function createType(data) {
export function updateType(data) {
return httpRequest.put(`/api/cms/admin/v1/type/${data.type_id}/update`, data)
}
/**
* 获取所有的内容分类
*/
export function getContentTypesList(params) {
return httpRequest.get('/api/cms/admin/v1/type/content-types', { params })
}
......@@ -8,7 +8,7 @@
<template v-slot:project_id="scope"><span class="details-handle" @click="handleDetails(scope.row)">{{scope.row.id}}</span></template>
<!-- 状态 -->
<template v-slot:status="{ row }">
<el-switch v-model="row.status" :active-value="1" :inactive-value="0" active-text="启用" inactive-text="停用"></el-switch>
<el-switch v-model="row.status" :active-value="1" :inactive-value="0" active-text="启用" inactive-text="停用" @change="statusChange(row)"></el-switch>
</template>
</table-list>
<el-drawer ref="drawer" :visible.sync="drawerVisible" size="490px" @close="handleDrawerClose">
......@@ -28,7 +28,7 @@
</el-form-item>
<el-form-item label="项目类型" prop="type_id">
<el-select v-model="form.type_id" placeholder="请选择项目类型" size="small" style="width:100%;">
<el-option :label="item.label" :value="item.id" v-for="item in projectTypeList" :key="item.id" />
<el-option :label="item.name" :value="item.id" v-for="item in projectTypeList" :key="item.id" />
</el-select>
</el-form-item>
<el-form-item label="项目网址" prop="project_uri">
......@@ -38,7 +38,7 @@
<el-checkbox :indeterminate="adType.isIndeterminate" v-model="adType.checkAll" @change="val => handleCheckAllChange(val, 'adType')">全选</el-checkbox>
<div style="margin: 2px 0;"></div>
<el-checkbox-group v-model="form.adType" @change="val => handleCheckedChange(val, 'adType')">
<el-checkbox v-for="item in typeList" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
<el-checkbox v-for="item in adTypeList" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="文章类型" style="margin-bottom:0;">
......@@ -66,7 +66,7 @@
</template>
<script>
import TableList from '@/components/TableList'
import { getProjectList, createProject } from '@/api/settings'
import { getProjectList, getTypeList, getContentTypesList, createProject, updateProject, deleteProject } from '@/api/settings'
const defaultForm = {
name: '',
short_name: '',
......@@ -89,9 +89,6 @@ export default {
{ id: '1', name: '启用' },
{ id: '0', name: '停用' }
],
projectTypeList: [
{ id: '111', label: '学位教育' }
],
selectedItem: {},
drawerVisible: false,
drawerType: '',
......@@ -102,21 +99,10 @@ export default {
type_id: { required: true, message: '请输入项目类型', trigger: 'blur' },
project_uri: { required: true, message: '请输入项目网址', trigger: 'blur' }
},
adTypeList: [
{ id: '111', name: 'banner广告A' },
{ id: '122', name: '正文区广告A' },
{ id: '1331', name: '侧边栏广告a' }
],
articleTypeList: [
{ id: '111', name: 'banner广告b' },
{ id: '122', name: '正文区广告b' },
{ id: '1331', name: '侧边栏广告b' }
],
imageTextTypeList: [
{ id: '111', name: 'banner广告c' },
{ id: '122', name: '正文区广告c' },
{ id: '1331', name: '侧边栏广告c' }
],
projectTypeList: [],
adTypeList: [],
articleTypeList: [],
imageTextTypeList: [],
adType: {
isIndeterminate: false,
checkAll: false
......@@ -128,7 +114,8 @@ export default {
imageTextType: {
isIndeterminate: false,
checkAll: false
}
},
tableSelections: []
}
},
computed: {
......@@ -140,7 +127,7 @@ export default {
let text = ''
if (type === 'create') text = '新建项目'
else if (type === 'edit') text = '编辑项目'
else text = this.selectedItem.title || '项目详情'
else text = this.selectedItem.name || '项目详情'
return text
},
tableOptions() {
......@@ -183,6 +170,10 @@ export default {
}
}
},
created() {
this.fetchProjectTypeList()
this.fetchContentTypeList()
},
methods: {
handleCreate() {
this.drawerVisible = true
......@@ -192,15 +183,25 @@ export default {
this.selectedItem = Object.assign({}, val)
this.drawerVisible = true
this.drawerType = 'details'
Object.keys(this.form).forEach(key => {
const valItem = val[key]
if (valItem) {
this.form[key] = valItem
}
})
this.form.adType = val.advert_type_ids
this.form.articleType = val.article_type_ids
this.form.imageTextType = val.imgtext_type_ids
console.log(this.form)
},
handleCheckAllChange(val, target) {
this.form[target] = val ? this.typeList.map(item => item.id) : [];
this.form[target] = val ? this[target + 'List'].map(item => item.id) : [];
this[target].isIndeterminate = false;
},
handleCheckedChange(val, target) {
const checkedCount = val.length;
this[target].checkAll = checkedCount === this.typeList.length;
this[target].isIndeterminate = checkedCount > 0 && checkedCount < this.typeList.length;
this[target].checkAll = checkedCount === this[target + 'List'].length;
this[target].isIndeterminate = checkedCount > 0 && checkedCount < this[target + 'List'].length;
},
handleDrawerClose() {
this.drawerVisible = false
......@@ -209,25 +210,87 @@ export default {
handleDrawerSubmit() {
this.$refs.drawerForm.validate(valid => {
if (valid) {
console.log('drawerForm')
if (this.drawerType === 'create') {
this.fetchCreateProject()
} else {
const data = this.getFormData()
data.project_id = this.selectedItem.id
this.fetchUpdateProject(data)
}
this.drawerVisible = false
} else {
return false
}
})
},
selectionChange(val) {
console.log(val)
this.tableSelections = val.map(item => item.id)
},
fetchCreateProject() {
statusChange(val) {
this.fetchUpdateProject({
project_id: val.id,
status: val.status
}, 'status')
},
getFormData() {
const form = this.form
const data = {
name: this.form.role_name
advert_type_ids: form.adType,
article_type_ids: form.articleType,
imgtext_type_ids: form.imageTextType
}
Object.keys(form).forEach(key => {
if (typeof key === 'string') {
data[key] = form[key]
}
})
return data
},
fetchCreateProject() {
const data = this.getFormData()
createProject(data).then((res) => {
if (res.code === 0 && res.message === 'SUCCESS') {
this.fetchRoleList()
this.$message.success('创建角色成功')
this.$message.success('新建项目成功')
this.$refs.tabList.refetch()
} else {
this.$message.error('创建角色失败')
this.$message.error(res.message || '新建项目失败')
}
})
},
fetchUpdateProject(data, type) {
const msg = type === 'status' ? '更改状态' : '更改项目'
updateProject(data).then((res) => {
if (res.code === 0 && res.message === 'SUCCESS') {
this.$message.success(msg + '成功')
this.$refs.tabList.refetch()
} else {
this.$message.error(res.message || msg + '失败')
}
})
},
fetchDeleteProject() {
deleteProject({ project_id: this.tableSelections[0] }).then((res) => {
if (res.code === 0 && res.data && res.data.status) {
this.$message.success('删除项目成功')
this.$refs.tabList.refetch()
} else {
this.$message.error(res.message || '删除项目失败')
}
})
},
fetchProjectTypeList() {
getTypeList({ type: 0, status: 1, limit: 100 }).then((res) => {
if (res.code === 0 && res.data && Array.isArray(res.data.data)) {
this.projectTypeList = res.data.data
}
})
},
fetchContentTypeList() {
getContentTypesList().then((res) => {
if (res.code === 0 && res.data) {
this.adTypeList = res.data.advert_list
this.articleTypeList = res.data.article_list
this.imageTextTypeList = res.data.imgtext_list
}
})
}
......
......@@ -256,9 +256,9 @@ export default {
createRole(data).then((res) => {
if (res.code === 0 && res.message === 'SUCCESS') {
this.fetchRoleList()
this.$message.success('建角色成功')
this.$message.success('建角色成功')
} else {
this.$message.error('建角色失败')
this.$message.error('建角色失败')
}
})
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论