浏览代码

修改栏目加3级

lrf402788946 5 年之前
父节点
当前提交
eea35fc0cd

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# 栏目表查询需要添加条件
+  > 如果不传parent_type,则默认不查出parent_type为"column"的数据

+ 3 - 5
src/components/jobs/column-form.vue

@@ -15,9 +15,9 @@
         </el-select>
       </el-form-item>
       <el-form-item
-        :label="`所属${form.parent_type === 'menu' ? '菜单' : '模块'}`"
+        :label="`所属${form.parent_type === 'menu' ? '菜单' : form.parent_type === 'module' ? '模块' : '栏目'}`"
         prop="parent_type"
-        v-if="form.parent_type === 'module' || form.parent_type === 'menu'"
+        v-if="form.parent_type === 'module' || form.parent_type === 'menu' || form.parent_type === 'column'"
       >
         <el-select v-model="form.parent_id" filterable @change="selectChild">
           <el-option v-for="(item, index) in parentList" :key="index" :value="item.id" :label="item.title"></el-option>
@@ -67,12 +67,10 @@ export default {
       limits: true,
       rules: {
         title: requiredAndMaxlen('栏目名称', 40),
-        type: requiredAndMaxlen('栏目类型', 40),
-        parent_type: requiredAndMaxlen('所属类型'),
       },
       typeList: [{ name: '常规栏目', value: 'column' }, { name: '外部链接', value: 'url' }, { name: '信息', value: 'content' }],
       parentList: [],
-      partList: [{ name: '菜单', value: 'menu' }, { name: '模块', value: 'module' }],
+      partList: [{ name: '菜单', value: 'menu' }, { name: '模块', value: 'module' }, { name: '子栏目', value: 'column' }],
       children: [],
     };
   },

+ 6 - 1
src/components/jobs/content-form.vue

@@ -3,7 +3,12 @@
     <slot>
       <el-form-item label="所属栏目" prop="parent_id">
         <el-select v-model="form.parent_id" @change="selectColumnn">
-          <el-option v-for="(item, index) in parentList" :key="index" :value="item.id" :label="item.title"></el-option>
+          <el-option
+            v-for="(item, index) in parentList"
+            :key="index"
+            :value="item.id"
+            :label="`${item.title}${item.parent_type === 'column' ? '(子栏目类型)' : ''}`"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item :label="`信息标题`" prop="title">

+ 5 - 5
src/store/jobsNew/column.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  column: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/delete/${id}`,
+  column: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/delete/${id}`,
   // column: '/adminapi/column/create',
   // query: '/adminapi/column/query',
   // fetch: id => `/adminapi/column/fetch/${id}`,

+ 6 - 6
src/store/jobsNew/dictionary.js

@@ -6,11 +6,11 @@ Vue.use(Vuex);
 const api = {
   dictionary: type => `/code/${type}/items`, //type === xzqh:query:level(1/2);parent(无/code)
   findOne: '/code/xzqh/findOne', //query:name
-  menu: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/query`,
-  column: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/column/query`, //栏目
-  module: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/query`,
-  list: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/query`, //信息列表
-  content: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/query`, //信息
+  menu: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/query`,
+  column: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/column/query`, //栏目
+  module: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/query`,
+  list: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/query`, //信息列表
+  content: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/query`, //信息
 };
 
 export const state = () => ({});
@@ -32,7 +32,7 @@ export const actions = {
 
     return result;
   },
-  //cms综合查询
+  //综合查询
   async allSearch({ state }, { type, site }) {
     console.log(type);
     console.log(_.get(api, type));

+ 5 - 5
src/store/jobsNew/link.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  link: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/img/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/img/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/img/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/img/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/img/delete/${id}`,
+  link: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/img/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/img/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/img/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/img/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/img/delete/${id}`,
 };
 export const state = () => ({});
 

+ 5 - 5
src/store/jobsNew/list.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  newslist: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/newslist/delete/${id}`,
+  newslist: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/newslist/delete/${id}`,
 };
 export const state = () => ({});
 

+ 5 - 5
src/store/jobsNew/menu.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  menu: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/menu/delete/${id}`,
+  menu: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/menu/delete/${id}`,
 };
 export const state = () => ({});
 

+ 5 - 5
src/store/jobsNew/module.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  modules: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/modules/delete/${id}`,
+  modules: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/modules/delete/${id}`,
 };
 export const state = () => ({});
 

+ 5 - 5
src/store/jobsNew/news.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  news: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/query`,
-  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/fetch/${id}`,
-  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/update/${id}`,
-  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/news/delete/${id}`,
+  news: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/query`,
+  fetch: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/fetch/${id}`,
+  update: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/update/${id}`,
+  delete: id => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/news/delete/${id}`,
 };
 export const state = () => ({});
 

+ 7 - 7
src/store/jobsNew/site.js

