Commit 7cf58b88 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents bfe31672 7aedd4f0
......@@ -12,7 +12,7 @@
<a-tab-pane key="/appmarket/terminalapp" tab="终端应用"> </a-tab-pane>
<a-tab-pane key="/appmarket/moveapp" tab="移动端应用"> </a-tab-pane>
<a-tab-pane key="/appmarket/blackapp" tab="应用黑名单"> </a-tab-pane>
<a-tab-pane key="/appmarket/category" tab="应用分类"> </a-tab-pane>
<a-tab-pane key="/appmarket/appTheme" tab="应用主题"> </a-tab-pane>
</a-tabs>
<div class="app-out-box flex1">
<router-view></router-view>
......
......@@ -2,11 +2,12 @@
<div class="app-category">
<div class="header flex aic jcb mb20 pdr6">
<a-space>
<a-button type="primary" @click="handleAdd"> 新增分类 </a-button>
<a-button type="primary" @click="handleAdd"> 新增主题 </a-button>
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
</a-space>
<a-input-search
style="width: 300px"
placeholder="请输入分类名称搜索"
placeholder="请输入主题名称搜索"
enter-button="搜索"
v-model="searchVal"
allowClear
......@@ -43,6 +44,11 @@
(current - 1) * size + index + 1
}}</span>
<!-- 创建时间 -->
<template slot="createTime" slot-scope="text">
{{ text.createTime | dateFormat }}
</template>
<!-- 操作 -->
<template slot="action" slot-scope="text">
<a-space size="middle">
......@@ -53,18 +59,18 @@
</a-table>
</div>
<!-- 新增、编辑分类 -->
<AddCategory
ref="AddCategory"
<AddTheme
ref="AddTheme"
:title="title"
:addVisile.sync="addVisile"
@addSuccess="getCategoryList"
></AddCategory>
></AddTheme>
</div>
</template>
<script>
import { getCategoryList, deleteCategory } from "@/services/market";
import AddCategory from "../modal/AddCategory";
import AddTheme from "../modal/AddTheme";
import local from "@/utils/local";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [
......@@ -81,16 +87,22 @@ const columns = [
dataIndex: "siteName",
},
{
title: "分类名称",
title: "主题名称",
dataIndex: "categoryName",
},
{
title: "主题编码",
dataIndex: "categoryCode",
},
{
title: "排序",
dataIndex: "sort",
},
{
title: "创建时间",
dataIndex: "createTime",
scopedSlots: {
customRender: "createTime",
},
},
{
title: "操作",
......@@ -100,7 +112,7 @@ const columns = [
];
export default {
components: {
AddCategory,
AddTheme,
},
data() {
return {
......@@ -117,7 +129,7 @@ export default {
pageSizeOptions,
selectedRowKeys: [], // 表格勾选数据
AddVisible: false,
title: "新增分类",
title: "新增主题",
addVisile: false,
};
},
......@@ -149,13 +161,14 @@ export default {
// 新增
handleAdd() {
this.title = "新增分类";
this.$refs.AddCategory.onAdd();
this.title = "新增主题";
this.$refs.AddTheme.onAdd();
this.addVisile = true;
},
// 搜索
onSearch() {
this.current = 1;
this.selectedRowKeys = [];
this.getCategoryList();
},
// 翻页
......@@ -175,10 +188,19 @@ export default {
},
// 编辑
handleEdit(row) {
this.title = "编辑分类";
this.$refs.AddCategory.onEdit(row);
this.title = "编辑主题";
this.$refs.AddTheme.onEdit(row);
this.addVisile = true;
},
// 批量移除
handleDelAll() {
if (!this.selectedRowKeys.length) {
this.$message.warning("请先勾选数据");
return;
}
let ids = this.selectedRowKeys.join(",");
this.handleDel(ids);
},
// 删除
handleDel(id) {
let _this = this;
......@@ -196,6 +218,7 @@ export default {
let { code, msg } = res.data;
if (code === 1) {
_this.$message.success(msg);
this.selectedRowKeys = [];
_this.getCategoryList();
}
},
......
......@@ -19,11 +19,11 @@
:label-col="{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-form-model-item label="分类名称" prop="categoryName">
<a-input v-model="form.categoryName" placeholder="请输入分类名称" />
<a-form-model-item label="主题名称" prop="categoryName">
<a-input v-model="form.categoryName" placeholder="请输入主题名称" />
</a-form-model-item>
<a-form-model-item label="分类编码" prop="categoryCode">
<a-input v-model="form.categoryCode" placeholder="请输入分类编码" />
<a-form-model-item label="主题编码" prop="categoryCode">
<a-input v-model="form.categoryCode" placeholder="请输入主题编码" />
</a-form-model-item>
<a-form-model-item label="排序" prop="sort">
<a-input-number v-model="form.sort" :min="1" />
......
......@@ -11,14 +11,34 @@
<a-space>
<a-select
style="width: 120px"
allowClear
v-model="leftSource"
class="select-department"
placeholder="事项来源"
>
<a-select-option value=""> 全部来源 </a-select-option>
<a-select-option :value="0"> 一体化添加 </a-select-option>
<a-select-option :value="1"> 手动添加 </a-select-option>
</a-select>
<a-select
showSearch
style="min-width: 120px"
v-model="leftDept"
class="select-department"
placeholder="部门搜索"
optionFilterProp="label"
>
<a-select-option value="" label="全部部门">
全部部门
</a-select-option>
<a-select-option
v-for="v in deptList"
:key="v.id"
:value="v.deptNumber"
:label="v.name"
>
{{ v.name }}
</a-select-option>
</a-select>
<a-input-search
v-model="searchLeftVal"
placeholder="请输入事项名称搜索"
......@@ -122,14 +142,34 @@
<a-space>
<a-select
style="width: 120px"
allowClear
v-model="rightSource"
class="select-department"
placeholder="事项来源"
>
<a-select-option value=""> 全部来源 </a-select-option>
<a-select-option :value="0"> 一体化事项 </a-select-option>
<a-select-option :value="1"> 自建事项 </a-select-option>
</a-select>
<a-select
showSearch
style="min-width: 120px"
v-model="rightDept"
class="select-department"
placeholder="部门搜索"
optionFilterProp="label"
>
<a-select-option value="" label="全部部门">
全部部门
</a-select-option>
<a-select-option
v-for="v in deptList"
:key="v.id"
:value="v.deptNumber"
:label="v.name"
>
{{ v.name }}
</a-select-option>
</a-select>
<a-input-search
v-model="searchRightVal"
placeholder="请输入事项名称搜索"
......@@ -229,9 +269,9 @@ import {
delMatter,
} from "@/services/matter";
import { getBusinessMatterList, delBusinessMatter } from "@/services/business";
import { getDeptList } from "@/services/dept";
import EditSiteMatter from "../group/EditSiteMatter.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
// import { getDeptList } from "@/services/dept";
import local from "@/utils/local";
import { mapMutations } from "vuex";
const leftColumns = [
......@@ -310,8 +350,10 @@ export default {
rightColumns,
leftLoading: false,
rightLoading: false,
leftSource: undefined, // 左边来源
rightSource: undefined, // 右边来源
leftSource: "", // 左边来源
leftDept: "", // 左边部门搜索
rightDept: "", // 右边部门搜索
rightSource: "", // 右边来源
selectedRowKeys: [],
matterSiteData: [], // 站点事项
matterDataList: [], //事项列表数据
......@@ -336,12 +378,28 @@ export default {
};
},
created() {
this.getDeptListData();
this.getMatterSiteData();
this.getMatterListData();
},
methods: {
...mapMutations("site", ["SET_matterDict"]),
// 获取部门列表
async getDeptListData(obj = {}) {
this.deptLoading = true;
let res = await getDeptList({
siteId: this.siteId,
page: 1,
size: -1,
...obj,
});
this.deptLoading = false;
let { code, data } = res.data;
if (code === 1) {
this.deptList = data.data;
}
},
// 获取站点事项
async getMatterSiteData(search = {}) {
this.leftLoading = true;
......@@ -351,6 +409,7 @@ export default {
siteId: this.siteId,
source: this.leftSource,
matterName: `%${this.searchLeftVal}%`,
deptCode: this.leftDept,
...search,
});
let { pageInfo, data } = res.data.data;
......@@ -371,6 +430,7 @@ export default {
size: this.rightSize,
matterName: this.searchRightVal,
source: this.rightSource,
deptCode: this.rightDept,
...search,
});
if (res.data.code === 1) {
......
......@@ -49,11 +49,11 @@
<template slot="action" slot-scope="text">
<a-tooltip>
<template slot="title"> 解除查看 </template>
<soan
<span
href="javascript:;"
class="delete pointer"
@click="handleisUnbound(text)"
>解除</soan
>解除</span
>
</a-tooltip>
</template>
......@@ -69,6 +69,27 @@
<a-button type="primary" @click="handleAddAll"> 批量关联 </a-button>
</div>
<div>
<a-space>
<a-select
showSearch
style="min-width: 120px"
v-model="deptSearch"
class="select-department"
placeholder="部门搜索"
optionFilterProp="label"
>
<a-select-option value="" label="全部部门">
全部部门
</a-select-option>
<a-select-option
v-for="v in deptList"
:key="v.id"
:value="v.deptNumber"
:label="v.name"
>
{{ v.name }}
</a-select-option>
</a-select>
<a-input-search
v-model="rightSearchVal"
placeholder="请输入事项名称搜索"
......@@ -76,6 +97,7 @@
@search="onSearchRight"
allowClear
/>
</a-space>
</div>
</div>
</div>
......@@ -159,7 +181,7 @@
<a-select
style="width: 85%"
show-search
:filter-option="filterOption"
optionFilterProp="label"
allowClear
placeholder="请选择业务"
:showArrow="false"
......@@ -170,6 +192,7 @@
v-for="v in SiteBusinessData"
:key="v.id"
:value="v.businessId"
:label="v.businessName"
>
{{ v.businessName }}
</a-select-option>
......@@ -257,6 +280,7 @@
<script>
import { getSiteMatterList } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { getDeptList } from "@/services/dept";
import {
getSiteBusinessList,
// addBusinessMatter,
......@@ -266,7 +290,6 @@ import {
addBatchSave,
// getMatterlistData,
} from "@/services/business";
// import { getDeptList } from "@/services/dept";
import local from "@/utils/local";
const leftColumns = [
{
......@@ -329,6 +352,7 @@ export default {
Leftloading: false,
rightloading: false,
leftSearchVal: "", // 左边搜索
deptSearch: "", // 右边
rightSearchVal: "", // 右边搜索
SiteBusinessData: [], // 站点业务
SiteMatterData: [], //站点事项
......@@ -347,7 +371,7 @@ export default {
pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id
matterIds: "", // 业务id
// deptList: [], // 站点部门
deptList: [], // 站点部门
rightSearch: "", // 事项搜索
businessMatterData: [], // 业务关联事项列表数据
unboundBusinessData: {}, // 解除-业务数据
......@@ -369,6 +393,7 @@ export default {
};
},
created() {
this.getDeptListData();
this.getBusinessMatterData();
this.getMatterlistData();
this.getSiteBusinessData();
......@@ -376,6 +401,21 @@ export default {
},
methods: {
// 获取部门列表
async getDeptListData(obj = {}) {
this.deptLoading = true;
let res = await getDeptList({
siteId: this.siteId,
page: 1,
size: -1,
...obj,
});
this.deptLoading = false;
let { code, data } = res.data;
if (code === 1) {
this.deptList = data.data;
}
},
// 获取站点业务关联列表
async getBusinessMatterData(search = {}) {
this.Leftloading = true;
......@@ -438,6 +478,7 @@ export default {
size: this.rightSize,
matterName: `%${this.rightSearchVal}%`,
siteId: this.siteId,
deptCode: this.leftDept,
...search,
});
let { pageInfo, data } = res.data.data;
......@@ -659,8 +700,8 @@ export default {
},
// 关闭关联对话框
handleclose() {
this.selectedRowKeys = [];
this.allCorrelationData = [];
// this.selectedRowKeys = [];
// this.allCorrelationData = [];
this.$refs.formData.resetFields();
this.isCorrelation = false;
},
......
<template>
<exception-page home-route="/demo" :style="`min-height: ${minHeight}`" type="404" />
<exception-page
home-route="/website"
:style="`min-height: ${minHeight}`"
type="404"
/>
</template>
<script>
import ExceptionPage from '@/components/exception/ExceptionPage'
import {mapState} from 'vuex'
import ExceptionPage from "@/components/exception/ExceptionPage";
import { mapState } from "vuex";
export default {
name: 'Exp404',
components: {ExceptionPage},
name: "Exp404",
components: { ExceptionPage },
computed: {
...mapState('setting', ['pageMinHeight']),
...mapState("setting", ["pageMinHeight"]),
minHeight() {
return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
}
}
}
return this.pageMinHeight ? this.pageMinHeight + "px" : "100vh";
},
},
};
</script>
<style scoped lang="less">
......
......@@ -265,9 +265,9 @@ const options = {
},
},
{
path: "category",
path: "appTheme",
component: () =>
import("@/pages/basicset/appmarket/components/AppCategory"),
import("@/pages/basicset/appmarket/components/AppTheme"),
meta: {
invisible: true,
},
......
......@@ -2,7 +2,8 @@ import { hasAuthority } from "@/utils/authority-utils";
// import {loginIgnore} from '@/router/index'
// import {checkAuthorization} from '@/utils/request'
import NProgress from "nprogress";
import local from "@/utils/local";
// import local from "@/utils/local";
import store from "@/store/index";
NProgress.configure({ showSpinner: false });
......@@ -28,7 +29,8 @@ const progressStart = (to, from, next) => {
* @param options
*/
const loginGuard = (to, from, next) => {
let token = local.getLocal("token") ? true : false;
// let token = local.getLocal("token") ? true : false;
let token = store.getters["site/token"];
if (token) {
next();
} else {
......
......@@ -2,7 +2,6 @@ package com.mortals.xhx.module.app.web;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
......@@ -31,10 +30,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static com.mortals.xhx.common.key.Constant.CUSTAPP_ROOT_PATH;
......@@ -66,7 +62,7 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "type", AppTypeEnum.getEnumMap());
this.addDict(model, "shelves", paramService.getParamBySecondOrganize("App", "shelves"));
this.addDict(model, "appThemeName", paramService.getParamBySecondOrganize("App", "appThemeName"));
//this.addDict(model, "appThemeName", paramService.getParamBySecondOrganize("App", "appThemeName"));
this.addDict(model, "distribute", YesNoEnum.getEnumMap());
this.addDict(model, "dateUpdate", YesNoEnum.getEnumMap());
super.init(model, context);
......@@ -106,6 +102,11 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
List<AppCategoryEntity> appCategoryEntities = appCategoryService.find(appCategoryQuery);
if (!ObjectUtils.isEmpty(appCategoryEntities)) {
model.put("appCategory", appCategoryEntities);
Map<String,Object> appThemeName = new HashMap<>();
for (AppCategoryEntity appCategory:appCategoryEntities){
appThemeName.put(appCategory.getId().toString(),appCategory.getCategoryName());
}
this.addDict(model, "appThemeName", appThemeName);
}
}
return super.doListAfter(query, model, context);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment