Commit 16a1f1e6 authored by 姬鋆屾's avatar 姬鋆屾
parents 2a93a96b b3df15f5
...@@ -9,5 +9,5 @@ VUE_APP_TBAS_KEY=admin.tabs ...@@ -9,5 +9,5 @@ VUE_APP_TBAS_KEY=admin.tabs
VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
#VUE_APP_API_BASE_URL=http://api.iczer.com #VUE_APP_API_BASE_URL=http://api.iczer.com
#门户 #门户
#VUE_APP_API_portal_URL=http://192.168.0.98:11072 VUE_APP_API_portal_URL=http://192.168.0.98:11072
VUE_APP_API_portal_URL=http://10.12.185.213:11072 # VUE_APP_API_portal_URL=http://10.12.185.213:11072
\ No newline at end of file \ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
color:#1890FF; color:#1890FF;
} }
.delete{ .delete{
color:#FF4D4F; color:#FA4D4C;
} }
.green{ .green{
color:#1BBC9B; color:#1BBC9B;
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
color:#fff; color:#fff;
} }
.bgdel{ .bgdel{
background-color: #FF4D4F; background-color: #FA4D4C;
} }
.bgpr{ .bgpr{
background-color: #1890FF; background-color: #1890FF;
...@@ -150,6 +150,9 @@ ...@@ -150,6 +150,9 @@
.pdl20{ .pdl20{
padding-left:20px; padding-left:20px;
} }
.pdr6{
padding-right:6px;
}
.pdr10{ .pdr10{
padding-right:10px; padding-right:10px;
} }
...@@ -219,4 +222,7 @@ ...@@ -219,4 +222,7 @@
} }
.empty { .empty {
height: 100%; height: 100%;
}
.pointer{
cursor: pointer;
} }
\ No newline at end of file
@import './common.less'; @import "./common.less";
@import '../../theme/default/color.less'; @import "../../theme/default/color.less";
// 字体大小 // 字体大小
@fz18: 18px; @fz18: 18px;
@fz16: 16px; @fz16: 16px;
...@@ -10,13 +10,13 @@ ...@@ -10,13 +10,13 @@
@cl999: #999; @cl999: #999;
@cl000: #000; //表头 @cl000: #000; //表头
@cl333: #333; //表体 @cl333: #333; //表体
@cl8B: #8B96A6; @cl8B: #8b96a6;
@dlecl: #FA4D4C; //表格删除 @dlecl: #fa4d4c; //表格删除
@redact: #1890FF; //表格编辑 @redact: #1890ff; //表格编辑
// 按钮背景色 // 按钮背景色
@addbg: linear-gradient(90deg, #5ab6ff 0%, #2e9aff 100%); //新增 @addbg: linear-gradient(90deg, #5ab6ff 0%, #2e9aff 100%); //新增
@delbg: #FA4D4C; //删除 @delbg: #fa4d4c; //删除
@qubg: #E1F0FE; //取消 重置 @qubg: #e1f0fe; //取消 重置
// 分页显示位置 // 分页显示位置
.pagination { .pagination {
...@@ -24,6 +24,10 @@ ...@@ -24,6 +24,10 @@
margin-right: 10px; margin-right: 10px;
text-align: right; text-align: right;
} }
.ant-tabs-nav-container {
border-bottom: 1px solid rgb(224, 224, 224) !important;
}
/* 溢出表格滚动条 */ /* 溢出表格滚动条 */
/* 表格 */ /* 表格 */
...@@ -36,22 +40,32 @@ ...@@ -36,22 +40,32 @@
overflow: hidden !important; overflow: hidden !important;
margin-bottom: 0 !important; margin-bottom: 0 !important;
padding-right: 6px; padding-right: 6px;
tr:only-child > th:last-child {
border-right-color: #f0f0f0 !important;
}
}
.ant-table-placeholder{
width:calc(100% - 6px)
}
.ant-table-header {
background: #fff;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; width: 6px;
height:6px; height: 6px;
overflow-y: auto; overflow-y: auto;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 6px; border-radius: 6px;
background-color: rgba(144, 147, 153, .5); background-color: rgba(144, 147, 153, 0.5);
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
border-radius: 6px; border-radius: 6px;
background: #fff; background: rgba(144, 147, 153, 0);
} }
.color_title { .color_title {
...@@ -65,18 +79,30 @@ ...@@ -65,18 +79,30 @@
position: absolute; position: absolute;
top: 1px; top: 1px;
left: -16px; left: -16px;
background-color: rgba(5, 149, 253, 1); background-color: #1890ff;
} }
} }
.ant-input{ .ant-input {
resize: none; resize: none;
} }
.ant-btn-primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
border: none !important;
border-color: transparent !important;
}
.ant-form-explain{ .ant-form-explain {
position:absolute position: absolute;
} }
.ant-form-item { .ant-form-item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
\ No newline at end of file // .table-header{
// padding-right:6px;
// display: flex;
// align-items: center;
// justify-content:space-between;
// margin-bottom: 20px;
// }
\ No newline at end of file
.ant-modal {
box-shadow: none !important;
}
.ant-form-item {
margin-bottom: 0;
display: flex;
align-items: center;
}
.ant-form-item-children {
display: flex;
align-items: center;
}
.ant-form-item-children input,
.ant-form-item-children textarea {
font-size: 14px;
font-weight: 400;
color: #999;
}
.ant-form-item-label label {
font-size: 14px;
font-weight: 400;
color: #8B96A6;
}
.ant-modal {
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
.ant-modal-title {
color: #1890FF !important;
font-size: 18px;
font-weight: bold;
}
.ant-modal-close {
color: #188fff !important;
}
.ant-modal-close svg {
font-size: 26px !important;
}
.ant-vue-dark .ant-table-thead .ant-table-column-title {
font-size: 16px;
font-weight: 500;
color: #000;
}
.ant-vue-dark .ant-table-tbody {
font-size: 14px;
font-weight: 400;
color: #333;
}
.ant-vue-light .ant-table-thead .ant-table-column-title {
font-size: 16px;
font-weight: 500;
color: #000;
}
.ant-vue-light .ant-table-tbody {
font-size: 14px;
font-weight: 400;
color: #333;
}
.del {
color: #FA4D4C;
padding: 0 4px;
display: inline-block;
}
.del:hover {
color: #FA4D4C;
cursor: pointer;
}
.redact {
color: #1890FF;
padding: 0 4px;
display: inline-block;
}
.redact:hover {
color: #1890FF;
cursor: pointer;
}
.search input {
font-size: 14px;
color: #BFBFBF;
}
.search .chaxun {
color: #fff;
border: 1px solid #5ab6ff;
padding: 0 14px;
background: linear-gradient(90deg, #5ab6ff 0%, #2e9aff 100%);
}
.btn {
margin-top: 20px;
}
.btnclass {
font-size: 14px;
border-radius: 4px;
border: none;
margin-right: 12px;
}
.delclass {
background: #FA4D4C !important;
color: #fff !important;
}
.addclass {
background: linear-gradient(90deg, #5ab6ff 0%, #2e9aff 100%) !important;
color: #fff !important;
}
.quclass {
background: #E1F0FE !important;
color: #42A5FA !important;
border: 1px solid #E1F0FE;
}
/**
* 上传图片、文件父级添加class
* 文字和控件将向上对齐
*/
.up_load_file .ant-form-item {
align-items: flex-start;
}
.up_load_file .ant-form-item-label {
position: relative;
top: -4px;
}
.up_load_pic .ant-form-item {
align-items: flex-start;
}
.up_load_pic .ant-upload-list {
float: left;
}
th {
text-align: center !important;
}
td {
text-align: center;
}
.btn_box {
display: flex;
align-items: center;
justify-content: center;
}
.search_block {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.card_title {
font-size: 16px;
font-weight: 600;
color: #464646;
padding-left: 10px;
position: relative;
margin-bottom: 15px;
}
.card_title::before {
content: '';
position: absolute;
background: #1890ff;
border-color: #1890FF;
border-style: solid;
border-width: 2px;
height: 15px;
top: 4px;
left: 0;
}
.ant-tabs-nav-wrap {
background: #fff;
}
.ant-tabs-bar {
background: #fff;
padding-right: 20px !important;
}
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab {
border-left: none !important;
border-top: none !important;
border-right: none !important;
border-bottom: none !important;
color: #999 !important;
}
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active {
border-left: none !important;
border-top: none !important;
border-right: none !important;
}
.tabs-view-content {
background: #fff;
margin: 0 24px;
padding: 20px 24px;
min-height: 80vh;
}
.admin-layout .admin-layout-content {
padding: 20px 0 0 !important;
background: #F0F2F5;
}
.ant-pagination-item-active {
background: #1890FF;
border-radius: 4px;
}
.ant-pagination-item-active a {
color: #fff;
}
...@@ -223,22 +223,22 @@ td{ ...@@ -223,22 +223,22 @@ td{
background: #fff; background: #fff;
} }
.ant-tabs-bar{ // .ant-tabs-bar{
background: #fff; // background: #fff;
padding-right: 20px !important; // padding-right: 20px !important;
} // }
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{ // .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{
border-left: none !important; // border-left: none !important;
border-top: none !important; // border-top: none !important;
border-right: none !important; // border-right: none !important;
border-bottom: none !important; // border-bottom: none !important;
color: #999 !important; // color: #999 !important;
} // }
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{ // .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{
border-left: none !important; // border-left: none !important;
border-top: none !important; // border-top: none !important;
border-right: none !important; // border-right: none !important;
} // }
// 内容 // 内容
.tabs-view-content{ .tabs-view-content{
// background: #fff; // background: #fff;
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<a-tree <a-tree
:load-data="onLoadData" :load-data="onLoadData"
:tree-data="treeData" :tree-data="treeData"
:expandedKeys.sync="expandedKeys"
:replaceFields="{ title: 'label', key: 'id' }" :replaceFields="{ title: 'label', key: 'id' }"
@select="onSelect" @select="onSelect"
> >
...@@ -26,6 +27,7 @@ export default { ...@@ -26,6 +27,7 @@ export default {
return { return {
treeData: [], //树结构 treeData: [], //树结构
id: "", id: "",
expandedKeys: [],
}; };
}, },
...@@ -40,6 +42,13 @@ export default { ...@@ -40,6 +42,13 @@ export default {
const { data, code } = res.data; const { data, code } = res.data;
if (code === 1) { if (code === 1) {
this.treeData = data.data; this.treeData = data.data;
// let obj = {
// dataRef: {
// id: data.data[0].id,
// },
// };
// this.onLoadData(obj);
this.expandedKeys = [data.data[0].id];
} }
}, },
......
export const pageSizeOptions = ["10", "30", "50", "100", "200"]; // 翻页-每页显示数量
import local from "@/utils/local"; // import local from "@/utils/local";
import store from "@/store/index";
// 皮肤模板页面权限 // 皮肤模板页面权限
export const permission = { export const permission = {
inserted: function(el, binding) { inserted: function(el, binding) {
const { value } = binding; const { value } = binding;
const roles = local.getLocal("baseUserInfo").id; // const roles = local.getLocal("baseUserInfo").id;
const roles = store.getters["site/userInfo"].id;
if (value) { if (value) {
const permissionRoles = value; const permissionRoles = value;
const hasPermission = permissionRoles.includes(roles); const hasPermission = permissionRoles.includes(roles);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="flex aic"> <div class="flex aic">
<router-link to="/" class="flex aic"> <router-link to="/" class="flex aic">
<img class="mr10" width="32" src="@/assets/img/logo.png" /> <img class="mr10" width="32" src="@/assets/img/logo.png" />
<h1 class="title">基础设置平台</h1> <h1 class="title">基础设置系统</h1>
</router-link> </router-link>
<HeaderSite class="ml20"></HeaderSite> <HeaderSite class="ml20"></HeaderSite>
</div> </div>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<a-layout-sider width="200" style="background: #fff"> <a-layout-sider width="200" style="background: #fff">
<i-menu theme="light" :options="menuData" class="menu" /> <i-menu theme="light" :options="menuData" class="menu" />
</a-layout-sider> </a-layout-sider>
<a-layout class="main" style="padding: 0 24px 24px"> <a-layout class="main">
<a-layout-content> <a-layout-content>
<keep-alive> <keep-alive>
<!-- 需要缓存的视图组件 --> <!-- 需要缓存的视图组件 -->
...@@ -93,7 +93,23 @@ export default { ...@@ -93,7 +93,23 @@ export default {
} }
.main { .main {
height: calc(100vh - 64px); height: calc(100vh - 64px);
padding: 0px 24px 24px;
overflow-y: auto; overflow-y: auto;
&::-webkit-scrollbar {
width: 6px;
height: 6px;
overflow-y: auto;
}
&::-webkit-scrollbar-thumb {
border-radius: 6px;
background-color: rgba(144, 147, 153, 0.5);
}
&::-webkit-scrollbar-track {
border-radius: 6px;
background: rgba(144, 147, 153, 0);
}
} }
.ant-layout-content { .ant-layout-content {
height: 100%; height: 100%;
......
...@@ -29,14 +29,12 @@ ...@@ -29,14 +29,12 @@
> >
</div> </div>
<div class="site-btn"> <div class="site-btn">
<a-button <a-button style="margin-right: 10px" @click="visible = false"
type="primary" >取消</a-button
style="margin-right: 10px" >
@click="onSucessSite" <a-button type="primary" @click="onSucessSite" :disabled="isSite"
:disabled="isSite"
>确定</a-button >确定</a-button
> >
<a-button @click="visible = false">取消</a-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -45,6 +43,7 @@ ...@@ -45,6 +43,7 @@
</template> </template>
<script> <script>
import { getSiteTree } from "@/services/basicsetFun"; import { getSiteTree } from "@/services/basicsetFun";
import { mapMutations } from "vuex";
import local from "@/utils/local"; import local from "@/utils/local";
// import Cookie from "js-cookie"; // import Cookie from "js-cookie";
export default { export default {
...@@ -65,6 +64,7 @@ export default { ...@@ -65,6 +64,7 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
...mapMutations("site", ["SET_SITE_ID", "SET_siteName"]),
// 确认站点 // 确认站点
onSucessSite() { onSucessSite() {
if (this.checkarr.length == 0) return; if (this.checkarr.length == 0) return;
...@@ -114,7 +114,7 @@ export default { ...@@ -114,7 +114,7 @@ export default {
const { siteTree } = data; const { siteTree } = data;
this.sitelist = siteTree; this.sitelist = siteTree;
let arr = []; let arr = [];
const treeFn = function (e) { const treeFn = function(e) {
e.forEach((element) => { e.forEach((element) => {
arr.push(element); arr.push(element);
if (element.children && element.children.length > 0) { if (element.children && element.children.length > 0) {
...@@ -137,6 +137,8 @@ export default { ...@@ -137,6 +137,8 @@ export default {
// }; // };
local.setLocal("siteId", obj.id); local.setLocal("siteId", obj.id);
local.setLocal("siteName", obj.label); local.setLocal("siteName", obj.label);
this.SET_SITE_ID(obj.id);
this.SET_siteName(obj.label);
this.show = false; this.show = false;
if (location.href.search(/token/gi) >= 0) { if (location.href.search(/token/gi) >= 0) {
setTimeout(() => { setTimeout(() => {
......
...@@ -30,9 +30,11 @@ ...@@ -30,9 +30,11 @@
</span> </span>
</template> </template>
<template slot="active" slot-scope="text"> <template slot="active" slot-scope="text">
<a class="look-more" @click="lookMore(text.content)">查看详情</a> <span class="primary pointer" @click="lookMore(text.content)"
<a class="edit" @click="editAccept(text)">编辑</a> >查看详情</span
<a class="delete" @click="handleDel(text.id)">删除</a> >
<span class="primary pointer" @click="editAccept(text)">编辑</span>
<span class="delete pointer" @click="handleDel(text.id)">删除</span>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -85,6 +87,7 @@ import { ...@@ -85,6 +87,7 @@ import {
// getSiteMatterList, // getSiteMatterList,
} from "@/services/matter"; } from "@/services/matter";
import local from "@/utils/local"; import local from "@/utils/local";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -121,7 +124,7 @@ export default { ...@@ -121,7 +124,7 @@ export default {
source: 1, source: 1,
}, },
loading: false, loading: false,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
rules: { rules: {
content: [ content: [
{ required: true, message: "受理条件不能为空", trigger: "blur" }, { required: true, message: "受理条件不能为空", trigger: "blur" },
...@@ -251,13 +254,6 @@ export default { ...@@ -251,13 +254,6 @@ export default {
.header { .header {
margin-bottom: 20px; margin-bottom: 20px;
} }
.edit {
color: #03d76f;
margin: 0 15px;
}
.delete {
color: #fa6464;
}
} }
/deep/.ant-form-item { /deep/.ant-form-item {
display: block !important; display: block !important;
......
...@@ -39,9 +39,17 @@ ...@@ -39,9 +39,17 @@
> >
</template> </template>
<template slot="operate" slot-scope="text"> <template slot="operate" slot-scope="text">
<span class="look_more mr" @click="readMore(text)">查看更多</span> <a-space>
<span class="edit mr" @click="editMaterial(text)">编辑</span> <span class="primary pointer" @click="readMore(text)"
<span class="del" @click="delMaterial(text.id)">删除</span> >查看更多</span
>
<span class="primary pointer" @click="editMaterial(text)"
>编辑</span
>
<span class="delete pointer" @click="delMaterial(text.id)"
>删除</span
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -73,6 +81,7 @@ import addmaterials from "../group/addmaterials.vue"; ...@@ -73,6 +81,7 @@ import addmaterials from "../group/addmaterials.vue";
import materialDetails from "../group/materialDetails.vue"; import materialDetails from "../group/materialDetails.vue";
import downloadTable from "../group/downloadTable.vue"; import downloadTable from "../group/downloadTable.vue";
import { getMatterDatumList, delMatterDatum } from "@/services/matter"; import { getMatterDatumList, delMatterDatum } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
let columns = [ let columns = [
{ {
title: "序号", title: "序号",
...@@ -121,7 +130,7 @@ export default { ...@@ -121,7 +130,7 @@ export default {
columns, columns,
dict: {}, // 材料字典 dict: {}, // 材料字典
loading: false, loading: false,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
dataSource: [], dataSource: [],
selectedRows: [], // 选中数据 selectedRows: [], // 选中数据
formVisible: false, formVisible: false,
...@@ -258,12 +267,5 @@ export default { ...@@ -258,12 +267,5 @@ export default {
border-radius: 2px; border-radius: 2px;
cursor: pointer; cursor: pointer;
} }
.edit {
color: #03d76f;
cursor: pointer;
}
.look_more {
cursor: pointer;
}
} }
</style> </style>
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
</template> </template>
<template slot="active" slot-scope="text"> <template slot="active" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="delete" @click="handleDel(text.id)">删除</a> <span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
<script> <script>
import { getMatterflowlimitList, delMatterflowlimit } from "@/services/matter"; import { getMatterflowlimitList, delMatterflowlimit } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
import addFlow from "../group/addFlow.vue"; import addFlow from "../group/addFlow.vue";
import local from "@/utils/local"; import local from "@/utils/local";
...@@ -103,7 +104,7 @@ export default { ...@@ -103,7 +104,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
title: "新增流程", title: "新增流程",
visible: false, visible: false,
}; };
......
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
</template> </template>
<template slot="active" slot-scope="text"> <template slot="active" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="delete" @click="handleDel(text.id)">删除</a> <span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
<script> <script>
import local from "@/utils/local"; import local from "@/utils/local";
import { pageSizeOptions } from "@/config/pageConfig.js";
import addPursuant from "../group/addPursuant.vue"; import addPursuant from "../group/addPursuant.vue";
import { getMattersetbase, delMattersetbase } from "@/services/matter"; import { getMattersetbase, delMattersetbase } from "@/services/matter";
const columns = [ const columns = [
...@@ -103,7 +104,7 @@ export default { ...@@ -103,7 +104,7 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
columns, columns,
tableData: [], tableData: [],
current: 1, current: 1,
...@@ -221,13 +222,7 @@ export default { ...@@ -221,13 +222,7 @@ export default {
.header { .header {
margin-bottom: 20px; margin-bottom: 20px;
} }
.edit {
color: #03d76f;
margin: 0 10px;
}
.delete {
color: #fa6464;
}
.ant-pagination { .ant-pagination {
margin: 10px 0; margin: 10px 0;
} }
......
...@@ -30,9 +30,11 @@ ...@@ -30,9 +30,11 @@
<template slot="active" slot-scope="text"> <template slot="active" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="look-more" @click="handleMore(text)">查看详情</a> <span class="primary pointer" @click="handleMore(text)"
<a class="edit" @click="handleEdit(text)">编辑</a> >查看详情</span
<a class="delete" @click="handleDel(text.id)">删除</a> >
<span class="primary pointer" @click="handleEdit(text)">编辑</span>
<span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -41,8 +43,8 @@ ...@@ -41,8 +43,8 @@
<!-- 新增问题 --> <!-- 新增问题 -->
<a-modal v-model="visible" :title="title" @cancel="handleClose"> <a-modal v-model="visible" :title="title" @cancel="handleClose">
<template slot="footer"> <template slot="footer">
<a-button type="primary" @click="handleOk">确定</a-button>
<a-button @click="handleInit">重置</a-button> <a-button @click="handleInit">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template> </template>
<a-form-model <a-form-model
...@@ -87,6 +89,7 @@ ...@@ -87,6 +89,7 @@
</template> </template>
<script> <script>
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -124,7 +127,7 @@ export default { ...@@ -124,7 +127,7 @@ export default {
return { return {
columns, columns,
loading: false, loading: false,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
tableData: [], tableData: [],
siteId: "", siteId: "",
matterList: [], matterList: [],
...@@ -270,13 +273,7 @@ export default { ...@@ -270,13 +273,7 @@ export default {
.header { .header {
margin-bottom: 20px; margin-bottom: 20px;
} }
.edit {
color: #03d76f;
margin: 0 15px;
}
.delete {
color: #fa6464;
}
.ant-pagination { .ant-pagination {
margin: 10px 0; margin: 10px 0;
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
> >
<template slot="footer"> <template slot="footer">
<a-button @click="handleInit">重置</a-button> <a-button @click="handleInit">重置</a-button>
<a-button @click="handleOk" type="primary">保存</a-button> <a-button @click="handleOk" type="primary">确定</a-button>
</template> </template>
<a-form-model <a-form-model
:label-col="{ span: 4 }" :label-col="{ span: 4 }"
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
> >
<template slot="footer"> <template slot="footer">
<a-button @click="handleInit">重置</a-button> <a-button @click="handleInit">重置</a-button>
<a-button @click="handleOk" type="primary">保存</a-button> <a-button @click="handleOk" type="primary">确定</a-button>
</template> </template>
<a-form-model <a-form-model
:model="form" :model="form"
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<a-tab-pane key="/appmarket/terminalapp" tab="终端应用"> </a-tab-pane> <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/moveapp" tab="移动端应用"> </a-tab-pane>
<a-tab-pane key="/appmarket/blackapp" tab="应用黑名单"> </a-tab-pane> <a-tab-pane key="/appmarket/blackapp" tab="应用黑名单"> </a-tab-pane>
<a-tab-pane key="/appmarket/appTheme" tab="应用主题"> </a-tab-pane>
</a-tabs> </a-tabs>
<div class="app-out-box flex1"> <div class="app-out-box flex1">
<router-view></router-view> <router-view></router-view>
...@@ -131,6 +132,9 @@ export default { ...@@ -131,6 +132,9 @@ export default {
overflow-y: auto; overflow-y: auto;
} }
} }
/deep/.ant-tabs-extra-content {
padding-right: 20px;
}
/deep/.ant-form-item { /deep/.ant-form-item {
align-items: flex-start; align-items: flex-start;
} }
...@@ -144,4 +148,4 @@ export default { ...@@ -144,4 +148,4 @@ export default {
/deep/.ant-tabs-tabpane { /deep/.ant-tabs-tabpane {
padding: 0px 20px; padding: 0px 20px;
} }
</style> </style>
\ No newline at end of file
...@@ -87,13 +87,15 @@ ...@@ -87,13 +87,15 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a <span
class="primary" class="primary pointer"
:disabled="text.used ? true : false" :disabled="text.used ? true : false"
@click="handleUse(text.id)" @click="handleUse(text.id)"
>使用</a >使用</span
>
<span class="primary pointer" @click="handlePreview(text.id)"
>预览</span
> >
<a class="primary" @click="handlePreview(text.id)">预览</a>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -117,6 +119,7 @@ import { ...@@ -117,6 +119,7 @@ import {
previewVersion, previewVersion,
} from "@/services/market"; } from "@/services/market";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { filterItems } from "@/utils"; import { filterItems } from "@/utils";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
export default { export default {
...@@ -178,7 +181,7 @@ export default { ...@@ -178,7 +181,7 @@ export default {
size: 10, size: 10,
total: 0, total: 0,
loading: false, loading: false,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
form: {}, form: {},
tableData: [], tableData: [],
siteVisible: false, siteVisible: false,
......
<template>
<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="danger" @click="handleDelAll"> 批量移除 </a-button>
</a-space>
<a-input-search
style="width: 300px"
placeholder="请输入主题名称搜索"
enter-button="搜索"
v-model="searchVal"
allowClear
@search="onSearch"
/>
</div>
<!-- 表格 -->
<div class="table-content">
<a-table
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="loading"
bordered
:scroll="{ y: 580 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span slot="num" slot-scope="text, record, index">{{
(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">
<span class="primary pointer" @click="handleEdit(text)">编辑</span>
<span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space>
</template>
</a-table>
</div>
<!-- 新增、编辑分类 -->
<AddTheme
ref="AddTheme"
:title="title"
:addVisile.sync="addVisile"
@addSuccess="getCategoryList"
></AddTheme>
</div>
</template>
<script>
import { getCategoryList, deleteCategory } from "@/services/market";
import AddTheme from "../modal/AddTheme";
import local from "@/utils/local";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [
{
title: "序号",
dataIndex: "num",
width: "65px",
scopedSlots: {
customRender: "num",
},
},
{
title: "站点名称",
dataIndex: "siteName",
},
{
title: "主题名称",
dataIndex: "categoryName",
},
{
title: "主题编码",
dataIndex: "categoryCode",
},
{
title: "排序",
dataIndex: "sort",
},
{
title: "创建时间",
scopedSlots: {
customRender: "createTime",
},
},
{
title: "操作",
width: "150px",
scopedSlots: { customRender: "action" },
},
];
export default {
components: {
AddTheme,
},
data() {
return {
api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL,
columns,
siteId: local.getLocal("siteId"),
tableData: [], // 表格数据
loading: false,
searchVal: "", // 搜索
current: 1,
size: 10,
total: 0,
pageSizeOptions,
selectedRowKeys: [], // 表格勾选数据
AddVisible: false,
title: "新增主题",
addVisile: false,
};
},
created() {
this.getCategoryList();
},
methods: {
// 获取分类列表
async getCategoryList() {
this.loading = true;
let res = await getCategoryList({
page: this.current,
size: this.size,
siteId: this.siteId,
categoryName: `%${this.searchVal}%`,
});
this.loading = false;
let { data, total } = res.data.data;
if (res.data.code === 1) {
if (!data.length && this.current > 1) {
this.current -= 1;
this.getCategoryList();
}
this.tableData = data;
this.total = total;
}
},
// 新增
handleAdd() {
this.title = "新增主题";
this.$refs.AddTheme.onAdd();
this.addVisile = true;
},
// 搜索
onSearch() {
this.current = 1;
this.selectedRowKeys = [];
this.getCategoryList();
},
// 翻页
handleChange(cur) {
this.current = cur;
this.getCategoryList();
},
// 改变每页显示数量
showSizeChange(current, size) {
this.current = current;
this.size = size;
this.getCategoryList();
},
// 勾选表格
onSelectChange(keys) {
this.selectedRowKeys = keys;
},
// 编辑
handleEdit(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;
_this.$confirm({
title: "系统提示",
content: "删除不可恢复,确定要删除吗?",
okText: "确定",
okType: "danger",
cancelText: "取消",
centered: true,
icon: "exclamation-circle",
maskClosable: true,
async onOk() {
let res = await deleteCategory({ id });
let { code, msg } = res.data;
if (code === 1) {
_this.$message.success(msg);
this.selectedRowKeys = [];
_this.getCategoryList();
}
},
onCancel() {
console.log("Cancel");
},
});
},
},
};
</script>
<style lang="less" scoped></style>
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="black-app"> <div class="black-app">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">设备应用黑名单</h3> <div class="titel">设备应用黑名单</div>
<div class="control"> <div class="control pdr6">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button> <a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<div class="business-control"> <div class="business-control">
<a-space> <a-space>
...@@ -66,8 +66,11 @@ ...@@ -66,8 +66,11 @@
</span> </span>
</template> </template>
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="delete" @click="handleDel(text.id)" <span
>移除</a href="javascript:;"
class="delete pointer"
@click="handleDel(text.id)"
>移除</span
> >
</template> </template>
</a-table> </a-table>
...@@ -76,12 +79,12 @@ ...@@ -76,12 +79,12 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">站点设备</h3> <div class="titel">站点设备</div>
<div class="control"> <div class="control">
<div> <div>
<!-- <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> --> <!-- <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> -->
</div> </div>
<div class="business-control"> <div class="business-control pdr6">
<a-space> <a-space>
<a-select <a-select
style="min-width: 120px" style="min-width: 120px"
...@@ -149,7 +152,9 @@ ...@@ -149,7 +152,9 @@
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="jion" @click="handleIn(text)">加入黑名单</a> <span class="primary pointer" @click="handleIn(text)"
>加入黑名单</span
>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -163,8 +168,8 @@ ...@@ -163,8 +168,8 @@
></DevToBlack> ></DevToBlack>
</div> </div>
</template> </template>
<script> <script>
import { import {
getDeviceList, getDeviceList,
getBlackAppList, getBlackAppList,
...@@ -172,6 +177,7 @@ import { ...@@ -172,6 +177,7 @@ import {
} from "@/services/market"; } from "@/services/market";
import local from "@/utils/local"; import local from "@/utils/local";
import DevToBlack from "../modal/DevToBlack.vue"; import DevToBlack from "../modal/DevToBlack.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
const devType = [ const devType = [
"排队机", "排队机",
"窗口屏", "窗口屏",
...@@ -279,7 +285,7 @@ export default { ...@@ -279,7 +285,7 @@ export default {
rightTotal: 0, rightTotal: 0,
leftSize: 10, leftSize: 10,
rightSize: 10, rightSize: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
deviceList: [], // 站点设备列表 deviceList: [], // 站点设备列表
blackApp: [], // 应用黑名单列表 blackApp: [], // 应用黑名单列表
...@@ -324,7 +330,6 @@ export default { ...@@ -324,7 +330,6 @@ export default {
let { data, total } = res.data.data; let { data, total } = res.data.data;
this.deviceList = data; this.deviceList = data;
this.rightTotal = total; this.rightTotal = total;
console.log(data);
} }
this.rightLoading = false; this.rightLoading = false;
}, },
...@@ -437,8 +442,8 @@ export default { ...@@ -437,8 +442,8 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.black-app { .black-app {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -459,6 +464,7 @@ export default { ...@@ -459,6 +464,7 @@ export default {
.header { .header {
height: 100px; height: 100px;
.titel { .titel {
font-size: 18px;
margin-bottom: 15px; margin-bottom: 15px;
} }
} }
...@@ -475,9 +481,4 @@ export default { ...@@ -475,9 +481,4 @@ export default {
justify-content: space-between; justify-content: space-between;
} }
} }
</style>
.add-btn {
background-color: #04cb8f;
color: #fff;
}
</style>
\ No newline at end of file
<template> <template>
<div class="data-update"> <div class="data-update">
<!-- 头部 --> <!-- 头部 -->
<div class="header flex aic jcb mb20"> <div class="header flex aic jcb mb20 pdr6">
<a-button type="primary" @click="handleAdd">新增</a-button> <a-button type="primary" @click="handleAdd">新增</a-button>
<div class="search-box"> <div class="search-box">
<a-input-group compact> <a-input-group compact>
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="delete" @click="handleDel(text.id)">删除</a> <span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -107,6 +107,7 @@ ...@@ -107,6 +107,7 @@
<script> <script>
import AddData from "../modal/AddData.vue"; import AddData from "../modal/AddData.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { import {
getDatasetList, getDatasetList,
deleteDataset, deleteDataset,
...@@ -137,7 +138,7 @@ export default { ...@@ -137,7 +138,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchVal: "", searchVal: "",
tableData: [], tableData: [],
AddVisible: false, AddVisible: false,
......
<template> <template>
<div class="field-config"> <div class="field-config">
<!-- 头部 --> <!-- 头部 -->
<div class="header flex aic jcb mb20"> <div class="header flex aic jcb mb20 pdr6">
<a-button type="primary" @click="handleAdd">新增字段</a-button> <a-button type="primary" @click="handleAdd">新增字段</a-button>
<a-input-search <a-input-search
style="width: 300px" style="width: 300px"
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="delete" @click="handleDel(text.id)">删除</a> <span class="delete pointer" @click="handleDel(text.id)">删除</span>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<script> <script>
import AddField from "../modal/AddField.vue"; import AddField from "../modal/AddField.vue";
import { getTempleteList, deleteTemplete } from "@/services/market"; import { getTempleteList, deleteTemplete } from "@/services/market";
import { pageSizeOptions } from "@/config/pageConfig.js";
export default { export default {
// props: { // props: {
// // 应用信息 // // 应用信息
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchVal: "", searchVal: "",
tableData: [], tableData: [],
fieldVisible: false, fieldVisible: false,
......
<template> <template>
<div class="terminal"> <div class="terminal">
<div class="header flex aic jcb mb20"> <div class="header flex aic jcb mb20 pdr6">
<a-space> <a-space>
<a-button type="primary" @click="handleAdd"> 新增应用 </a-button> <a-button type="primary" @click="handleAdd"> 新增应用 </a-button>
<a-button type="primary" @click="handleClone"> 克隆 </a-button> <a-button type="primary" @click="handleClone"> 克隆 </a-button>
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</template> </template>
<!-- 主题类型 --> <!-- 主题类型 -->
<template slot="appThemeName" slot-scope="text"> <template slot="appThemeName" slot-scope="text">
{{ filterItems(text.appThemeName, dict.appThemeName) }} {{ filterItems(text.appThemeName) }}
</template> </template>
<!-- 简介 --> <!-- 简介 -->
<template slot="summary" slot-scope="text"> <template slot="summary" slot-scope="text">
...@@ -83,13 +83,15 @@ ...@@ -83,13 +83,15 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="primary" @click="handleCheck(text.id)">查看</a> <span class="primary pointer" @click="handleCheck(text.id)"
<a >查看</span
class="delete" >
<span
class="delete pointer"
:class="{ unDelete: text.distribute }" :class="{ unDelete: text.distribute }"
@click="handleDel(text.distribute, text.id)" @click="handleDel(text.distribute, text.id)"
>删除</a >删除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -98,7 +100,7 @@ ...@@ -98,7 +100,7 @@
<!-- 新增应用 --> <!-- 新增应用 -->
<AddApp <AddApp
ref="AddApp" ref="AddApp"
:dict="dict" :categoryList="categoryList"
@success="getAppList" @success="getAppList"
:AddVisible.sync="AddVisible" :AddVisible.sync="AddVisible"
:title="title" :title="title"
...@@ -115,11 +117,16 @@ ...@@ -115,11 +117,16 @@
<script> <script>
import YSwitch from "../../../../components/yswitch/YSwitch.vue"; import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
import AddApp from "../modal/AddApp.vue"; import AddApp from "../modal/AddApp.vue";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { getAppList, deleteApp, saveApp } from "@/services/market"; import {
getAppList,
deleteApp,
saveApp,
getCategoryList,
} from "@/services/market";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { filterItems } from "@/utils";
import local from "@/utils/local"; import local from "@/utils/local";
const columns = [ const columns = [
{ {
...@@ -178,7 +185,6 @@ export default { ...@@ -178,7 +185,6 @@ export default {
}, },
data() { data() {
return { return {
filterItems,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL, api2: process.env.VUE_APP_API_IMG_URL,
columns, columns,
...@@ -189,12 +195,13 @@ export default { ...@@ -189,12 +195,13 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
selectedRowKeys: [], // 表格勾选数据 selectedRowKeys: [], // 表格勾选数据
AddVisible: false, AddVisible: false,
title: "新增应用", title: "新增应用",
siteVisible: false, siteVisible: false,
dict: {}, // 字典 dict: {}, // 字典
categoryList: [], // 应用分类列表
}; };
}, },
// 进入路由前 // 进入路由前
...@@ -216,10 +223,24 @@ export default { ...@@ -216,10 +223,24 @@ export default {
// } // }
// }, // },
created() { created() {
this.getCategoryList();
this.getAppList(); this.getAppList();
}, },
methods: { methods: {
...mapMutations("site", ["SET_appDict"]), ...mapMutations("site", ["SET_appDict"]),
// 获取分类列表
async getCategoryList() {
this.loading = true;
let res = await getCategoryList({
page: 1,
size: -1,
siteId: this.siteId,
});
let { data } = res.data.data;
if (res.data.code === 1) {
this.categoryList = data;
}
},
// 获取应用列表 // 获取应用列表
async getAppList() { async getAppList() {
this.loading = true; this.loading = true;
...@@ -351,6 +372,12 @@ export default { ...@@ -351,6 +372,12 @@ export default {
this.getAppList(); this.getAppList();
} }
}, },
// 过滤分类展示
filterItems(appThemeName) {
return (
this.categoryList.find((v) => v.id == appThemeName).categoryName || "--"
);
},
}, },
}; };
</script> </script>
...@@ -359,4 +386,4 @@ export default { ...@@ -359,4 +386,4 @@ export default {
.unDelete { .unDelete {
color: #ff4d5075 !important; color: #ff4d5075 !important;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="terminal"> <div class="terminal">
<div class="header flex aic jcb mb20"> <div class="header flex aic jcb mb20 pdr6">
<a-space> <a-space>
<a-button type="primary" @click="handleAdd"> 新增应用 </a-button> <a-button type="primary" @click="handleAdd"> 新增应用 </a-button>
<a-button type="primary" @click="handleClone"> 克隆 </a-button> <a-button type="primary" @click="handleClone"> 克隆 </a-button>
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</template> </template>
<!-- 主题类型 --> <!-- 主题类型 -->
<template slot="appThemeName" slot-scope="text"> <template slot="appThemeName" slot-scope="text">
{{ filterItems(text.appThemeName, dict.appThemeName) }} {{ filterItems(text.appThemeName) }}
</template> </template>
<!-- 简介 --> <!-- 简介 -->
<template slot="summary" slot-scope="text"> <template slot="summary" slot-scope="text">
...@@ -83,13 +83,15 @@ ...@@ -83,13 +83,15 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="edit" @click="handleEdit(text)">编辑</a> <span class="primary pointer" @click="handleEdit(text)">编辑</span>
<a class="primary" @click="handleCheck(text.id)">查看</a> <span class="primary pointer" @click="handleCheck(text.id)"
<a >查看</span
class="delete" >
<span
class="delete pointer"
:class="{ unDelete: text.distribute }" :class="{ unDelete: text.distribute }"
@click="handleDel(text.distribute, text.id)" @click="handleDel(text.distribute, text.id)"
>删除</a >删除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -98,7 +100,7 @@ ...@@ -98,7 +100,7 @@
<!-- 新增应用 --> <!-- 新增应用 -->
<AddApp <AddApp
ref="AddApp" ref="AddApp"
:dict="dict" :categoryList="categoryList"
@success="getAppList" @success="getAppList"
:AddVisible.sync="AddVisible" :AddVisible.sync="AddVisible"
:title="title" :title="title"
...@@ -117,10 +119,15 @@ ...@@ -117,10 +119,15 @@
import YSwitch from "../../../../components/yswitch/YSwitch.vue"; import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import AddApp from "../modal/AddApp.vue"; import AddApp from "../modal/AddApp.vue";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { getAppList, deleteApp, saveApp } from "@/services/market"; import {
getAppList,
deleteApp,
saveApp,
getCategoryList,
} from "@/services/market";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { filterItems } from "@/utils"; import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -178,7 +185,6 @@ export default { ...@@ -178,7 +185,6 @@ export default {
}, },
data() { data() {
return { return {
filterItems,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL, api2: process.env.VUE_APP_API_IMG_URL,
columns, columns,
...@@ -189,20 +195,36 @@ export default { ...@@ -189,20 +195,36 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
selectedRowKeys: [], // 表格勾选数据 selectedRowKeys: [], // 表格勾选数据
AddVisible: false, AddVisible: false,
title: "新增应用", title: "新增应用",
siteVisible: false, siteVisible: false,
dict: {}, // 字典 dict: {}, // 字典
categoryList: [], // 应用分类列表
}; };
}, },
created() { created() {
this.getCategoryList();
this.getAppList(); this.getAppList();
}, },
methods: { methods: {
...mapMutations("site", ["SET_appDict"]), ...mapMutations("site", ["SET_appDict"]),
// 获取分类列表
async getCategoryList() {
this.loading = true;
let res = await getCategoryList({
page: 1,
size: -1,
siteId: this.siteId,
});
let { data } = res.data.data;
if (res.data.code === 1) {
this.categoryList = data;
}
},
// 获取应用列表 // 获取应用列表
async getAppList() { async getAppList() {
this.loading = true; this.loading = true;
...@@ -335,6 +357,12 @@ export default { ...@@ -335,6 +357,12 @@ export default {
this.getAppList(); this.getAppList();
} }
}, },
// 过滤分类展示
filterItems(appThemeName) {
return (
this.categoryList.find((v) => v.id == appThemeName).categoryName || "--"
);
},
}, },
}; };
</script> </script>
...@@ -343,4 +371,4 @@ export default { ...@@ -343,4 +371,4 @@ export default {
.unDelete { .unDelete {
color: #ff4d5075 !important; color: #ff4d5075 !important;
} }
</style> </style>
\ No newline at end of file
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
<a-form-model-item label="应用主题" prop="appThemeName"> <a-form-model-item label="应用主题" prop="appThemeName">
<a-select v-model="form.appThemeName" placeholder="请选择应用主题"> <a-select v-model="form.appThemeName" placeholder="请选择应用主题">
<a-select-option <a-select-option
v-for="(v, key) in dict.appThemeName" v-for="v in categoryList"
:value="key" :value="'' + v.id"
:key="key" :key="v.id"
> >
{{ v }} {{ v.categoryName }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
> >
<a-space size="middle"> <a-space size="middle">
<a-button @click="onClose"> 取消 </a-button> <a-button @click="onClose"> 取消 </a-button>
<a-button type="primary" @click="onSubmit"> 保存 </a-button> <a-button type="primary" @click="onSubmit"> 确定 </a-button>
</a-space> </a-space>
</div> </div>
<!-- 预览 --> <!-- 预览 -->
...@@ -180,6 +180,7 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue"; ...@@ -180,6 +180,7 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import { saveApp } from "@/services/market"; import { saveApp } from "@/services/market";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { changeCodeNumber } from "@/utils/validate"; import { changeCodeNumber } from "@/utils/validate";
// import local from "@/utils/local";
import PrevieModal from "@/components/PrevieModal.vue"; import PrevieModal from "@/components/PrevieModal.vue";
export default { export default {
components: { components: {
...@@ -197,12 +198,10 @@ export default { ...@@ -197,12 +198,10 @@ export default {
required: true, required: true,
default: false, default: false,
}, },
dict: { categoryList: {
type: Object, type: Array,
required: true, required: true,
default: () => { default: () => [],
return {};
},
}, },
}, },
data() { data() {
......
<template>
<div>
<a-modal
v-model="Visible"
:maskClosable="false"
:title="title"
@cancel="handleClose"
destroyOnClose
centered
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
<a-form-model
ref="form"
:model="form"
:rules="rules"
: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>
<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" />
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import { saveCategory } from "@/services/market";
import local from "@/utils/local";
export default {
props: {
addVisile: {
type: Boolean,
require: true,
default: false,
},
title: {
require: true,
default: "新增分类",
},
},
components: {},
data() {
return {
form: {
siteId: local.getLocal("siteId"), // 站点id
siteName: local.getLocal("siteName"), // 站点名称
categoryName: "", // 分类名称
categoryCode: "", // 分类编码
sort: 99, // 排序
},
rules: {
categoryName: [
{ required: true, message: "请输入分类名称", trigger: "blur" },
],
categoryCode: [
{ required: true, message: "请输入分类编码", trigger: "blur" },
],
},
};
},
computed: {
Visible: {
get() {
return this.addVisile;
},
set(val) {
this.$emit("update:addVisile", val);
},
},
},
created() {},
methods: {
// 新增
onAdd() {
Object.assign(this.form, this.$options.data().form);
this.form.id && this.$delete(this.form, "id");
},
// 编辑
onEdit(data) {
this.form = { ...data };
},
// 关闭弹窗
handleClose() {
this.$refs.form.resetFields();
this.Visible = false;
},
// 保存
handleOk() {
this.$refs.form.validate(async (valid) => {
if (valid) {
let res = await saveCategory(this.form);
let { code, msg } = res.data;
if (code == 1) {
this.$message.success(msg);
this.$emit("addSuccess");
this.handleClose();
}
}
});
},
// 重置
handleReset() {
this.$refs.form.resetFields();
},
},
};
</script>
<style lang="less" scoped></style>
...@@ -2,11 +2,15 @@ ...@@ -2,11 +2,15 @@
<div class="basicset-tab1"> <div class="basicset-tab1">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">站点业务列表</h3> <div class="titel">站点业务列表</div>
<div class="control"> <div class="control pdr6">
<div> <div>
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button> <a-space size="middle">
<a-button class="add-btn" @click="showModal"> 新增业务 </a-button> <a-button type="primary" @click="showModal"> 新增业务 </a-button>
<a-button type="danger" @click="handleDelAll">
批量移除
</a-button>
</a-space>
</div> </div>
<div class="business-control"> <div class="business-control">
<a-input-search <a-input-search
...@@ -60,15 +64,20 @@ ...@@ -60,15 +64,20 @@
{{ text.businessName }} {{ text.businessName }}
</template> </template>
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="edit" @click="handleEdit(text)" <a-space size="middle">
>编辑</a <span
> href="javascript:;"
<a class="primary pointer"
href="javascript:;" @click="handleEdit(text)"
class="delete" >编辑</span
@click="handleDel(text.id, text)" >
>删除</a <span
> href="javascript:;"
class="delete pointer"
@click="handleDel(text.id, text)"
>删除</span
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -76,8 +85,8 @@ ...@@ -76,8 +85,8 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">一体化业务列表</h3> <div class="titel">一体化业务列表</div>
<div class="control"> <div class="control pdr6">
<div> <div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
</div> </div>
...@@ -132,13 +141,17 @@ ...@@ -132,13 +141,17 @@
{{ text.name }} {{ text.name }}
</template> </template>
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a class="jion" @click="handleIn(text.id)">加入</a> <a-space size="middle">
<a <span class="primary pointer" @click="handleIn(text.id)"
href="javascript:;" >加入</span
class="delete" >
@click="handleDelRight(+text.id)" <span
>删除</a href="javascript:;"
> class="delete pointer"
@click="handleDelRight(+text.id)"
>删除</span
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -156,6 +169,7 @@ ...@@ -156,6 +169,7 @@
<script> <script>
import addprofession from "../group/addprofession.vue"; import addprofession from "../group/addprofession.vue";
import local from "@/utils/local"; import local from "@/utils/local";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { import {
getBusinessList, getBusinessList,
delSiteBusiness, delSiteBusiness,
...@@ -234,7 +248,7 @@ export default { ...@@ -234,7 +248,7 @@ export default {
rightTotal: 0, rightTotal: 0,
leftSize: 10, leftSize: 10,
rightSize: 10, rightSize: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
serchData: "", serchData: "",
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
businessIds: "", // 业务id businessIds: "", // 业务id
...@@ -542,24 +556,12 @@ export default { ...@@ -542,24 +556,12 @@ export default {
.header { .header {
height: 100px; height: 100px;
.titel { .titel {
font-size: 18px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.ant-btn {
margin-right: 19px;
}
} }
} }
.edit {
color: #03d76f;
margin-right: 10px;
}
.delete {
color: #f94545;
}
.jion {
color: #67b6ff;
margin-right: 10px;
}
// .ant-pagination { // .ant-pagination {
// margin-top: 20px; // margin-top: 20px;
// } // }
...@@ -572,10 +574,7 @@ export default { ...@@ -572,10 +574,7 @@ export default {
// .table-content { // .table-content {
// height: 500px; // height: 500px;
// } // }
.add-btn {
background-color: #04cb8f;
color: #fff;
}
// .table-name { // .table-name {
// width: 92%; // width: 92%;
// text-align: center; // text-align: center;
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="basicset-tab2"> <div class="basicset-tab2">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">站点事项列表</h3> <div class="titel">站点事项列表</div>
<div class="header-bottom"> <div class="header-bottom pdr6">
<div class="left-btn"> <div class="left-btn">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button> <a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
</div> </div>
...@@ -11,14 +11,34 @@ ...@@ -11,14 +11,34 @@
<a-space> <a-space>
<a-select <a-select
style="width: 120px" style="width: 120px"
allowClear
v-model="leftSource" v-model="leftSource"
class="select-department" class="select-department"
placeholder="事项来源" placeholder="事项来源"
> >
<a-select-option value=""> 全部来源 </a-select-option>
<a-select-option :value="0"> 一体化添加 </a-select-option> <a-select-option :value="0"> 一体化添加 </a-select-option>
<a-select-option :value="1"> 手动添加 </a-select-option> <a-select-option :value="1"> 手动添加 </a-select-option>
</a-select> </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 <a-input-search
v-model="searchLeftVal" v-model="searchLeftVal"
placeholder="请输入事项名称搜索" placeholder="请输入事项名称搜索"
...@@ -87,18 +107,18 @@ ...@@ -87,18 +107,18 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space> <a-space>
<a <span
href="javascript:;" href="javascript:;"
v-if="text.source == 1" v-if="text.source == 1"
class="edit" class="primary pointer"
@click="handleSiteEdit(text)" @click="handleSiteEdit(text)"
>编辑</a >编辑</span
> >
<a <span
href="javascript:;" href="javascript:;"
class="delete" class="delete pointer"
@click="handleDel(text.id, text)" @click="handleDel(text.id, text)"
>移除</a >移除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -108,24 +128,48 @@ ...@@ -108,24 +128,48 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">基础事项列表</h3> <div class="titel">基础事项列表</div>
<div class="control"> <div class="control pdr6">
<div> <div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> <a-space size="middle">
<a-button class="add-btn" @click="addMatter"> 新增事项 </a-button> <a-button type="primary" @click="handleAddAll">
批量加入
</a-button>
<a-button type="primary" @click="addMatter"> 新增事项 </a-button>
</a-space>
</div> </div>
<div> <div>
<a-space> <a-space>
<a-select <a-select
style="width: 120px" style="width: 120px"
allowClear
v-model="rightSource" v-model="rightSource"
class="select-department" class="select-department"
placeholder="事项来源" placeholder="事项来源"
> >
<a-select-option value=""> 全部来源 </a-select-option>
<a-select-option :value="0"> 一体化事项 </a-select-option> <a-select-option :value="0"> 一体化事项 </a-select-option>
<a-select-option :value="1"> 自建事项 </a-select-option> <a-select-option :value="1"> 自建事项 </a-select-option>
</a-select> </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 <a-input-search
v-model="searchRightVal" v-model="searchRightVal"
placeholder="请输入事项名称搜索" placeholder="请输入事项名称搜索"
...@@ -185,22 +229,24 @@ ...@@ -185,22 +229,24 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="jion" @click="handleIn(text.id)" <a-space size="middle">
>加入</a <a href="javascript:;" class="primary" @click="handleIn(text.id)"
> >加入</a
<a >
href="javascript:;" <span
v-if="text.source == 1" href="javascript:;"
class="edit" v-if="text.source == 1"
@click="handleEdit(text.id)" class="primary pointer"
>编辑</a @click="handleEdit(text.id)"
> >编辑</span
<a >
href="javascript:;" <span
class="delete" href="javascript:;"
@click="handleDelRight(text.id)" class="delete pointer"
>删除</a @click="handleDelRight(text.id)"
> >删除</span
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -223,8 +269,9 @@ import { ...@@ -223,8 +269,9 @@ import {
delMatter, delMatter,
} from "@/services/matter"; } from "@/services/matter";
import { getBusinessMatterList, delBusinessMatter } from "@/services/business"; import { getBusinessMatterList, delBusinessMatter } from "@/services/business";
import { getDeptList } from "@/services/dept";
import EditSiteMatter from "../group/EditSiteMatter.vue"; import EditSiteMatter from "../group/EditSiteMatter.vue";
// import { getDeptList } from "@/services/dept"; import { pageSizeOptions } from "@/config/pageConfig.js";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
const leftColumns = [ const leftColumns = [
...@@ -286,7 +333,7 @@ const rightColumns = [ ...@@ -286,7 +333,7 @@ const rightColumns = [
}, },
{ {
title: "操作", title: "操作",
width: "130px", width: "140px",
scopedSlots: { scopedSlots: {
customRender: "action", customRender: "action",
}, },
...@@ -303,8 +350,10 @@ export default { ...@@ -303,8 +350,10 @@ export default {
rightColumns, rightColumns,
leftLoading: false, leftLoading: false,
rightLoading: false, rightLoading: false,
leftSource: undefined, // 左边来源 leftSource: "", // 左边来源
rightSource: undefined, // 右边来源 leftDept: "", // 左边部门搜索
rightDept: "", // 右边部门搜索
rightSource: "", // 右边来源
selectedRowKeys: [], selectedRowKeys: [],
matterSiteData: [], // 站点事项 matterSiteData: [], // 站点事项
matterDataList: [], //事项列表数据 matterDataList: [], //事项列表数据
...@@ -317,7 +366,7 @@ export default { ...@@ -317,7 +366,7 @@ export default {
rightTotal: 0, rightTotal: 0,
leftSize: 10, leftSize: 10,
rightSize: 10, rightSize: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
matterIds: "", // 事项id matterIds: "", // 事项id
deptList: [], // 站点部门 deptList: [], // 站点部门
...@@ -329,12 +378,28 @@ export default { ...@@ -329,12 +378,28 @@ export default {
}; };
}, },
created() { created() {
this.getDeptListData();
this.getMatterSiteData(); this.getMatterSiteData();
this.getMatterListData(); this.getMatterListData();
}, },
methods: { methods: {
...mapMutations("site", ["SET_matterDict"]), ...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 = {}) { async getMatterSiteData(search = {}) {
this.leftLoading = true; this.leftLoading = true;
...@@ -344,6 +409,7 @@ export default { ...@@ -344,6 +409,7 @@ export default {
siteId: this.siteId, siteId: this.siteId,
source: this.leftSource, source: this.leftSource,
matterName: `%${this.searchLeftVal}%`, matterName: `%${this.searchLeftVal}%`,
deptCode: this.leftDept,
...search, ...search,
}); });
let { pageInfo, data } = res.data.data; let { pageInfo, data } = res.data.data;
...@@ -364,6 +430,7 @@ export default { ...@@ -364,6 +430,7 @@ export default {
size: this.rightSize, size: this.rightSize,
matterName: this.searchRightVal, matterName: this.searchRightVal,
source: this.rightSource, source: this.rightSource,
deptCode: this.rightDept,
...search, ...search,
}); });
if (res.data.code === 1) { if (res.data.code === 1) {
...@@ -602,11 +669,9 @@ export default { ...@@ -602,11 +669,9 @@ export default {
.header { .header {
height: 100px; height: 100px;
.titel { .titel {
font-size: 18px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.ant-btn {
margin-right: 19px;
}
} }
.matter-name { .matter-name {
margin-bottom: 10px; margin-bottom: 10px;
...@@ -625,17 +690,6 @@ export default { ...@@ -625,17 +690,6 @@ export default {
} }
} }
} }
.edit {
color: #03d76f;
margin-right: 10px;
}
.delete {
color: #f94545;
}
.jion {
color: #67b6ff;
margin-right: 10px;
}
.control { .control {
display: flex; display: flex;
...@@ -647,10 +701,10 @@ export default { ...@@ -647,10 +701,10 @@ export default {
margin-left: 10px; margin-left: 10px;
} }
} }
.add-btn { // .add-btn {
background-color: #04cb8f; // background-color: #04cb8f;
color: #fff; // color: #fff;
} // }
// .table-content { // .table-content {
// height: 500px; // height: 500px;
// } // }
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="basicset-tab3"> <div class="basicset-tab3">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">站点业务列表</h3> <div class="titel">站点业务列表</div>
<div class="header-bottom"> <div class="header-bottom pdr6">
<div class="left-btn"> <div class="left-btn">
<a-button type="danger" @click="handleDelAll"> 批量解除 </a-button> <a-button type="danger" @click="handleDelAll"> 批量解除 </a-button>
</div> </div>
...@@ -49,11 +49,11 @@ ...@@ -49,11 +49,11 @@
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-tooltip> <a-tooltip>
<template slot="title"> 解除查看 </template> <template slot="title"> 解除查看 </template>
<a <span
href="javascript:;" href="javascript:;"
class="delete" class="delete pointer"
@click="handleisUnbound(text)" @click="handleisUnbound(text)"
>解除</a >解除</span
> >
</a-tooltip> </a-tooltip>
</template> </template>
...@@ -63,19 +63,41 @@ ...@@ -63,19 +63,41 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">站点事项列表</h3> <div class="titel">站点事项列表</div>
<div class="control"> <div class="control pdr6">
<div> <div>
<a-button type="primary" @click="handleAddAll"> 批量关联 </a-button> <a-button type="primary" @click="handleAddAll"> 批量关联 </a-button>
</div> </div>
<div> <div>
<a-input-search <a-space>
v-model="rightSearchVal" <a-select
placeholder="请输入事项名称搜索" showSearch
enter-button="搜索" style="min-width: 120px"
@search="onSearchRight" v-model="deptSearch"
allowClear 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="请输入事项名称搜索"
enter-button="搜索"
@search="onSearchRight"
allowClear
/>
</a-space>
</div> </div>
</div> </div>
</div> </div>
...@@ -127,7 +149,12 @@ ...@@ -127,7 +149,12 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="jion" @click="handleIn(text)">关联</a> <span
href="javascript:;"
class="primary pointer"
@click="handleIn(text)"
>关联</span
>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -154,7 +181,7 @@ ...@@ -154,7 +181,7 @@
<a-select <a-select
style="width: 85%" style="width: 85%"
show-search show-search
:filter-option="filterOption" optionFilterProp="label"
allowClear allowClear
placeholder="请选择业务" placeholder="请选择业务"
:showArrow="false" :showArrow="false"
...@@ -165,6 +192,7 @@ ...@@ -165,6 +192,7 @@
v-for="v in SiteBusinessData" v-for="v in SiteBusinessData"
:key="v.id" :key="v.id"
:value="v.businessId" :value="v.businessId"
:label="v.businessName"
> >
{{ v.businessName }} {{ v.businessName }}
</a-select-option> </a-select-option>
...@@ -251,6 +279,8 @@ ...@@ -251,6 +279,8 @@
<script> <script>
import { getSiteMatterList } from "@/services/matter"; import { getSiteMatterList } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { getDeptList } from "@/services/dept";
import { import {
getSiteBusinessList, getSiteBusinessList,
// addBusinessMatter, // addBusinessMatter,
...@@ -260,7 +290,6 @@ import { ...@@ -260,7 +290,6 @@ import {
addBatchSave, addBatchSave,
// getMatterlistData, // getMatterlistData,
} from "@/services/business"; } from "@/services/business";
// import { getDeptList } from "@/services/dept";
import local from "@/utils/local"; import local from "@/utils/local";
const leftColumns = [ const leftColumns = [
{ {
...@@ -323,6 +352,7 @@ export default { ...@@ -323,6 +352,7 @@ export default {
Leftloading: false, Leftloading: false,
rightloading: false, rightloading: false,
leftSearchVal: "", // 左边搜索 leftSearchVal: "", // 左边搜索
deptSearch: "", // 右边
rightSearchVal: "", // 右边搜索 rightSearchVal: "", // 右边搜索
SiteBusinessData: [], // 站点业务 SiteBusinessData: [], // 站点业务
SiteMatterData: [], //站点事项 SiteMatterData: [], //站点事项
...@@ -338,10 +368,10 @@ export default { ...@@ -338,10 +368,10 @@ export default {
rightTotal: 0, rightTotal: 0,
leftSize: 10, leftSize: 10,
rightSize: 10, rightSize: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
matterIds: "", // 业务id matterIds: "", // 业务id
// deptList: [], // 站点部门 deptList: [], // 站点部门
rightSearch: "", // 事项搜索 rightSearch: "", // 事项搜索
businessMatterData: [], // 业务关联事项列表数据 businessMatterData: [], // 业务关联事项列表数据
unboundBusinessData: {}, // 解除-业务数据 unboundBusinessData: {}, // 解除-业务数据
...@@ -363,6 +393,7 @@ export default { ...@@ -363,6 +393,7 @@ export default {
}; };
}, },
created() { created() {
this.getDeptListData();
this.getBusinessMatterData(); this.getBusinessMatterData();
this.getMatterlistData(); this.getMatterlistData();
this.getSiteBusinessData(); this.getSiteBusinessData();
...@@ -370,6 +401,21 @@ export default { ...@@ -370,6 +401,21 @@ export default {
}, },
methods: { 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 = {}) { async getBusinessMatterData(search = {}) {
this.Leftloading = true; this.Leftloading = true;
...@@ -432,6 +478,7 @@ export default { ...@@ -432,6 +478,7 @@ export default {
size: this.rightSize, size: this.rightSize,
matterName: `%${this.rightSearchVal}%`, matterName: `%${this.rightSearchVal}%`,
siteId: this.siteId, siteId: this.siteId,
deptCode: this.leftDept,
...search, ...search,
}); });
let { pageInfo, data } = res.data.data; let { pageInfo, data } = res.data.data;
...@@ -653,8 +700,8 @@ export default { ...@@ -653,8 +700,8 @@ export default {
}, },
// 关闭关联对话框 // 关闭关联对话框
handleclose() { handleclose() {
this.selectedRowKeys = []; // this.selectedRowKeys = [];
this.allCorrelationData = []; // this.allCorrelationData = [];
this.$refs.formData.resetFields(); this.$refs.formData.resetFields();
this.isCorrelation = false; this.isCorrelation = false;
}, },
...@@ -682,11 +729,9 @@ export default { ...@@ -682,11 +729,9 @@ export default {
.header { .header {
height: 100px; height: 100px;
.titel { .titel {
font-size: 18px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.ant-btn {
margin-right: 19px;
}
} }
} }
.matter-name { .matter-name {
...@@ -705,17 +750,7 @@ export default { ...@@ -705,17 +750,7 @@ export default {
} }
} }
} }
.edit {
color: #03d76f;
margin-right: 10px;
}
.delete {
color: #f94545;
}
.jion {
color: #67b6ff;
margin-right: 10px;
}
.ant-pagination { .ant-pagination {
margin-top: 20px; margin-top: 20px;
} }
...@@ -729,10 +764,7 @@ export default { ...@@ -729,10 +764,7 @@ export default {
margin-left: 10px; margin-left: 10px;
} }
} }
.add-btn {
background-color: #04cb8f;
color: #fff;
}
// .table-content { // .table-content {
// height: 500px; // height: 500px;
// } // }
......
rrent" <template> <template>
<div class="basicset-tab4"> <div class="basicset-tab4">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">站点事项列表</h3> <div class="titel">站点事项列表</div>
<div class="header-bottom flex aic jcb"> <div class="header-bottom flex aic jcb pdr6">
<div class="left-btn"></div> <div class="left-btn"></div>
<div> <div>
<a-space> <a-space>
...@@ -57,6 +57,7 @@ rrent" <template> ...@@ -57,6 +57,7 @@ rrent" <template>
current: current, current: current,
total: total, total: total,
pageSize: size, pageSize: size,
size: 'middle',
showSizeChanger: true, showSizeChanger: true,
showQuickJumper: true, showQuickJumper: true,
pageSizeOptions: pageSizeOptions, pageSizeOptions: pageSizeOptions,
...@@ -118,6 +119,7 @@ rrent" <template> ...@@ -118,6 +119,7 @@ rrent" <template>
<script> <script>
import { getSiteMatterList, addSitematter } from "@/services/matter"; import { getSiteMatterList, addSitematter } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { getDeptList } from "@/services/dept"; import { getDeptList } from "@/services/dept";
import local from "@/utils/local"; import local from "@/utils/local";
const columns = [ const columns = [
...@@ -169,7 +171,7 @@ export default { ...@@ -169,7 +171,7 @@ export default {
current: 1, current: 1,
total: 0, total: 0,
size: 10, size: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
deptList: [], // 站点部门 deptList: [], // 站点部门
searchVal: "", // 站点事项搜索 searchVal: "", // 站点事项搜索
...@@ -283,6 +285,10 @@ export default { ...@@ -283,6 +285,10 @@ export default {
padding: 0px 20px; padding: 0px 20px;
.header { .header {
margin-bottom: 15px; margin-bottom: 15px;
.titel {
font-size: 18px;
margin-bottom: 15px;
}
} }
.workguide_btn { .workguide_btn {
cursor: pointer; cursor: pointer;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
:maskClosable="false" :maskClosable="false"
> >
<a-button slot="footer" @click="handleReset">重置</a-button> <a-button slot="footer" @click="handleReset">重置</a-button>
<a-button slot="footer" type="primary" @click="handleOk">保存</a-button> <a-button slot="footer" type="primary" @click="handleOk">确定</a-button>
<a-form-model <a-form-model
:model="form" :model="form"
ref="formData" ref="formData"
......
...@@ -90,6 +90,7 @@ ...@@ -90,6 +90,7 @@
<script> <script>
import { getStatementList, delStatement } from "@/services/basicsetFun"; import { getStatementList, delStatement } from "@/services/basicsetFun";
import AddStatement from "../modal/AddStatement.vue"; import AddStatement from "../modal/AddStatement.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -140,7 +141,7 @@ export default { ...@@ -140,7 +141,7 @@ export default {
total: 0, total: 0,
size: 10, size: 10,
current: 1, current: 1,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
selectedRowKeys: [], selectedRowKeys: [],
tableData: [], tableData: [],
addStatementVisile: false, addStatementVisile: false,
......
<template> <template>
<div class="deploy"> <div class="deploy">
<a-card title="部署板块管理" :bordered="false"> <a-tabs activeKey="model">
<div class="control"> <a-tab-pane key="model" tab="部署板块管理">
<div> <div class="control pdr6">
<a-button type="primary" style="margin-right: 10px" @click="handleAdd" <div>
>新增模块</a-button <a-button
> type="primary"
<a-button type="danger" @click="handleDelAll">批量删除模块</a-button> style="margin-right: 10px"
</div> @click="handleAdd"
<div class="search-box"> >新增模块</a-button
<a-input-search >
placeholder="请输入模块名搜索" <a-button type="danger" @click="handleDelAll"
enter-button="搜索" >批量删除模块</a-button
v-model="searchValue" >
allowClear </div>
@search="onSearch" <div class="search-box">
@pressEnter="onSearch" <a-input-search
/> placeholder="请输入模块名搜索"
enter-button="搜索"
v-model="searchValue"
allowClear
@search="onSearch"
@pressEnter="onSearch"
/>
</div>
</div> </div>
</div> <!-- 表格 -->
<!-- 表格 --> <div class="table-content">
<div class="table-content"> <a-table
<a-table :row-selection="{
:row-selection="{ selectedRowKeys: selectedRowKeys,
selectedRowKeys: selectedRowKeys, onChange: onSelectChange,
onChange: onSelectChange, }"
}" :loading="loading"
:loading="loading" bordered
bordered :columns="columns"
:scroll="{ y: 560 }" :scroll="{ y: 580 }"
:columns="columns" :pagination="{
:pagination="{ showTotal: (total) => `共 ${total} 条`,
showTotal: (total) => `共 ${total} 条`, current: current,
current: current, total: total,
total: total, pageSize: size,
pageSize: size, showSizeChanger: true,
showSizeChanger: true, showQuickJumper: true,
showQuickJumper: true, pageSizeOptions: pageSizeOptions,
pageSizeOptions: pageSizeOptions, onChange: handleChange,
onChange: handleChange, onShowSizeChange: showSizeChange,
onShowSizeChange: showSizeChange, }"
}" :data-source="modelList"
:data-source="modelList" :rowKey="(record) => record.id"
:rowKey="(record) => record.id" >
> <!-- 序号 -->
<!-- 序号 --> <span slot="num" slot-scope="text, record, index">{{
<span slot="num" slot-scope="text, record, index">{{ (current - 1) * size + index + 1
(current - 1) * size + index + 1 }}</span>
}}</span> <!-- 模块地址 -->
<!-- 模块地址 --> <template slot="modelUrl" slot-scope="text">
<template slot="modelUrl" slot-scope="text"> {{ text.modelUrl ? text.modelUrl : "--" }}
{{ text.modelUrl ? text.modelUrl : "--" }} </template>
</template> <!-- 模块图标 -->
<!-- 模块图标 --> <template slot="modelIcon" slot-scope="text">
<template slot="modelIcon" slot-scope="text"> <div v-if="text.modelIcon">
<div v-if="text.modelIcon"> <!-- <div class="svg-box" v-if="isSvg(text.modelIcon)">
<!-- <div class="svg-box" v-if="isSvg(text.modelIcon)">
<img width="30" height="30" :src="api2 + text.modelIcon" /> <img width="30" height="30" :src="api2 + text.modelIcon" />
</div> --> </div> -->
<div class="svg-box"> <div class="svg-box">
<img width="30" height="30" :src="api2 + text.modelIcon" /> <img width="30" height="30" :src="api2 + text.modelIcon" />
</div>
</div> </div>
</div> <span v-else>--</span>
<span v-else>--</span> </template>
</template> <!-- 排序 -->
<!-- 排序 --> <template slot="sort" slot-scope="text">
<template slot="sort" slot-scope="text"> {{ text.sort ? text.sort : "--" }}
{{ text.sort ? text.sort : "--" }} </template>
</template> <!-- 创建时间 -->
<!-- 创建时间 --> <template slot="createTime" slot-scope="text">
<template slot="createTime" slot-scope="text"> {{ text.createTime | dateFormat }}
{{ text.createTime | dateFormat }} </template>
</template> <!-- 备注 -->
<!-- 备注 --> <template slot="remark" slot-scope="text">
<template slot="remark" slot-scope="text"> {{ text.remark ? text.remark : "--" }}
{{ text.remark ? text.remark : "--" }} </template>
</template> <!-- 操作 -->
<!-- 操作 --> <template slot="action" slot-scope="text">
<template slot="action" slot-scope="text"> <a-space>
<a-space> <span
<a href="javascript:;"
href="javascript:;" class="primary pointer"
class="primary" @click="statementManage(text)"
@click="statementManage(text)" >配置报表</span
>配置报表</a >
> <span
<a href="javascript:;" class="edit" @click="handleEdit(text)" href="javascript:;"
>编辑</a class="primary pointer"
> @click="handleEdit(text)"
<a href="javascript:;" class="delete" @click="handleDel(text.id)" >编辑</span
>删除</a >
> <span
</a-space> href="javascript:;"
</template> class="delete pointer"
</a-table> @click="handleDel(text.id)"
</div> >删除</span
</a-card> >
</a-space>
</template>
</a-table>
</div>
</a-tab-pane>
</a-tabs>
<!-- 新增模块 --> <!-- 新增模块 -->
<a-modal <a-modal
v-model="visible" v-model="visible"
...@@ -233,6 +246,7 @@ ...@@ -233,6 +246,7 @@
import { modelList, addMode, delMode } from "@/services/basicsetFun"; import { modelList, addMode, delMode } from "@/services/basicsetFun";
import PrevieModal from "@/components/PrevieModal.vue"; import PrevieModal from "@/components/PrevieModal.vue";
import StatementManage from "./components/StatementManage.vue"; import StatementManage from "./components/StatementManage.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -288,6 +302,7 @@ export default { ...@@ -288,6 +302,7 @@ export default {
}, },
data() { data() {
return { return {
pageSizeOptions,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL, api2: process.env.VUE_APP_API_IMG_URL,
accept: "image/jpeg,image/png,image/svg+xml", // 上传类型 accept: "image/jpeg,image/png,image/svg+xml", // 上传类型
...@@ -310,7 +325,6 @@ export default { ...@@ -310,7 +325,6 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"],
searchValue: "", // 搜索 searchValue: "", // 搜索
fileList: [], // 上传列表 fileList: [], // 上传列表
rules: { rules: {
...@@ -520,6 +534,7 @@ export default { ...@@ -520,6 +534,7 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #fff; background-color: #fff;
.control { .control {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -532,20 +547,20 @@ export default { ...@@ -532,20 +547,20 @@ export default {
// .table-content { // .table-content {
// height: 620px; // height: 620px;
// } // }
.edit { }
color: #03d76f; .ant-tabs {
} width: 100%;
.delete { background-color: #fff;
color: #f94545; min-height: 100%;
} }
/deep/.ant-tabs-content {
padding: 0px 15px 15px 15px;
} }
.handle-upload { .handle-upload {
margin-bottom: 30px !important; margin-bottom: 30px !important;
align-items: flex-start !important; align-items: flex-start !important;
} }
/deep/.ant-card {
width: 100% !important;
}
.svg-box, .svg-box,
/deep/.ant-upload-list-item-thumbnail { /deep/.ant-upload-list-item-thumbnail {
background-color: #54788c; background-color: #54788c;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</template> </template>
<div class="header"> <div class="header">
<span class="title">窗口事项列表</span> <span class="title">窗口事项列表</span>
<div class="control"> <div class="control pdr6">
<div class="btn"> <div class="btn">
<a-button <a-button
type="primary" type="primary"
...@@ -71,12 +71,21 @@ ...@@ -71,12 +71,21 @@
<y-switch v-model="text.isShow" :disabled="!text.isEdit"></y-switch> <y-switch v-model="text.isShow" :disabled="!text.isEdit"></y-switch>
</template> </template>
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="edit" @click="handleEdit(text)">{{ <a-space size="middle">
text.isEdit ? "保存" : "编辑" <span
}}</a> href="javascript:;"
<a href="javascript:;" @click="handleDel(+text.id)" class="delete" class="pointer"
>删除</a :class="text.isEdit ? 'edit' : 'primary'"
> @click="handleEdit(text)"
>{{ text.isEdit ? "保存" : "编辑" }}</span
>
<span
href="javascript:;"
@click="handleDel(+text.id)"
class="delete pointer"
>删除</span
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -133,9 +142,14 @@ ...@@ -133,9 +142,14 @@
:pagination="{ :pagination="{
showTotal: (total) => `共 ${total} 条`, showTotal: (total) => `共 ${total} 条`,
current: page, current: page,
pageSize: matterSize,
total: matterTotal, total: matterTotal,
size: 'small', size: 'small',
onChange: changeMatter, onChange: changeMatter,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onShowSizeChange: sizeChange,
}" }"
:columns="matterColumns" :columns="matterColumns"
:data-source="siteMatterData" :data-source="siteMatterData"
...@@ -163,6 +177,7 @@ ...@@ -163,6 +177,7 @@
<script> <script>
import { getSiteMatterList } from "@/services/matter"; import { getSiteMatterList } from "@/services/matter";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { import {
saveWindowbatch, saveWindowbatch,
getWindowmatterList, getWindowmatterList,
...@@ -247,11 +262,12 @@ export default { ...@@ -247,11 +262,12 @@ export default {
Current: 1, Current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
tableData: [], tableData: [],
siteMatterData: [], // 站点事项列表 siteMatterData: [], // 站点事项列表
matterTotal: 0, matterTotal: 0,
page: 1, page: 1,
matterSize: 10,
matterLoading: false, matterLoading: false,
matterKeys: [], matterKeys: [],
matterRows: [], matterRows: [],
...@@ -296,7 +312,7 @@ export default { ...@@ -296,7 +312,7 @@ export default {
this.matterLoading = true; this.matterLoading = true;
let res = await getSiteMatterList({ let res = await getSiteMatterList({
page: this.page, page: this.page,
size: 10, size: this.matterSize,
siteId: this.windowInfo.siteId, siteId: this.windowInfo.siteId,
matterName: `%${this.matterNameSearch}%`, matterName: `%${this.matterNameSearch}%`,
source: this.source, source: this.source,
...@@ -305,6 +321,7 @@ export default { ...@@ -305,6 +321,7 @@ export default {
let { data, total } = res.data.data; let { data, total } = res.data.data;
this.siteMatterData = data; this.siteMatterData = data;
this.matterTotal = total; this.matterTotal = total;
console.log(data);
this.matterLoading = false; this.matterLoading = false;
}, },
// 站点事项翻页 // 站点事项翻页
...@@ -312,6 +329,13 @@ export default { ...@@ -312,6 +329,13 @@ export default {
this.page = cur; this.page = cur;
this.getSiteMatterData(); this.getSiteMatterData();
}, },
// 站点事项改变每页显示数量
sizeChange(current, size) {
console.log(current, size);
this.page = current;
this.matterSize = size;
this.getSiteMatterData();
},
// 站点事项搜索 // 站点事项搜索
onSearchMatter() { onSearchMatter() {
this.page = 1; this.page = 1;
...@@ -497,13 +521,6 @@ export default { ...@@ -497,13 +521,6 @@ export default {
margin-top: 10px; margin-top: 10px;
} }
.edit {
color: #03d76f;
margin-right: 10px;
}
.delete {
color: #fa6d6e;
}
.ant-form-item { .ant-form-item {
display: flex; display: flex;
align-items: center !important; align-items: center !important;
......
...@@ -75,11 +75,42 @@ ...@@ -75,11 +75,42 @@
<!-- 窗口管理 --> <!-- 窗口管理 -->
<div class="ff window-box"> <div class="ff window-box">
<div class="department_right_add"> <div class="department_right_add">
<div>窗口管理</div> <div class="department_manage">窗口管理</div>
<div class="flex aic jcb"> <div class="flex aic jcb pdr6">
<a-button type="primary" @click="addModal" class="department_btnadd" <a-space>
>新增窗口</a-button <a-button type="primary" @click="addModal">新增窗口</a-button>
> <a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a-upload
name="file"
:multiple="false"
:action="api + 'base/window/importData'"
:showUploadList="false"
:headers="{
Authorization: token,
}"
@change="handleChange"
:data="{
siteId,
}"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
>
<div style="color: #1890ff">批量导入</div>
</a-upload>
</a-menu-item>
<a-menu-item key="2">
<a style="color: #1890ff" @click="handleDownload">
模板下载</a
>
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
更多操作 <a-icon type="down" />
</a-button>
</a-dropdown>
</a-space>
<a-input-search <a-input-search
placeholder="请输入窗口编号搜索" placeholder="请输入窗口编号搜索"
v-model="windowSearch" v-model="windowSearch"
...@@ -96,6 +127,7 @@ ...@@ -96,6 +127,7 @@
<a-table <a-table
:scroll="{ y: 580 }" :scroll="{ y: 580 }"
:loading="loading" :loading="loading"
bordered
:columns="columns" :columns="columns"
:data-source="windowData" :data-source="windowData"
:pagination="{ :pagination="{
...@@ -141,11 +173,19 @@ ...@@ -141,11 +173,19 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<div slot="action" slot-scope="text"> <div slot="action" slot-scope="text">
<div class="flex flexwrap"> <div class="flex jcb flexwrap">
<a class="yewu" type="primary" @click="workModal(text)">业务</a> <span class="primary pointer" @click="workModal(text)"
<a class="shixiang" @click="addWindowMatter(text)">事项</a> >业务</span
<a class="edit" type="primary" @click="editModal(text)">编辑</a> >
<a class="delete" @click="delWindow(text.id)">删除</a> <span class="primary pointer" @click="addWindowMatter(text)"
>事项</span
>
<span class="primary pointer" @click="editModal(text)"
>编辑</span
>
<span class="delete pointer" @click="delWindow(text.id)"
>删除</span
>
</div> </div>
</div> </div>
</a-table> </a-table>
...@@ -178,83 +218,20 @@ ...@@ -178,83 +218,20 @@
<script> <script>
import { Empty } from "ant-design-vue"; import { Empty } from "ant-design-vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
import adddepartment from "./components/adddepartment.vue"; import adddepartment from "./components/adddepartment.vue";
import addwindow from "./components/addwindow.vue"; import addwindow from "./components/addwindow.vue";
import addWindowBusiness from "./components/addWindowBusiness.vue"; import addWindowBusiness from "./components/addWindowBusiness.vue";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapGetters } from "vuex";
import { import {
getDeptList, getDeptList,
delDept, delDept,
getWindowList, getWindowList,
delWindow, delWindow,
getWindowTemplate,
} from "@/services/dept"; } from "@/services/dept";
const columns = [
{
title: "序号",
width: "6%",
scopedSlots: {
customRender: "number",
},
},
{
title: "窗口名称",
dataIndex: "name",
width: "10%",
},
{
title: "编号",
dataIndex: "fromnum",
width: "10%",
},
{
title: "所属部门",
width: "10%",
dataIndex: "deptName",
},
{
title: "工作人员",
width: "10%",
scopedSlots: {
customRender: "workmanList",
},
},
{
title: "所属楼栋",
width: "6%",
scopedSlots: {
customRender: "building",
},
},
{
title: "所属楼层",
width: "6%",
scopedSlots: {
customRender: "level",
},
},
{
title: "备注",
ellipsis: true,
scopedSlots: {
customRender: "summary",
},
},
{
title: "创建时间",
scopedSlots: {
customRender: "createTime",
},
},
{
title: "操作",
width: "100px",
scopedSlots: {
customRender: "action",
},
},
];
export default { export default {
components: { components: {
adddepartment, adddepartment,
...@@ -262,7 +239,78 @@ export default { ...@@ -262,7 +239,78 @@ export default {
addWindowBusiness, addWindowBusiness,
}, },
data() { data() {
const columns = [
{
title: "序号",
width: "6%",
scopedSlots: {
customRender: "number",
},
},
{
title: "窗口名称",
dataIndex: "name",
width: "10%",
},
{
title: "编号",
width: "10%",
customRender: (text) => {
return text.fromnum || "--";
},
},
{
title: "所属部门",
width: "10%",
customRender: (text) => {
return text.deptName || "--";
},
},
{
title: "工作人员",
width: "10%",
scopedSlots: {
customRender: "workmanList",
},
},
{
title: "所属楼栋",
width: "6%",
scopedSlots: {
customRender: "building",
},
},
{
title: "所属楼层",
width: "6%",
scopedSlots: {
customRender: "level",
},
},
{
title: "备注",
ellipsis: true,
scopedSlots: {
customRender: "summary",
},
},
{
title: "创建时间",
scopedSlots: {
customRender: "createTime",
},
},
{
title: "操作",
width: "100px",
scopedSlots: {
customRender: "action",
},
},
];
return { return {
spinning: false,
api: process.env.VUE_APP_API_BASE_URL + "/",
loading: false, loading: false,
deptLoading: false, deptLoading: false,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
...@@ -285,7 +333,7 @@ export default { ...@@ -285,7 +333,7 @@ export default {
page: 1, page: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
// businessPage: 1, // 站点业务翻页 // businessPage: 1, // 站点业务翻页
// businessTotal: 0, // 站点业务总数 // businessTotal: 0, // 站点业务总数
rules: { rules: {
...@@ -334,6 +382,9 @@ export default { ...@@ -334,6 +382,9 @@ export default {
this.$route.meta.isBack = false; this.$route.meta.isBack = false;
} }
}, },
computed: {
...mapGetters("site", ["token"]),
},
created() {}, created() {},
methods: { methods: {
// 去掉空children // 去掉空children
...@@ -544,6 +595,35 @@ export default { ...@@ -544,6 +595,35 @@ export default {
}, },
}); });
}, },
// 批量导入窗口模板下载
async handleDownload() {
let res = await getWindowTemplate({}, { responseType: "blob" });
const blob = new Blob([res.data], {
type: "application/octet-stream",
});
let fileName = "批量导入窗口模板";
const link = document.createElement("a");
link.href = URL.createObjectURL(blob);
link.setAttribute("download", `${fileName}.xlsx`); // 设置下载文件名称
document.body.appendChild(link);
link.click();
document.body.appendChild(link);
},
// 导入窗口
handleChange({ file }) {
this.spinning = true;
if (file.status === "done") {
let { code, msg } = file.response;
if (code == 1) {
this.$message.success(msg);
this.getWindowListData();
} else {
this.$message.error(msg);
}
this.spinning = false;
}
},
}, },
}; };
</script> </script>
...@@ -565,7 +645,8 @@ export default { ...@@ -565,7 +645,8 @@ export default {
margin-right: 30px; margin-right: 30px;
} }
.department_manage { .department_manage {
margin-bottom: 10px; font-size: 18px;
margin-bottom: 15px;
} }
.department_add { .department_add {
background-color: #0595fd; background-color: #0595fd;
...@@ -641,20 +722,12 @@ export default { ...@@ -641,20 +722,12 @@ export default {
margin-left: 10px; margin-left: 10px;
} }
.department_right_tab { .department_right_tab {
margin-top: 20px; margin-top: 10px;
} }
.department_right_table { .department_right_table {
font-size: 5px; font-size: 5px;
background-color: #fff; background-color: #fff;
} }
.edit {
color: #03d76f;
margin-right: 5px;
}
.delete {
color: red;
cursor: pointer;
}
.yewu { .yewu {
color: #0595fd; color: #0595fd;
margin-right: 5px; margin-right: 5px;
......
<template> <template>
<div class="hall-manage"> <div class="hall-manage">
<div class="control flex aic jcb mb20"> <div class="control flex aic jcb mb20 pdr6">
<a-space size="middle"> <a-space size="middle">
<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-button type="danger" @click="handleDelAll">批量删除</a-button>
...@@ -53,11 +53,17 @@ ...@@ -53,11 +53,17 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a href="javascript:;" class="edit" @click="handleEdit(text)" <span
>编辑</a href="javascript:;"
class="primary pointer"
@click="handleEdit(text)"
>编辑</span
> >
<a href="javascript:;" class="delete" @click="handleDel(text.id)" <span
>删除</a href="javascript:;"
class="delete pointer"
@click="handleDel(text.id)"
>删除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -75,6 +81,7 @@ ...@@ -75,6 +81,7 @@
<script> <script>
import { getHallList, delHall } from "@/services/hall"; import { getHallList, delHall } from "@/services/hall";
import { pageSizeOptions } from "@/config/pageConfig.js";
import loacl from "@/utils/local"; import loacl from "@/utils/local";
import AddHall from "./modal/AddHall.vue"; import AddHall from "./modal/AddHall.vue";
export default { export default {
...@@ -141,7 +148,7 @@ export default { ...@@ -141,7 +148,7 @@ export default {
size: 10, size: 10,
total: 0, total: 0,
siteId: loacl.getLocal("siteId"), siteId: loacl.getLocal("siteId"),
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchValue: "", // 搜索 searchValue: "", // 搜索
dataList: [], dataList: [],
}; };
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="hall-window"> <div class="hall-window">
<div class="left"> <div class="left">
<div class="header"> <div class="header">
<h3 class="titel">大厅窗口</h3> <div class="titel">大厅窗口</div>
<div class="control"> <div class="control pdr6">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button> <a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<div class="business-control"> <div class="business-control">
<a-space> <a-space>
...@@ -68,8 +68,11 @@ ...@@ -68,8 +68,11 @@
</span> </span>
</template> </template>
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="delete" @click="handleDel(text.id)" <span
>移除</a href="javascript:;"
class="delete pointer"
@click="handleDel(text.id)"
>移除</span
> >
</template> </template>
</a-table> </a-table>
...@@ -78,8 +81,8 @@ ...@@ -78,8 +81,8 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">站点窗口</h3> <div class="titel">站点窗口</div>
<div class="control"> <div class="control pdr6">
<div> <div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
</div> </div>
...@@ -148,7 +151,9 @@ ...@@ -148,7 +151,9 @@
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a class="jion" @click="handleIn([text])">加入大厅</a> <span class="primary pointer" @click="handleIn([text])"
>加入大厅</span
>
</a-space> </a-space>
</template> </template>
</a-table> </a-table>
...@@ -166,6 +171,7 @@ ...@@ -166,6 +171,7 @@
<script> <script>
import { getHallList, getWindowHallList, delWindowHall } from "@/services/hall"; import { getHallList, getWindowHallList, delWindowHall } from "@/services/hall";
import { pageSizeOptions } from "@/config/pageConfig.js";
import WindowToHall from "./modal/WindowToHall.vue"; import WindowToHall from "./modal/WindowToHall.vue";
import local from "@/utils/local"; import local from "@/utils/local";
import { getDeptList, getSubHalllist } from "@/services/dept"; import { getDeptList, getSubHalllist } from "@/services/dept";
...@@ -248,7 +254,7 @@ export default { ...@@ -248,7 +254,7 @@ export default {
rightTotal: 0, rightTotal: 0,
leftSize: 10, leftSize: 10,
rightSize: 10, rightSize: 10,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
siteId: local.getLocal("siteId"), // 站点id siteId: local.getLocal("siteId"), // 站点id
hallWindowData: [], // 大厅窗口数据 hallWindowData: [], // 大厅窗口数据
siteWindowData: [], // 站点窗口数据 siteWindowData: [], // 站点窗口数据
...@@ -455,6 +461,7 @@ export default { ...@@ -455,6 +461,7 @@ export default {
.header { .header {
height: 100px; height: 100px;
.titel { .titel {
font-size: 18px;
margin-bottom: 15px; margin-bottom: 15px;
} }
} }
......
<template> <template>
<div class="festival festival"> <div class="festival festival">
<div class="skins_bnt btn-box"> <div class="skins_bnt btn-box pdr6">
<!-- 新增按钮 --> <!-- 新增按钮 -->
<a-button type="primary" @click="showModal" class="skins_btn_1" <a-button type="primary" @click="showModal" class="skins_btn_1"
>新增节日</a-button >新增节日</a-button
> >
<div> <div>
<a-input-search <a-space>
style="width: 300px" <a-select
allowClear showSearch
placeholder="请输入年份查询" optionFilterProp="label"
enter-button="搜索" v-model="year"
v-model="year" style="width: 180px"
@search="onSearch" placeholder="请选择年份查询"
/> >
<a-select-option value="" label="全部年份">
全部年份
</a-select-option>
<a-select-option
:label="v"
v-for="v in yearData"
:key="v"
:value="v"
>
{{ v }}
</a-select-option>
</a-select>
<a-button type="primary" @click="onSearch"> 搜索 </a-button>
</a-space>
</div> </div>
</div> </div>
<div class="table-content"> <div class="table-content">
...@@ -63,8 +77,8 @@ ...@@ -63,8 +77,8 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space> <a-space size="middle">
<a @click="handleEdit(text)" class="edit">编辑</a> <a @click="handleEdit(text)" class="primary">编辑</a>
<a class="delet" @click="handleDel(text.id)">删除</a> <a class="delet" @click="handleDel(text.id)">删除</a>
</a-space> </a-space>
</template> </template>
...@@ -80,6 +94,7 @@ ...@@ -80,6 +94,7 @@
<script> <script>
import { getHolidayList, DelHoliday } from "@/services/festival"; import { getHolidayList, DelHoliday } from "@/services/festival";
import { pageSizeOptions } from "@/config/pageConfig.js";
import addfestivals from "./components/addfestivals.vue"; import addfestivals from "./components/addfestivals.vue";
import local from "@/utils/local"; import local from "@/utils/local";
const columns = [ const columns = [
...@@ -147,13 +162,15 @@ export default { ...@@ -147,13 +162,15 @@ export default {
page: 1, page: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
year: "", year: "",
siteId: local.getLocal("siteId"), siteId: local.getLocal("siteId"),
yearData: [], // 年份搜索数据
}; };
}, },
created() { created() {
this.getHolidayData(); this.getHolidayData();
this.getYearData();
}, },
methods: { methods: {
// 获取节假日列表 // 获取节假日列表
...@@ -229,6 +246,13 @@ export default { ...@@ -229,6 +246,13 @@ export default {
}, },
}); });
}, },
// 获取年份选择数据
getYearData() {
let curYear = new Date().getFullYear();
for (let i = curYear; i >= 1990; i--) {
this.yearData.push(i);
}
},
}, },
}; };
</script> </script>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<script> <script>
import local from "@/utils/local"; import local from "@/utils/local";
import { mapMutations } from "vuex";
export default { export default {
data() { data() {
return {}; return {};
...@@ -14,6 +15,12 @@ export default { ...@@ -14,6 +15,12 @@ export default {
this.getToken(); this.getToken();
}, },
methods: { methods: {
...mapMutations("site", [
"SET_userInfo",
"SET_token",
"SET_SITE_ID",
"SET_siteName",
]),
// 获取token // 获取token
getToken() { getToken() {
let token = this.$route.query.token; let token = this.$route.query.token;
...@@ -22,8 +29,12 @@ export default { ...@@ -22,8 +29,12 @@ export default {
let siteName = this.$route.query.siteName; let siteName = this.$route.query.siteName;
if (token && userInfo) { if (token && userInfo) {
userInfo = JSON.parse(userInfo); userInfo = JSON.parse(userInfo);
local.setLocal("token", token); this.SET_userInfo(userInfo);
local.setLocal("baseUserInfo", userInfo); this.SET_token(token);
this.SET_SITE_ID(siteId);
this.SET_siteName(siteName);
// local.setLocal("token", token);
// local.setLocal("baseUserInfo", userInfo);
local.setLocal("siteId", siteId); local.setLocal("siteId", siteId);
local.setLocal("siteName", siteName); local.setLocal("siteName", siteName);
this.$router.push("/website"); this.$router.push("/website");
...@@ -38,5 +49,4 @@ export default { ...@@ -38,5 +49,4 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped></style>
</style>
\ No newline at end of file
...@@ -786,20 +786,7 @@ export default { ...@@ -786,20 +786,7 @@ export default {
height: 100px; height: 100px;
object-fit: cover; object-fit: cover;
} }
.color_title {
margin-left: 15px;
position: relative;
margin-bottom: 15px;
&::before {
content: "";
width: 4px;
height: 20px;
position: absolute;
top: 1px;
left: -16px;
background-color: rgba(5, 149, 253, 1);
}
}
.building, .building,
.level { .level {
position: relative; position: relative;
...@@ -829,9 +816,14 @@ export default { ...@@ -829,9 +816,14 @@ export default {
} }
/deep/.model-id { /deep/.model-id {
display: flex !important; display: flex !important;
align-items: flex-start;
.ant-form-item-label { .ant-form-item-label {
line-height: 22px; line-height: 22px;
} }
.ant-checkbox-group {
display: grid;
grid-template-columns: 160px 160px 160px 160px 160px 160px;
}
.ant-checkbox-wrapper { .ant-checkbox-wrapper {
margin-left: 0px; margin-left: 0px;
margin-right: 6px; margin-right: 6px;
......
...@@ -18,18 +18,20 @@ ...@@ -18,18 +18,20 @@
<div class="site_box"> <div class="site_box">
<div class="site_message">站点信息</div> <div class="site_message">站点信息</div>
<div class="btn-box"> <div class="btn-box">
<a-button <a-space size="middle">
v-permission="[1]" <a-button
type="primary" v-permission="[1]"
@click="handleSync(item.id)" type="primary"
>同步数据</a-button @click="handleSync(item.id)"
> >同步数据</a-button
<a-button type="primary" @click="editSiteInfo(item)" >
>编辑</a-button <a-button type="primary" @click="editSiteInfo(item)"
> >编辑</a-button
<a-button type="danger" @click="deleteSite(item.id, index)" >
>删除</a-button <a-button type="danger" @click="deleteSite(item.id, index)"
> >删除</a-button
>
</a-space>
</div> </div>
</div> </div>
...@@ -468,17 +470,17 @@ export default { ...@@ -468,17 +470,17 @@ export default {
.site_message { .site_message {
font-weight: 600; font-weight: 600;
} }
.ant-btn-primary { // .ant-btn-primary {
background-color: rgba(4, 202, 143, 1); // background-color: rgba(4, 202, 143, 1);
border-color: rgba(4, 202, 143, 1); // border-color: rgba(4, 202, 143, 1);
padding-left: 20px; // padding-left: 20px;
padding-right: 20px; // padding-right: 20px;
margin-right: 30px; // margin-right: 30px;
} // }
.ant-btn-danger { // .ant-btn-danger {
padding-left: 20px; // padding-left: 20px;
padding-right: 20px; // padding-right: 20px;
} // }
.btn-box { .btn-box {
margin-right: 20px; margin-right: 20px;
} }
...@@ -531,11 +533,13 @@ export default { ...@@ -531,11 +533,13 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
.item { .item {
width: 120px;
background-color: rgba(30, 159, 255, 0.2); background-color: rgba(30, 159, 255, 0.2);
margin-right: 10px; margin-right: 10px;
margin-bottom: 10px; margin-bottom: 10px;
padding: 6px 16px; padding: 6px;
border-radius: 5px; border-radius: 5px;
text-align: center;
} }
} }
} }
...@@ -547,20 +551,6 @@ export default { ...@@ -547,20 +551,6 @@ export default {
} }
} }
} }
.color_title {
margin-left: 15px;
position: relative;
margin-bottom: 15px;
&::before {
content: "";
width: 4px;
height: 20px;
position: absolute;
top: 1px;
left: -16px;
background-color: rgba(5, 149, 253, 1);
}
}
.model_base { .model_base {
/deep/.ant-col-3 { /deep/.ant-col-3 {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</a-tooltip> </a-tooltip>
<span>皮肤模板</span> <span>皮肤模板</span>
</div> </div>
<div class="header"> <div class="header pdr6">
<a-space> <a-space>
<a-button type="primary" @click="handleAddTemplate" <a-button type="primary" @click="handleAddTemplate"
>新增皮肤模板</a-button >新增皮肤模板</a-button
...@@ -61,8 +61,11 @@ ...@@ -61,8 +61,11 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space> <a-space size="middle">
<a href="javascript:;" class="edit" @click="handleEdit(text)" <a
href="javascript:;"
class="primary"
@click="handleEdit(text)"
>编辑</a >编辑</a
> >
<a <a
...@@ -75,26 +78,12 @@ ...@@ -75,26 +78,12 @@
</template> </template>
</a-table> </a-table>
</div> </div>
<!-- 翻页 -->
<!-- <div class="pagination" v-if="leftTotal">
<a-pagination
v-model="leftCurrent"
:show-total="(total) => `共 ${total} 条`"
:total="leftTotal"
@change="changeLeft"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChange"
/>
</div> -->
</a-card> </a-card>
</div> </div>
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<a-card title="模板属性" :bodyStyle="{ height: '79vh' }"> <a-card title="模板属性" :bodyStyle="{ height: '79vh' }">
<div class="header"> <div class="header pdr6">
<div> <div>
<a-space> <a-space>
<a-button type="primary" @click="handleAddField" <a-button type="primary" @click="handleAddField"
...@@ -173,8 +162,8 @@ ...@@ -173,8 +162,8 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space> <a-space size="middle">
<a class="edit" @click="handleEditRight(text)">编辑</a> <a class="primary" @click="handleEditRight(text)">编辑</a>
<a <a
href="javascript:;" href="javascript:;"
class="delete" class="delete"
...@@ -185,20 +174,6 @@ ...@@ -185,20 +174,6 @@
</template> </template>
</a-table> </a-table>
</div> </div>
<!-- 分页 -->
<!-- <div class="pagination" v-if="rightTotal">
<a-pagination
v-model="rightCurrent"
:show-total="(total) => `共 ${total} 条`"
:total="rightTotal"
@change="changeRight"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChangeRight"
/>
</div> -->
</a-card> </a-card>
</div> </div>
</div> </div>
...@@ -231,6 +206,7 @@ import { ...@@ -231,6 +206,7 @@ import {
} from "@/services/surface"; } from "@/services/surface";
import AddTemplate from "./modal/AddTemplate.vue"; import AddTemplate from "./modal/AddTemplate.vue";
import AddField from "./modal/AddField.vue"; import AddField from "./modal/AddField.vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
const leftColumns = [ const leftColumns = [
{ {
title: "序号", title: "序号",
...@@ -325,7 +301,7 @@ export default { ...@@ -325,7 +301,7 @@ export default {
rightCurrent: 1, rightCurrent: 1,
rightSize: 10, rightSize: 10,
rightTotal: 0, rightTotal: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
visibleTemplate: false, visibleTemplate: false,
visibleField: false, visibleField: false,
titleTemplate: "", titleTemplate: "",
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- 头部 --> <!-- 头部 -->
<div class="header flex jcb"> <div class="header flex jcb">
<div class="header-title flex aic"> <div class="header-title flex aic">
<img src="../../../../assets/img/logo.png" /> <!-- <img src="../../../../assets/img/logo.png" /> -->
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1> <h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div> </div>
<div class="flex header-right jcb"> <div class="flex header-right jcb">
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- 头部 --> <!-- 头部 -->
<div class="header flex jcb"> <div class="header flex jcb">
<div class="header-title flex aic"> <div class="header-title flex aic">
<img src="../../../../assets/img/logo.png" /> <!-- <img src="../../../../assets/img/logo.png" /> -->
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1> <h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div> </div>
<div <div
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- 头部 --> <!-- 头部 -->
<div class="header flex aic jcb"> <div class="header flex aic jcb">
<div class="title flex aic"> <div class="title flex aic">
<img src="../../../../assets/img/logo.png" /> <!-- <img src="../../../../assets/img/logo.png" /> -->
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1> <h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div> </div>
<div class="time" :style="{ color: filterItem('3', 0) }"> <div class="time" :style="{ color: filterItem('3', 0) }">
...@@ -157,6 +157,122 @@ ...@@ -157,6 +157,122 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 集中显示屏 竖版 -->
<div
class="vertical-skin"
:id="conponentsId"
v-else-if="imageResolution === '2'"
:style="{
background: filterItem('1', 0),
}"
>
<!-- 头部 -->
<div class="header flex aic jcc">
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div>
<!-- 主体 -->
<div class="main flex flexc aic jcb">
<div class="call-out flex flexc jcb">
<div class="call-out-item">
<div class="call-out-item-title">正在呼叫</div>
<div class="call-out-item-text call-out-item-text-1">
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div class="call-out-item">
<div class="call-out-item-title">正在办理</div>
<div class="call-out-item-text call-out-item-text-2">
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div class="call-out-item">
<div class="call-out-item-title">正在办理</div>
<div class="call-out-item-text call-out-item-text-2">
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div class="call-out-item" v-for="v in 4" :key="v">
<div class="call-out-item-title">等待中</div>
<div class="call-out-item-text call-out-item-text-3">
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterItem('7', 0) }"
>--</span
>
</div>
</div>
</div>
<!-- banner -->
<div class="banner border flex aic jcc">banner</div>
</div>
<!-- 尾部 -->
<div class="footer flex aic jca">
<div class="footer-item flex flexc jcc aic">
<p :style="{ color: filterItem('5', 0) }">今日取号量</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200次
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p :style="{ color: filterItem('5', 0) }">累计取号量</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200次
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p :style="{ color: filterItem('5', 0) }">当前等待人数</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200人
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p :style="{ color: filterItem('5', 0) }">评价等待时间</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
12分钟
</p>
</div>
</div>
</div>
<!-- 空数据显示 --> <!-- 空数据显示 -->
<div class="empty flex aic jcc" v-else> <div class="empty flex aic jcc" v-else>
<a-empty <a-empty
...@@ -255,6 +371,9 @@ export default { ...@@ -255,6 +371,9 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.border {
border: 1px dashed #1890ff;
}
.centralize-across { .centralize-across {
width: 1000px; width: 1000px;
height: 562.5px; height: 562.5px;
...@@ -347,4 +466,90 @@ export default { ...@@ -347,4 +466,90 @@ export default {
} }
} }
} }
.vertical-skin {
height: 1000px;
width: 562px;
padding: 0px 10px;
background-image: linear-gradient(#26c5ff, #2c66ff);
background-repeat: no-repeat !important;
background-position: center !important;
background-size: 100% 100% !important;
.header {
height: 80px;
h1 {
margin: 0px;
margin-left: 10px;
font-size: 30px;
font-weight: bold;
color: #fff;
}
}
.main {
width: 100%;
padding: 10px;
border-radius: 4px;
background-color: #fff;
.banner {
width: 100%;
height: 360px;
border-radius: 4px;
color: #1890ff;
}
.call-out {
width: 100%;
.call-out-item {
width: 100%;
height: 50px;
margin-bottom: 10px;
border-radius: 8px;
position: relative;
background-color: #ccc;
.call-out-item-title {
height: 100%;
width: 20%;
text-align: center;
line-height: 50px;
color: #fff;
font-size: 16px;
border-radius: inherit;
}
.call-out-item-text {
height: 100%;
width: 80%;
line-height: 50px;
font-size: 20px;
padding: 0px 20px;
border-radius: 12px 8px 8px 0px;
position: absolute;
top: 0px;
right: 0px;
color: #000;
font-weight: 600;
text-align: left;
span {
margin: 0px 10px;
}
}
.call-out-item-text-1 {
background-color: #fdf7f2;
}
.call-out-item-text-2 {
background-color: #f1f8fe;
}
.call-out-item-text-3 {
background-color: #f4f5f6;
}
}
}
}
.footer {
margin-top: 20px;
width: 100%;
color: #fff;
.footer-count {
font-size: 18px;
font-weight: 600;
}
}
}
</style> </style>
\ No newline at end of file
...@@ -47,7 +47,9 @@ export default { ...@@ -47,7 +47,9 @@ export default {
// 搜索 // 搜索
onSearch(val) { onSearch(val) {
this.getProductList({ productName: `%${val}%` }); this.getProductList({ productName: `%${val}%` });
this.$emit("searchProduct", val); if (val) {
this.$emit("searchProduct", val);
}
}, },
changeMenu(index, row) { changeMenu(index, row) {
...@@ -66,14 +68,28 @@ export default { ...@@ -66,14 +68,28 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.left-menu {
height: 100%;
}
.search-box {
padding: 15px 15px 0px;
}
.menu { .menu {
height: 70vh;
margin-top: 15px; margin-top: 15px;
overflow-y: auto;
padding: 0px 15px 15px 15px;
.active { .active {
background-color: #1890ff; background-color: #1890ff;
color: #fff; color: #fff;
} }
} }
/deep/.ant-card-grid { /deep/.ant-card-grid {
height: 90px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer; cursor: pointer;
} }
</style> </style>
\ No newline at end of file
...@@ -12,20 +12,22 @@ ...@@ -12,20 +12,22 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</div> </div>
<div class="preview-list"> <a-spin size="small" :spinning="spinning">
<div v-if="previewList.length > 0"> <div class="preview-list">
<div <div v-if="previewList.length > 0">
class="preview-item" <div
@click="changePreview(i, v)" class="preview-item"
:class="{ active: i === curSkinIndex }" @click="changePreview(i, v)"
v-for="(v, i) in previewList" :class="{ active: i === curSkinIndex }"
:key="v.id" v-for="(v, i) in previewList"
> :key="v.id"
<img :src="v.previewImagePath" /> >
<img :src="v.previewImagePath" />
</div>
</div> </div>
<a-empty v-else :image="simpleImage" />
</div> </div>
<a-empty v-else :image="simpleImage" /> </a-spin>
</div>
<div class="preview-btn"> <div class="preview-btn">
<a-button type="primary" style="margin-bottom: 10px" @click="AddSurface" <a-button type="primary" style="margin-bottom: 10px" @click="AddSurface"
>新增皮肤</a-button >新增皮肤</a-button
...@@ -54,6 +56,7 @@ export default { ...@@ -54,6 +56,7 @@ export default {
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
categoryId: "", // 分类ID categoryId: "", // 分类ID
previewList: [], // 皮肤列表 previewList: [], // 皮肤列表
spinning: false,
}; };
}, },
computed: { computed: {
...@@ -93,6 +96,7 @@ export default { ...@@ -93,6 +96,7 @@ export default {
// 获取皮肤列表 // 获取皮肤列表
async getSkinList(search = {}) { async getSkinList(search = {}) {
this.isActive = 0; this.isActive = 0;
this.spinning = true;
let res = await getSkinList({ let res = await getSkinList({
page: 1, page: 1,
size: -1, size: -1,
...@@ -100,16 +104,19 @@ export default { ...@@ -100,16 +104,19 @@ export default {
categoryId: this.categoryId, categoryId: this.categoryId,
...search, ...search,
}); });
this.spinning = false;
let { imageResolution } = res.data.dict; let { imageResolution } = res.data.dict;
let { data } = res.data.data; if (res.data.code == 1) {
this.SET_imageResolution(imageResolution); let { data } = res.data.data;
this.previewList = data; this.SET_imageResolution(imageResolution);
if (data.length) { this.previewList = data;
this.SET_curSkin(this.previewList[0]); if (data.length) {
this.SET_curSkinIndex(0); this.SET_curSkin(this.previewList[0]);
} else { this.SET_curSkinIndex(0);
this.SET_curSkin({}); } else {
this.SET_curSkinIndex(0); this.SET_curSkin({});
this.SET_curSkinIndex(0);
}
} }
}, },
// 选取预览图 // 选取预览图
...@@ -151,12 +158,16 @@ export default { ...@@ -151,12 +158,16 @@ export default {
height: 80vh; height: 80vh;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 15px 0px;
.preview-seach { .preview-seach {
height: 32px; height: 32px;
padding: 0px 15px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.preview-list { .preview-list {
flex: 1; height: 65vh;
padding: 0px 15px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
......
...@@ -22,9 +22,7 @@ ...@@ -22,9 +22,7 @@
</div> </div>
<div class="show-btn flex aic jcc"> <div class="show-btn flex aic jcc">
<a-space size="middle"> <a-space size="middle">
<a-button class="edit-btn" @click="editSurface" <a-button type="primary" @click="editSurface">修改皮肤参数</a-button>
>修改皮肤参数</a-button
>
<a-button type="danger" @click="handleClose(curSkin.id)" <a-button type="danger" @click="handleClose(curSkin.id)"
>删除皮肤</a-button >删除皮肤</a-button
> >
...@@ -205,10 +203,6 @@ export default { ...@@ -205,10 +203,6 @@ export default {
object-fit: contain; object-fit: contain;
} }
} }
.edit-btn {
background-color: #03be64;
color: #fff;
}
} }
} }
// 媒体查询 // 媒体查询
......
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
type="primary" type="primary"
:loading="loading" :loading="loading"
@click="getPrintScreen" @click="getPrintScreen"
>保存</a-button >确定</a-button
> >
</a-space> </a-space>
</div> </div>
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<a-icon type="edit" style="margin-right: 6px" /> <a-icon type="edit" style="margin-right: 6px" />
<span>编辑</span> <span>编辑</span>
</div> </div>
<div> <div v-else>
<a-icon type="undo" style="margin-right: 6px" /> <a-icon type="undo" style="margin-right: 6px" />
<span>保存</span> <span>保存</span>
</div> </div>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
</div> </div>
</div> </div>
<div style="text-align: center" v-else> <div style="text-align: center" v-else>
<a-button class="add-btn" @click="handleAdd"> <a-button type="primary" @click="handleAdd">
<a-icon type="plus" /> <a-icon type="plus" />
新增分类 新增分类
</a-button> </a-button>
...@@ -361,7 +361,7 @@ export default { ...@@ -361,7 +361,7 @@ export default {
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
line-height: 26px; line-height: 26px;
background-color: #1890ff; background: linear-gradient(90deg, #5ab6ff, #2e9aff);
color: #fff; color: #fff;
border-radius: 0px 0px 0px 10px; border-radius: 0px 0px 0px 10px;
} }
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- 头部 --> <!-- 头部 -->
<div class="header flex aic jcb"> <div class="header flex aic jcb">
<div class="left flex aic"> <div class="left flex aic">
<img class="mr20" src="../../../../assets/img/logo.png" /> <!-- <img class="mr20" src="../../../../assets/img/logo.png" /> -->
<div <div
class="title" class="title"
:style="{ :style="{
......
...@@ -155,14 +155,13 @@ export default { ...@@ -155,14 +155,13 @@ export default {
display: flex; display: flex;
.menu-box { .menu-box {
width: 20%; width: 20%;
padding: 15px; height: 100%;
} }
.show-box { .show-box {
width: 65%; width: 65%;
} }
.preview-box { .preview-box {
width: 15%; width: 15%;
padding: 15px;
} }
} }
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
<div class="right flex1 flex flexc aic"> <div class="right flex1 flex flexc aic">
<div class="header flex aic jcc"> <div class="header flex aic jcc">
<img src="../../../../assets/img/logo.png" /> <!-- <img src="../../../../assets/img/logo.png" /> -->
<div> <div>
<h1 :style="{ color: filterItem('7', 0) }">政务服务中心</h1> <h1 :style="{ color: filterItem('7', 0) }">政务服务中心</h1>
</div> </div>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- 头部 --> <!-- 头部 -->
<div class="header flex aic jcb"> <div class="header flex aic jcb">
<div class="left flex aic"> <div class="left flex aic">
<img class="mr20" src="../../../../assets/img/logo.png" /> <!-- <img class="mr20" src="../../../../assets/img/logo.png" /> -->
<div <div
class="title" class="title"
:style="{ :style="{
......
<template> <template>
<div class="parameter"> <div class="parameter">
<div class="control flex aic jcb mb15"> <div class="control flex aic jcb mb15 pdr6">
<div> <div>
<a-button type="primary" style="margin-right: 10px" @click="handleAdd" <a-button type="primary" style="margin-right: 10px" @click="handleAdd"
>新增</a-button >新增</a-button
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
onChange: handleChange, onChange: handleChange,
onShowSizeChange: showSizeChange, onShowSizeChange: showSizeChange,
}" }"
size="small"
:data-source="tableData" :data-source="tableData"
:rowKey="(record) => record.id" :rowKey="(record) => record.id"
> >
...@@ -63,11 +62,17 @@ ...@@ -63,11 +62,17 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a href="javascript:;" class="edit" @click="handleEdit(text)" <span
>编辑</a href="javascript:;"
class="primary pointer"
@click="handleEdit(text)"
>编辑</span
> >
<a href="javascript:;" class="delete" @click="handleDel(text.id)" <span
>删除</a href="javascript:;"
class="delete pointer"
@click="handleDel(text.id)"
>删除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -86,6 +91,7 @@ ...@@ -86,6 +91,7 @@
<script> <script>
import { getSystemParameterList, delSystemParameter } from "@/services/system"; import { getSystemParameterList, delSystemParameter } from "@/services/system";
import { pageSizeOptions } from "@/config/pageConfig.js";
import AddParameter from "./modal/AddParameter.vue"; import AddParameter from "./modal/AddParameter.vue";
export default { export default {
components: { components: {
...@@ -168,7 +174,7 @@ export default { ...@@ -168,7 +174,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchValue: "", // 搜索 searchValue: "", // 搜索
tableData: [], tableData: [],
selectedRowKeys: [], selectedRowKeys: [],
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
:maskClosable="false" :maskClosable="false"
> >
<a-button slot="footer" @click="handleReset">重置</a-button> <a-button slot="footer" @click="handleReset">重置</a-button>
<a-button slot="footer" type="primary" @click="handleOk">保存</a-button> <a-button slot="footer" type="primary" @click="handleOk">确定</a-button>
<a-form-model <a-form-model
:model="form" :model="form"
ref="form" ref="form"
......
<template> <template>
<!-- 系统日志 --> <!-- 系统日志 -->
<div class="system-logs"> <div class="system-logs">
<div class="control"> <div class="control pdr6">
<div class="search-box"> <div class="search-box">
<a-input-search <a-input-search
placeholder="请输入请求地址搜索" placeholder="请输入请求地址搜索"
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
bordered bordered
:scroll="{ y: 590 }" :scroll="{ y: 590 }"
:columns="columns" :columns="columns"
size="small"
:pagination="{ :pagination="{
showTotal: (total) => `共 ${total} 条`, showTotal: (total) => `共 ${total} 条`,
current: current, current: current,
...@@ -49,6 +48,7 @@ ...@@ -49,6 +48,7 @@
<script> <script>
import { getSystemLogsList } from "@/services/system"; import { getSystemLogsList } from "@/services/system";
import { pageSizeOptions } from "@/config/pageConfig.js";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -93,7 +93,7 @@ export default { ...@@ -93,7 +93,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchValue: "", // 搜索 searchValue: "", // 搜索
tableData: [], tableData: [],
}; };
......
<template> <template>
<div class="task-set"> <div class="task-set">
<div class="control flex aic jcb mb15"> <div class="control flex aic jcb mb15 pdr6">
<div> <div>
<a-button type="primary" style="margin-right: 10px" @click="handleAdd" <a-button type="primary" style="margin-right: 10px" @click="handleAdd"
>新增</a-button >新增</a-button
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
onChange: handleChange, onChange: handleChange,
onShowSizeChange: showSizeChange, onShowSizeChange: showSizeChange,
}" }"
size="small"
:data-source="tableData" :data-source="tableData"
:rowKey="(record) => record.id" :rowKey="(record) => record.id"
> >
...@@ -64,11 +63,17 @@ ...@@ -64,11 +63,17 @@
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a-space size="middle"> <a-space size="middle">
<a href="javascript:;" class="edit" @click="handleEdit(text)" <span
>编辑</a href="javascript:;"
class="primary pointer"
@click="handleEdit(text)"
>编辑</span
> >
<a href="javascript:;" class="delete" @click="handleDel(text.id)" <span
>删除</a href="javascript:;"
class="delete pointer"
@click="handleDel(text.id)"
>删除</span
> >
</a-space> </a-space>
</template> </template>
...@@ -87,6 +92,7 @@ ...@@ -87,6 +92,7 @@
<script> <script>
import { getSystemTaskList, delSystemTask } from "@/services/system"; import { getSystemTaskList, delSystemTask } from "@/services/system";
import { pageSizeOptions } from "@/config/pageConfig.js";
import AddTask from "./modal/AddTask.vue"; import AddTask from "./modal/AddTask.vue";
export default { export default {
components: { components: {
...@@ -154,7 +160,7 @@ export default { ...@@ -154,7 +160,7 @@ export default {
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
searchValue: "", // 搜索 searchValue: "", // 搜索
tableData: [], tableData: [],
selectedRowKeys: [], selectedRowKeys: [],
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
:maskClosable="false" :maskClosable="false"
> >
<a-button slot="footer" @click="handleReset">重置</a-button> <a-button slot="footer" @click="handleReset">重置</a-button>
<a-button slot="footer" type="primary" @click="handleOk">保存</a-button> <a-button slot="footer" type="primary" @click="handleOk">确定</a-button>
<a-form-model <a-form-model
:model="form" :model="form"
ref="form" ref="form"
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
<a-form-model-item label="所属部门" prop="deptId"> <a-form-model-item label="所属部门" prop="deptId">
<a-select <a-select
showSearch showSearch
v-model="form.deptId"
optionFilterProp="label" optionFilterProp="label"
v-model="form.deptId"
placeholder="请选择部门" placeholder="请选择部门"
@change="handleDeptSelect" @change="handleDeptSelect"
allowClear allowClear
...@@ -56,28 +56,35 @@ ...@@ -56,28 +56,35 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12">
<a-form-model-item label="经办人Id" prop="operatorId">
<a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
</a-form-model-item>
</a-col>
<!-- <a-col :span="12"> <!-- <a-col :span="12">
<a-form-model-item label="所属窗口" prop="windowId"> <a-form-model-item label="所属窗口" prop="windowId">
<a-select <a-select
v-model="form.windowId" v-model="form.windowId"
placeholder="请选择窗口" placeholder="请选择窗口"
@change="handleWindowSelect" @change="handleWindowSelect"
showSearch
allowClear
optionFilterProp="label"
> >
<a-select-option <a-select-option
v-for="v in windowData" v-for="v in windowData"
:key="v.id" :key="v.id"
:value="v.id" :value="v.id"
>{{ v.name }}</a-select-option :label="v.name + v.fromnum"
:data-name="v.name"
> >
<span>{{ v.name }}</span>
<span>--</span>
<span>{{ v.fromnum }}</span>
</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> --> </a-col> -->
<a-col :span="12">
<a-form-model-item label="经办人Id" prop="operatorId">
<a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
...@@ -123,6 +130,8 @@ ...@@ -123,6 +130,8 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="称号" prop="dangyuan"> <a-form-model-item label="称号" prop="dangyuan">
<a-select <a-select
...@@ -392,7 +401,7 @@ export default { ...@@ -392,7 +401,7 @@ export default {
loading: false, loading: false,
imageUrl: "", imageUrl: "",
labelCol: { span: 5 }, labelCol: { span: 5 },
wrapperCol: { span: 14 }, wrapperCol: { span: 19 },
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
modelIds: [], // 模块 modelIds: [], // 模块
...@@ -401,12 +410,13 @@ export default { ...@@ -401,12 +410,13 @@ export default {
siteId: "", siteId: "",
siteName: "", siteName: "",
}, },
curWindow: {}, // 当前选择窗口
form: { form: {
// roleId: "", // 权限id // roleId: "", // 权限id
deptId: undefined, // 部门id deptId: undefined, // 部门id
deptName: "", //部门名称 deptName: "", //部门名称
windowName: "", // 窗口名称 windowName: "", // 窗口名称
// windowId: undefined, // 窗口id windowId: undefined, // 窗口id
siteName: "", // 站点名称 siteName: "", // 站点名称
siteId: "", // 站点id siteId: "", // 站点id
name: "", // 姓名 name: "", // 姓名
...@@ -469,6 +479,15 @@ export default { ...@@ -469,6 +479,15 @@ export default {
this.siteInfo.siteId = info.id; this.siteInfo.siteId = info.id;
this.siteInfo.siteName = info.label; this.siteInfo.siteName = info.label;
}, },
// 获取窗口列表
async getWindowList(deptId) {
let windowData = [];
let res = await getWindowList({ deptId, page: 1, size: -1 });
if (res.data.code == 1) {
windowData = res.data.data.data;
}
return windowData;
},
// 获取模块 // 获取模块
async getModelList() { async getModelList() {
let res = await modelList({ page: 1, size: -1 }); let res = await modelList({ page: 1, size: -1 });
...@@ -477,21 +496,30 @@ export default { ...@@ -477,21 +496,30 @@ export default {
// 部门选择 // 部门选择
async handleDeptSelect(val, node) { async handleDeptSelect(val, node) {
this.form.windowId = undefined; // this.form.windowId = undefined;
let { text } = node.componentOptions.children[0]; // this.form.windowName = "";
this.form.deptName = text; if (val) {
let res = await getWindowList({ deptId: val, page: 1, size: -1 }); let { text } = node.componentOptions.children[0];
this.windowData = res.data.data.data; this.form.deptName = text;
// this.windowData = await this.getWindowList(val);
} else {
this.form.deptName = "";
// this.windowData = [];
}
}, },
//编辑获取窗口 //编辑获取窗口
async editWindow(val) { async editWindow(val) {
let res = await getWindowList({ deptId: val, page: 1, size: -1 }); this.windowData = await this.getWindowList(val);
this.windowData = res.data.data.data;
}, },
// 窗口选择 // 窗口选择
handleWindowSelect(val, node) { handleWindowSelect(val, node) {
let { text } = node.componentOptions.children[0]; if (val) {
this.form.windowName = text; let name = node.data.attrs["data-name"];
this.form.windowName = name;
} else {
this.form.windowName = "";
}
this.$forceUpdate();
}, },
// 保存 // 保存
hideModal() { hideModal() {
...@@ -509,9 +537,11 @@ export default { ...@@ -509,9 +537,11 @@ export default {
}, },
// 编辑 // 编辑
onEdit(data) { onEdit(data) {
// this.editWindow(data.deptId);
this.form = { ...data }; this.form = { ...data };
this.form.loginName && this.$delete(this.form, "loginName"); this.form.loginName && this.$delete(this.form, "loginName");
this.form.loginPwd && this.$delete(this.form, "loginPwd"); this.form.loginPwd && this.$delete(this.form, "loginPwd");
this.form.windowId = this.form.windowId ? this.form.windowId : undefined;
if (this.form.photoPath) { if (this.form.photoPath) {
this.fileList = [ this.fileList = [
{ {
...@@ -523,16 +553,19 @@ export default { ...@@ -523,16 +553,19 @@ export default {
}, },
]; ];
} }
// this.editWindow(data.deptId);
}, },
// 关闭对话框 // 关闭对话框
handleClose() { handleClose() {
// this.$refs.formData.resetFields(); this.$refs.formData.resetFields();
this.fileList = [];
this.loading = false; this.loading = false;
this.Visible = false; this.Visible = false;
// this.windowData = [];
// this.form.windowName = "";
}, },
// 重置 // 重置
handleReset() { handleReset() {
// this.form.windowName = "";
this.$refs.formData.resetFields(); this.$refs.formData.resetFields();
}, },
// 照片上传 // 照片上传
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
<a-form-model-item label="所属部门" prop="deptId"> <a-form-model-item label="所属部门" prop="deptId">
<a-select <a-select
showSearch showSearch
v-model="form.deptId"
optionFilterProp="label" optionFilterProp="label"
v-model="form.deptId"
placeholder="请选择部门" placeholder="请选择部门"
@change="handleDeptSelect" @change="handleDeptSelect"
allowClear allowClear
...@@ -56,28 +56,35 @@ ...@@ -56,28 +56,35 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12">
<a-form-model-item label="经办人Id" prop="operatorId">
<a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
</a-form-model-item>
</a-col>
<!-- <a-col :span="12"> <!-- <a-col :span="12">
<a-form-model-item label="所属窗口" prop="windowId"> <a-form-model-item label="所属窗口" prop="windowId">
<a-select <a-select
v-model="form.windowId" v-model="form.windowId"
placeholder="请选择窗口" placeholder="请选择窗口"
@change="handleWindowSelect" @change="handleWindowSelect"
showSearch
allowClear
optionFilterProp="label"
> >
<a-select-option <a-select-option
v-for="v in windowData" v-for="v in windowData"
:key="v.id" :key="v.id"
:value="v.id" :value="v.id"
>{{ v.name }}</a-select-option :label="v.name + v.fromnum"
:data-name="v.name"
> >
<span>{{ v.name }}</span>
<span>--</span>
<span>{{ v.fromnum }}</span>
</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> --> </a-col> -->
<a-col :span="12">
<a-form-model-item label="经办人Id" prop="operatorId">
<a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
...@@ -123,6 +130,8 @@ ...@@ -123,6 +130,8 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="称号" prop="dangyuan"> <a-form-model-item label="称号" prop="dangyuan">
<a-select <a-select
...@@ -426,7 +435,7 @@ export default { ...@@ -426,7 +435,7 @@ export default {
loading: false, loading: false,
imageUrl: "", imageUrl: "",
labelCol: { span: 5 }, labelCol: { span: 5 },
wrapperCol: { span: 14 }, wrapperCol: { span: 19 },
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
modelIds: [], // 模块 modelIds: [], // 模块
...@@ -442,7 +451,7 @@ export default { ...@@ -442,7 +451,7 @@ export default {
deptId: undefined, // 部门id deptId: undefined, // 部门id
deptName: "", //部门名称 deptName: "", //部门名称
windowName: "", // 窗口名称 windowName: "", // 窗口名称
// windowId: undefined, // 窗口id windowId: undefined, // 窗口id
siteName: "", // 站点名称 siteName: "", // 站点名称
siteId: "", // 站点id siteId: "", // 站点id
name: "", // 姓名 name: "", // 姓名
...@@ -510,23 +519,40 @@ export default { ...@@ -510,23 +519,40 @@ export default {
let res = await modelList({ page: 1, size: -1 }); let res = await modelList({ page: 1, size: -1 });
this.modelIds = res.data.data.data; this.modelIds = res.data.data.data;
}, },
// 获取窗口列表
async getWindowList(deptId) {
let windowData = [];
let res = await getWindowList({ deptId, page: 1, size: -1 });
if (res.data.code == 1) {
windowData = res.data.data.data;
}
return windowData;
},
// 部门选择 // 部门选择
async handleDeptSelect(val, node) { async handleDeptSelect(val, node) {
this.form.windowId = undefined; // this.form.windowId = undefined;
let { text } = node.componentOptions.children[0]; // this.form.windowName = "";
this.form.deptName = text; if (val) {
let res = await getWindowList({ deptId: val, page: 1, size: -1 }); let { text } = node.componentOptions.children[0];
this.windowData = res.data.data.data; this.form.deptName = text;
// this.windowData = await this.getWindowList(val);
} else {
this.form.deptName = "";
// this.windowData = [];
}
}, },
//编辑获取窗口 //编辑获取窗口
async editWindow(val) { async editWindow(val) {
let res = await getWindowList({ deptId: val, page: 1, size: -1 }); this.windowData = await this.getWindowList(val);
this.windowData = res.data.data.data;
}, },
// 窗口选择 // 窗口选择
handleWindowSelect(val, node) { handleWindowSelect(val, node) {
let { text } = node.componentOptions.children[0]; if (val) {
this.form.windowName = text; let name = node.data.attrs["data-name"];
this.form.windowName = name;
} else {
this.form.windowName = "";
}
}, },
// 保存 // 保存
hideModal() { hideModal() {
...@@ -548,18 +574,18 @@ export default { ...@@ -548,18 +574,18 @@ export default {
}, },
// 重置 // 重置
handleReset() { handleReset() {
// this.form.windowName = "";
this.$refs.formData.resetFields(); this.$refs.formData.resetFields();
}, },
// 新增 // 新增
onAdd() { onAdd() {
Object.assign(this.form, this.$options.data().form); Object.assign(this.form, this.$options.data().form);
this.windowData = [];
this.form.id && this.$delete(this.form, "id"); this.form.id && this.$delete(this.form, "id");
}, },
// 编辑 // 编辑
onEdit(data) { onEdit(data) {
this.form = { ...data }; this.form = { ...data };
this.editWindow(data.deptId); // this.editWindow(data.deptId);
if (this.form.photoPath) { if (this.form.photoPath) {
this.fileList = [ this.fileList = [
{ {
...@@ -575,6 +601,9 @@ export default { ...@@ -575,6 +601,9 @@ export default {
// 关闭对话框 // 关闭对话框
handleClose() { handleClose() {
// this.$refs.formData.resetFields(); // this.$refs.formData.resetFields();
// this.windowData = [];
this.fileList = [];
// this.form.windowName = "";
this.loading = false; this.loading = false;
this.Visible = false; this.Visible = false;
}, },
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="website"> <div class="website">
<!-- 右边 --> <!-- 右边 -->
<div class="right ff"> <div class="right ff">
<div class="person_message">工作人员管理</div> <!-- <div class="person_message">工作人员管理</div> -->
<div class="person_chang"> <div class="person_chang">
<div class="person_gruop">选择部门:</div> <div class="person_gruop">选择部门:</div>
<div class="person_gruop1"> <div class="person_gruop1">
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
</a-radio-group> --> </a-radio-group> -->
</div> </div>
</div> </div>
<div class="on btn"> <div class="on btn pdr6">
<div> <div>
<a-button type="primary" @click="showModal">新增人员</a-button> <a-button type="primary" @click="showModal">新增人员</a-button>
<a-dropdown> <a-dropdown>
...@@ -136,7 +136,9 @@ ...@@ -136,7 +136,9 @@
:multiple="false" :multiple="false"
:action="api + 'base/workman/importData'" :action="api + 'base/workman/importData'"
:showUploadList="false" :showUploadList="false"
:headers="headers" :headers="{
Authorization: token,
}"
@change="handleChange" @change="handleChange"
:data="{ :data="{
siteId, siteId,
...@@ -160,7 +162,9 @@ ...@@ -160,7 +162,9 @@
:multiple="false" :multiple="false"
:action="api + 'base/file/commonupload'" :action="api + 'base/file/commonupload'"
:showUploadList="false" :showUploadList="false"
:headers="headers" :headers="{
Authorization: token,
}"
@change="handleChangeImg" @change="handleChangeImg"
accept="application/x-zip-compressed" accept="application/x-zip-compressed"
> >
...@@ -178,7 +182,8 @@ ...@@ -178,7 +182,8 @@
</div> </div>
<div class="in"> <div class="in">
<a-input-search <a-input-search
placeholder="请输入姓名或者工号" placeholder="请输入姓名或者工号搜索"
v-model="searchVal"
enter-button="搜索" enter-button="搜索"
allowClear allowClear
@search="onSearch" @search="onSearch"
...@@ -199,6 +204,7 @@ ...@@ -199,6 +204,7 @@
onChange: handlePagination, onChange: handlePagination,
onShowSizeChange: showSizeChange, onShowSizeChange: showSizeChange,
}" }"
bordered
:scroll="{ y: 530 }" :scroll="{ y: 530 }"
:loading="loading" :loading="loading"
:columns="columns" :columns="columns"
...@@ -216,6 +222,7 @@ ...@@ -216,6 +222,7 @@
:src="api2 + text.photoPath" :src="api2 + text.photoPath"
class="pht" class="pht"
/> />
<span v-else>--</span> <span v-else>--</span>
</template> </template>
<!-- 电话 --> <!-- 电话 -->
...@@ -230,7 +237,7 @@ ...@@ -230,7 +237,7 @@
</div> </div>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
<!-- 创建时间 --> <!-- 所属窗口 -->
<template slot="windowName" slot-scope="text"> <template slot="windowName" slot-scope="text">
{{ text.windowName ? text.windowName : "--" }} {{ text.windowName ? text.windowName : "--" }}
</template> </template>
...@@ -239,20 +246,24 @@ ...@@ -239,20 +246,24 @@
{{ text.createTime | dateFormat }} {{ text.createTime | dateFormat }}
</template> </template>
<!-- 最后登录时间 --> <!-- 最后登录时间 -->
<template slot="logintime" slot-scope="text"> <template slot="lastLoginTime" slot-scope="text">
<span v-if="text.logintime">{{ <span v-if="text.lastLoginTime">{{
text.logintime | dateFormat text.lastLoginTime | dateFormat
}}</span> }}</span>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<span slot="action" slot-scope="text"> <span slot="action" slot-scope="text">
<a-space> <a-space>
<a class="edit" type="primary" @click="editModal(text)">编辑</a> <span class="primary pointer" @click="editModal(text)"
<a class="edit-pwd" type="primary" @click="changePwd(text)" >编辑</span
>修改密码</a >
<span class="primary pointer" @click="changePwd(text)"
>修改密码</span
>
<span class="delete pointer" @click="handleDel(text.id)"
>删除</span
> >
<a class="delet" @click="handleDel(text.id)">删除</a>
</a-space> </a-space>
</span> </span>
</a-table> </a-table>
...@@ -288,6 +299,8 @@ import EditPwd from "./components/EditPwd"; ...@@ -288,6 +299,8 @@ import EditPwd from "./components/EditPwd";
import EditPersonel from "./components/EditPersonel.vue"; import EditPersonel from "./components/EditPersonel.vue";
import local from "@/utils/local"; import local from "@/utils/local";
import { Empty } from "ant-design-vue"; import { Empty } from "ant-design-vue";
import { pageSizeOptions } from "@/config/pageConfig.js";
import { mapGetters } from "vuex";
// import axios from "axios"; // import axios from "axios";
import { import {
getDeptList, getDeptList,
...@@ -356,13 +369,13 @@ const columns = [ ...@@ -356,13 +369,13 @@ const columns = [
{ {
title: "最后登录时间", title: "最后登录时间",
scopedSlots: { scopedSlots: {
customRender: "logintime", customRender: "lastLoginTime",
}, },
}, },
{ {
title: "操作", title: "操作",
width: "160px", width: "170px",
scopedSlots: { scopedSlots: {
customRender: "action", customRender: "action",
}, },
...@@ -376,9 +389,6 @@ export default { ...@@ -376,9 +389,6 @@ export default {
}, },
data() { data() {
return { return {
headers: {
Authorization: local.getLocal("token"),
},
spinning: false, spinning: false,
columns, columns,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
...@@ -393,17 +403,21 @@ export default { ...@@ -393,17 +403,21 @@ export default {
WorkmanData: [], // 工作人员列表 WorkmanData: [], // 工作人员列表
deptSearch: "", //部门搜索 deptSearch: "", //部门搜索
windowSearch: "", // 窗口搜索 windowSearch: "", // 窗口搜索
searchVal: "",
visibleAll: false, visibleAll: false,
page: 1, page: 1,
size: 10, size: 10,
total: 0, total: 0,
pageSizeOptions: ["10", "30", "50", "100"], pageSizeOptions,
designationDict: {}, // 称号字典 designationDict: {}, // 称号字典
politicalDict: {}, // 政治面貌字典 politicalDict: {}, // 政治面貌字典
curDept: "", // 当前选中部门 curDept: "", // 当前选中部门
curWindow: "", // 当前选中窗口 curWindow: "", // 当前选中窗口
}; };
}, },
computed: {
...mapGetters("site", ["token"]),
},
created() { created() {
this.getDeptList(); this.getDeptList();
this.getWindowData(); this.getWindowData();
...@@ -424,6 +438,8 @@ export default { ...@@ -424,6 +438,8 @@ export default {
// 获取部门窗口 // 获取部门窗口
async getWindowData() { async getWindowData() {
let res = await getWindowList({ let res = await getWindowList({
page: 1,
size: -1,
siteId: this.siteId, siteId: this.siteId,
deptId: this.deptSearch, deptId: this.deptSearch,
}); });
...@@ -433,12 +449,19 @@ export default { ...@@ -433,12 +449,19 @@ export default {
// 获取工作人员列表 // 获取工作人员列表
async getWorkmanData(search = {}) { async getWorkmanData(search = {}) {
this.loading = true; this.loading = true;
let obj = {};
if (/^[\u4e00-\u9fa5]+$/.test(this.searchVal)) {
obj.name = `%${this.searchVal}%`;
} else if (/^[a-zA-z0-9]+$/.test(this.searchVal)) {
obj.number = `%${this.searchVal}%`;
}
let res = await getWorkmanList({ let res = await getWorkmanList({
siteId: this.siteId, siteId: this.siteId,
page: this.page, page: this.page,
size: this.size, size: this.size,
deptId: this.deptSearch, deptId: this.deptSearch,
windowId: this.windowSearch, windowId: this.windowSearch,
...obj,
...search, ...search,
}); });
let { data, pageInfo, dict } = res.data.data; let { data, pageInfo, dict } = res.data.data;
...@@ -504,15 +527,16 @@ export default { ...@@ -504,15 +527,16 @@ export default {
}); });
}, },
// 搜索 // 搜索
onSearch(val) { onSearch() {
this.page = 1; this.page = 1;
if (/^[\u4e00-\u9fa5]+$/.test(val)) { this.getWorkmanData();
this.getWorkmanData({ name: `%${val}%` }); // if (/^[\u4e00-\u9fa5]+$/.test(val)) {
} else if (/^[a-zA-z0-9]+$/.test(val)) { // this.getWorkmanData({ name: `%${val}%` });
this.getWorkmanData({ number: `%${val}%` }); // } else if (/^[a-zA-z0-9]+$/.test(val)) {
} else { // this.getWorkmanData({ number: `%${val}%` });
this.getWorkmanData(); // } else {
} // this.getWorkmanData();
// }
}, },
// 新增工作人员 // 新增工作人员
showModal() { showModal() {
...@@ -547,7 +571,7 @@ export default { ...@@ -547,7 +571,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: "application/octet-stream", type: "application/octet-stream",
}); });
let fileName = "批量导入工作人员模"; let fileName = "批量导入工作人员模";
const link = document.createElement("a"); const link = document.createElement("a");
link.href = URL.createObjectURL(blob); link.href = URL.createObjectURL(blob);
...@@ -618,12 +642,6 @@ export default { ...@@ -618,12 +642,6 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.skins_btn_1 {
width: 100px;
height: 36px;
background-color: rgba(5, 149, 253, 1);
border-color: rgba(5, 149, 253, 1);
}
.website { .website {
.right { .right {
width: 100%; width: 100%;
...@@ -632,7 +650,7 @@ export default { ...@@ -632,7 +650,7 @@ export default {
color: #333; color: #333;
padding-left: 20px; padding-left: 20px;
.person_message { .person_message {
font-weight: 600; font-size: 18px;
} }
} }
...@@ -657,44 +675,12 @@ export default { ...@@ -657,44 +675,12 @@ export default {
margin-bottom: 6px; margin-bottom: 6px;
} }
} }
.btn_add {
width: 80px;
height: 36px;
background-color: rgba(5, 149, 253, 1);
font-size: 13px;
text-align: center;
line-height: normal;
text-transform: none;
border: none;
margin-top: 15px;
}
.btn_to {
width: 80px;
height: 36px;
background-color: rgba(5, 149, 253, 1);
font-size: 13px;
text-align: center;
line-height: normal;
text-transform: none;
margin-left: 12px;
border: none;
margin-top: 20px;
margin-bottom: 20px;
}
.pht { .pht {
width: 56px; width: 56px;
height: 74px; height: 74px;
object-fit: cover; object-fit: cover;
} }
.edit {
color: #03d76f;
}
.edit-pwd {
color: #1890ff;
}
.delet {
color: red;
}
div.person_gruop1 { div.person_gruop1 {
display: inline; display: inline;
flex: 1; flex: 1;
...@@ -714,14 +700,6 @@ export default { ...@@ -714,14 +700,6 @@ export default {
height: 36px; height: 36px;
margin-right: 10px; margin-right: 10px;
} }
.btn_search {
width: 72px;
height: 36px;
border: 0;
background: inherit;
// margin-b: 10px;
background-color: rgba(5, 149, 253, 1);
}
.on { .on {
margin: 10px 0px; margin: 10px 0px;
...@@ -778,8 +756,8 @@ export default { ...@@ -778,8 +756,8 @@ export default {
border-radius: 0px 4px 4px 0px; border-radius: 0px 4px 4px 0px;
} }
.active { .active {
background-color: #1890ff; background: linear-gradient(90deg, #5ab6ff, #2e9aff);
border-color: #1890ff; border-color: transparent;
color: #fff; color: #fff;
&:hover { &:hover {
color: #fff; color: #fff;
......
<template> <template>
<exception-page home-route="/demo" :style="`min-height: ${minHeight}`" type="404" /> <exception-page
home-route="/website"
:style="`min-height: ${minHeight}`"
type="404"
/>
</template> </template>
<script> <script>
import ExceptionPage from '@/components/exception/ExceptionPage' import ExceptionPage from "@/components/exception/ExceptionPage";
import {mapState} from 'vuex' import { mapState } from "vuex";
export default { export default {
name: 'Exp404', name: "Exp404",
components: {ExceptionPage}, components: { ExceptionPage },
computed: { computed: {
...mapState('setting', ['pageMinHeight']), ...mapState("setting", ["pageMinHeight"]),
minHeight() { minHeight() {
return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh' return this.pageMinHeight ? this.pageMinHeight + "px" : "100vh";
} },
} },
} };
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
......
...@@ -264,6 +264,14 @@ const options = { ...@@ -264,6 +264,14 @@ const options = {
invisible: true, invisible: true,
}, },
}, },
{
path: "appTheme",
component: () =>
import("@/pages/basicset/appmarket/components/AppTheme"),
meta: {
invisible: true,
},
},
], ],
}, },
{ {
......
...@@ -2,7 +2,8 @@ import { hasAuthority } from "@/utils/authority-utils"; ...@@ -2,7 +2,8 @@ import { hasAuthority } from "@/utils/authority-utils";
// import {loginIgnore} from '@/router/index' // import {loginIgnore} from '@/router/index'
// import {checkAuthorization} from '@/utils/request' // import {checkAuthorization} from '@/utils/request'
import NProgress from "nprogress"; import NProgress from "nprogress";
import local from "@/utils/local"; // import local from "@/utils/local";
import store from "@/store/index";
NProgress.configure({ showSpinner: false }); NProgress.configure({ showSpinner: false });
...@@ -28,7 +29,8 @@ const progressStart = (to, from, next) => { ...@@ -28,7 +29,8 @@ const progressStart = (to, from, next) => {
* @param options * @param options
*/ */
const loginGuard = (to, from, next) => { 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) { if (token) {
next(); next();
} else { } else {
......
...@@ -158,7 +158,8 @@ module.exports = { ...@@ -158,7 +158,8 @@ module.exports = {
info: `${BASE_URL}/base/window/info`, info: `${BASE_URL}/base/window/info`,
save: `${BASE_URL}/base/window/save`, save: `${BASE_URL}/base/window/save`,
delete: `${BASE_URL}/base/window/delete`, delete: `${BASE_URL}/base/window/delete`,
exportExcel: `${BASE_URL}/base/window/exportExcel`, template: `${BASE_URL}/base/window/downloadTemplate`, // 导入模板下载
importData: `${BASE_URL}/base/window/importData`,
subList: `${BASE_URL}/base/window/subHalllist`, // 查询当前站点所有没有在大厅配置的过的窗口 subList: `${BASE_URL}/base/window/subHalllist`, // 查询当前站点所有没有在大厅配置的过的窗口
}, },
// 工作人员 // 工作人员
...@@ -317,6 +318,13 @@ module.exports = { ...@@ -317,6 +318,13 @@ module.exports = {
used: `${BASE_URL}/base/app/version/used`, used: `${BASE_URL}/base/app/version/used`,
preview: `${BASE_URL}/base/app/version/preview`, preview: `${BASE_URL}/base/app/version/preview`,
}, },
// 应用分类
Appcategory: {
list: `${BASE_URL}/base/app/category/list`,
info: `${BASE_URL}/base/app/category/info`,
save: `${BASE_URL}/base/app/category/save`,
delete: `${BASE_URL}/base/app/category/delete`,
},
// 系统设置 // 系统设置
system: { system: {
// 系统日志 // 系统日志
......
...@@ -51,6 +51,14 @@ export async function delWindow(data) { ...@@ -51,6 +51,14 @@ export async function delWindow(data) {
export async function getSubHalllist(data) { export async function getSubHalllist(data) {
return request(window.subList, METHOD.POST, data); return request(window.subList, METHOD.POST, data);
} }
// 批量导入窗口模板下载
export async function getWindowTemplate(data, config) {
return request(window.template, METHOD.POST, data, config);
}
// 批量导入窗口
export async function importWindowData(data) {
return request(window.importData, METHOD.POST, data);
}
/** /**
* 窗口业务 * 窗口业务
......
...@@ -6,6 +6,7 @@ import { ...@@ -6,6 +6,7 @@ import {
version, version,
device, device,
blackapp, blackapp,
Appcategory,
} from "@/services/basicsetApi"; } from "@/services/basicsetApi";
import { request, METHOD } from "@/utils/request"; import { request, METHOD } from "@/utils/request";
...@@ -164,3 +165,22 @@ export async function saveBlackApp(data) { ...@@ -164,3 +165,22 @@ export async function saveBlackApp(data) {
export async function deleteBlackapp(data) { export async function deleteBlackapp(data) {
return request(blackapp.delete, METHOD.GET, data); return request(blackapp.delete, METHOD.GET, data);
} }
/**
* 应用分类
*/
// 获取分类列表
export async function getCategoryList(data) {
return request(Appcategory.list, METHOD.POST, data);
}
// 保存分类列表
export async function saveCategory(data) {
return request(Appcategory.save, METHOD.POST, data);
}
// 删除分类列表
export async function deleteCategory(data) {
return request(Appcategory.delete, METHOD.GET, data);
}
...@@ -2,6 +2,7 @@ export default { ...@@ -2,6 +2,7 @@ export default {
namespaced: true, namespaced: true,
state: { state: {
siteId: "", // 站点id siteId: "", // 站点id
siteName: "", // 站点名称
imageResolution: [], // 皮肤设置分辨率 imageResolution: [], // 皮肤设置分辨率
SiteTree: [], // 站点树 SiteTree: [], // 站点树
appTemplate: [], // 应用模板属性 appTemplate: [], // 应用模板属性
...@@ -32,8 +33,20 @@ export default { ...@@ -32,8 +33,20 @@ export default {
appDict(state) { appDict(state) {
return state.appDict; return state.appDict;
}, },
siteId(state) {
return state.siteId;
},
}, },
mutations: { mutations: {
SET_siteName(state, siteName) {
state.siteName = siteName;
},
SET_userInfo(state, userInfo) {
state.userInfo = userInfo;
},
SET_token(state, token) {
state.token = token;
},
SET_curProduct(state, curProduct) { SET_curProduct(state, curProduct) {
state.curProduct = curProduct; state.curProduct = curProduct;
}, },
......
// import Cookie from 'js-cookie' // import Cookie from 'js-cookie'
import local from "@/utils/local"; // import local from "@/utils/local";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import store from "@/store/index";
// 401拦截 // 401拦截
// const resp401 = { // const resp401 = {
// /** // /**
...@@ -71,7 +71,8 @@ const reqCommon = { ...@@ -71,7 +71,8 @@ const reqCommon = {
*/ */
onFulfilled(config) { onFulfilled(config) {
// 携带token // 携带token
let token = local.getLocal("token"); // let token = local.getLocal("token");
let token = store.getters["site/token"];
if (token) { if (token) {
config.headers.Authorization = token; config.headers.Authorization = token;
} }
......
...@@ -162,3 +162,25 @@ PRIMARY KEY (`id`) ...@@ -162,3 +162,25 @@ PRIMARY KEY (`id`)
ALTER TABLE mortals_sys_site ADD COLUMN `onlineTake` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER workday7; ALTER TABLE mortals_sys_site ADD COLUMN `onlineTake` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER workday7;
ALTER TABLE mortals_sys_site ADD COLUMN `appointment` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER onlineTake; ALTER TABLE mortals_sys_site ADD COLUMN `appointment` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER onlineTake;
ALTER TABLE mortals_sys_site ADD COLUMN `gowMap` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER appointment; ALTER TABLE mortals_sys_site ADD COLUMN `gowMap` tinyint(2) DEFAULT '1' COMMENT '在线取号(0.否,1.是)' AFTER appointment;
-- ----------------------------
2023-6-15
-- ----------------------------
-- ----------------------------
-- 自助终端应用分类表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_sys_app_category`;
CREATE TABLE mortals_sys_app_category(
`id` bigint(20) AUTO_INCREMENT COMMENT '主键ID,主键,自增长',
`siteId` bigint(20) COMMENT '站点Id',
`siteName` varchar(256) COMMENT '站点名称',
`categoryCode` varchar(256) COMMENT '分类编码',
`categoryName` varchar(256) COMMENT '分类名称',
`sort` int(4) DEFAULT '0' COMMENT '排序字段',
`createTime` datetime COMMENT '创建时间',
`createUserId` bigint(20) COMMENT '创建用户',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='自助终端应用分类';
This diff is collapsed.
...@@ -296,7 +296,60 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -296,7 +296,60 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
@Override @Override
public void updateUserList(List<UserPdu> list) { public void updateUserList(List<UserPdu> list) {
//更新本地用户信息,并且更新用户站点树 //更新本地用户信息,并且更新用户站点树 //todo 将站点分组后 分组同步更新
List<String> loginNames = list.parallelStream().map(user -> user.getLoginName()).collect(Collectors.toList());
UserQuery userQuery = new UserQuery();
userQuery.setLoginNameList(loginNames);
List<UserEntity> existUsers = this.find(userQuery);
Map<String, UserEntity> existUserMap = existUsers.parallelStream().collect(Collectors.toMap(x -> x.getLoginName(), y -> y, (o, n) -> n));
//分组查找存在的与不存在的用户
Map<Boolean, List<UserPdu>> collect = list.parallelStream().collect(Collectors.partitioningBy(x -> existUserMap.containsKey(x.getLoginName())));
List<UserPdu> userPdusUpdate = collect.get(true);//更新
List<UserEntity> userEntityUpdate = new ArrayList<>();
List<UserPdu> userPdusSave = collect.get(false);//新增
List<UserEntity> userEntitySave = new ArrayList<>();
for (UserPdu user : userPdusSave) {
//新增
UserEntity entity = new UserEntity();
entity.initAttrValue();
BeanUtils.copyProperties(user, entity, BeanUtil.getNullPropertyNames(user));
this.save(entity);
if (!ObjectUtils.isEmpty(entity.getSiteIds())) {
userEntitySave.add(entity);
}
}
for (UserPdu user : userPdusUpdate) {
//更新
UserEntity userEntity = new UserEntity();
BeanUtils.copyProperties(user, userEntity, new String[]{"loginPwd", "loginName", "userType", "status", "lastLoginTime", "lastLoginAddress"});
userEntity.setId(existUserMap.get(user.getLoginName()).getId());
this.updateWidthDao(userEntity);
if (!ObjectUtils.isEmpty(userEntity.getSiteIds())) {
userEntitySave.add(userEntity);
}
}
//分组刷新节点 新增
Map<String, List<UserEntity>> saveSitesCollect = userEntitySave.stream().collect(Collectors.groupingBy(x -> x.getSiteIds()));
// Map<String, List<UserEntity>> updateSitesCollect = userEntityUpdate.stream().collect(Collectors.groupingBy(x -> x.getSiteIds()));
saveSitesCollect.entrySet().stream().forEach(item -> {
String siteIds = item.getKey();
List<UserEntity> userEntities = item.getValue();
if (!ObjectUtils.isEmpty(userEntities)) {
Context context = new Context();
context.setUser(userEntities.get(0));
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context, userEntities));
}
});
/*
//如果用户未有所属站点 则不更新
for (UserPdu user : list) { for (UserPdu user : list) {
UserEntity tempUser = this.selectOne(new UserQuery().loginName(user.getLoginName())); UserEntity tempUser = this.selectOne(new UserQuery().loginName(user.getLoginName()));
if (ObjectUtils.isEmpty(tempUser)) { if (ObjectUtils.isEmpty(tempUser)) {
...@@ -305,20 +358,24 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -305,20 +358,24 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
entity.initAttrValue(); entity.initAttrValue();
BeanUtils.copyProperties(user, entity, BeanUtil.getNullPropertyNames(user)); BeanUtils.copyProperties(user, entity, BeanUtil.getNullPropertyNames(user));
this.save(entity); this.save(entity);
Context context = new Context(); if (!ObjectUtils.isEmpty(entity.getSiteIds())) {
context.setUser(entity); Context context = new Context();
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context)); context.setUser(entity);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
}
} else { } else {
//更新 //更新
UserEntity userEntity = new UserEntity(); UserEntity userEntity = new UserEntity();
BeanUtils.copyProperties(user, userEntity, new String[]{"loginPwd","loginName", "userType", "status", "lastLoginTime", "lastLoginAddress"}); BeanUtils.copyProperties(user, userEntity, new String[]{"loginPwd", "loginName", "userType", "status", "lastLoginTime", "lastLoginAddress"});
userEntity.setId(tempUser.getId()); userEntity.setId(tempUser.getId());
this.updateWidthDao(userEntity); this.updateWidthDao(userEntity);
Context context = new Context(); if (!ObjectUtils.isEmpty(userEntity.getSiteIds())) {
context.setUser(userEntity); Context context = new Context();
ThreadPool.getInstance().execute(new SyncTreeSiteThread( context)); context.setUser(userEntity);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
}
} }
} }*/
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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