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

设置模块接口调试

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