@@ -6,11 +6,11 @@ const { pageSize = 10 } = config;
 
 Vue.use(Vuex);
 const api = {
-  site: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/site/create`,
-  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/site/query`,
-  fetch: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/site/fetch/${site}`,
-  update: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/site/update/${site}`,
-  delete: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : '/cms'}/site/delete/${site}`,
+  site: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/site/create`,
+  query: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/site/query`,
+  fetch: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/site/fetch/${site}`,
+  update: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/site/update/${site}`,
+  delete: site => `/adminapi${process.env.NODE_ENV === 'development' ? '' : ''}/site/delete/${site}`,
 };
 export const state = () => ({});
 
@@ -20,8 +20,8 @@ export const actions = {
   async siteOperation({ state }, { type, data }) {
     let result;
     if (type === 'add') {
-      let { info, site, column } = data;
-      result = await this.$axios.$post(api.site, info, { site: site, column: column });
+      let { info, site } = data;
+      result = await this.$axios.$post(api.site, info, { site: site });
     }
     if (type === 'list') {
       let { site, column } = data;

+ 2 - 2
src/views/new-views/column.vue

@@ -49,8 +49,8 @@ export default {
       fields: [
         { name: 'title', label: '栏目名称' },
         { name: 'parent', label: '所属' },
+        { name: 'parent_type_word', label: '所属类型' },
         { name: 'is_use_word', label: '是否使用' },
-        { name: 'news_type_word', label: '内容分类' },
       ],
       /* 操作类型 */
       operation: [['edit', '编辑', 'el-icon-edit'], ['delete', '删除', 'el-icon-delete']] /* 操作类型 */,
@@ -78,7 +78,7 @@ export default {
         this.$set(this, `total`, result.total);
         result.data.map(item => {
           item.is_use_word = `${item.is_use}` === '0' ? `使用中` : '已禁止';
-          item.news_type_word = `${item.news_type}` === `1` ? '自定义栏目' : '抓取栏目';
+          item.parent_type_word = `${item.parent_type}` === `menu` ? '菜单' : `${item.parent_type}` === `module` ? '模块' : '子栏目' + '类型';
           return item;
         });
         this.$set(this, `list`, result.data);

+ 21 - 10
src/views/site/index.vue

@@ -23,10 +23,10 @@
         <el-input v-model="form.theme"></el-input>
       </el-form-item>
       <el-form-item label="站点介绍/联系方式" prop="content">
-        <wang-editor v-model="form.content" placeholder="请输入站点介绍/联系方式" upload-img-server="/files/jobs/jobfair/upload"></wang-editor>
+        <wang-editor v-model="form.content" placeholder="请输入站点介绍/联系方式" upload-img-server="/files/cms/site/upload"></wang-editor>
       </el-form-item>
       <el-form-item label="备注" prop="remark">
-        <wang-editor v-model="form.remark" placeholder="请输入备注信息" upload-img-server="/files/jobs/jobfair/upload"></wang-editor>
+        <wang-editor v-model="form.remark" placeholder="请输入备注信息" upload-img-server="/files/cms/site/upload"></wang-editor>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="handleSave" size="mini">保存</el-button>
@@ -60,9 +60,9 @@ export default {
       form: {},
       limits: true,
       rules: {
-        name: requiredAndMaxlen('栏目名称', 40),
-        status: requiredAndMaxlen('网站状态', 40),
-        domain: requiredAndMaxlen('域名', 40),
+        name: requiredAndMaxlen('网站名称', 200),
+        // status: requiredAndMaxlen('网站状态', 40),
+        domain: requiredAndMaxlen('域名'),
         banner: requiredAndMaxlen('banner图片', 40),
         copyright: requiredAndMaxlen('版权声明', 10240),
         theme: requiredAndMaxlen('主题', 40),
@@ -82,15 +82,26 @@ export default {
     ...mapActions(['siteOperation']),
     async search() {
       let result = await this.siteOperation({ type: 'search', data: { site: this.$user.unit.code } });
-      let object = JSON.parse(JSON.stringify(result.data));
-      object.status = `${object.status}` === '0' ? '正常' : `${object.status}` === '1' ? '未激活' : '已注销';
-      this.$set(this, 'form', object);
+      if (`${result.errcode}` === `0` && result.data !== null) {
+        let object = JSON.parse(JSON.stringify(result.data));
+        object.status = `${object.status}` === '0' ? '正常' : `${object.status}` === '1' ? '未激活' : '已注销';
+        this.$set(this, 'form', object);
+      }
       this.$set(this, `loading`, true);
     },
     async handleSave() {
       let msg;
-      let result = await this.siteOperation({ type: 'update', data: { info: this.form, site: this.$user.unit.code } });
-      msg = '信息修改成功';
+      let result;
+      if (this.form.id) {
+        result = await this.siteOperation({ type: 'update', data: { info: this.form, site: this.$user.unit.code } });
+        msg = '信息修改成功';
+      } else {
+        let data = JSON.parse(JSON.stringify(this.form));
+        data = { ...data, site: this.$user.unit.code, status: 0 };
+        result = await this.siteOperation({ type: 'add', data: { info: data } });
+        msg = '信息添加成功';
+      }
+
       if (this.$checkRes(result, msg)) {
         this.search();
       }