Browse Source

完善

wangqin
hui 1 year ago
parent
commit
8d3f86a6c3
  1. 4
      ruoyi-ui/package.json
  2. 39
      ruoyi-ui/src/common/scrollbar.js
  3. 2
      ruoyi-ui/src/views/JiHeExpressway/components/Dialog/index.vue
  4. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue
  5. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/BoardInfoEditor.vue
  6. 104
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
  7. 3
      ruoyi-ui/vue.config.js

4
ruoyi-ui/package.json

@ -98,9 +98,11 @@
"vue-resource": "^1.5.3",
"vue-router": "3.4.9",
"vue-seamless-scroll": "^1.1.23",
"vue-slick-carousel": "^1.0.6",
"vue-splitpane": "1.0.4",
"vue-video-player": "^5.0.2",
"vuedraggable": "2.24.3",
"vuescroll": "^4.18.1",
"vuex": "3.6.0"
},
"devDependencies": {
@ -130,7 +132,7 @@
"plop": "2.3.0",
"runjs": "4.4.2",
"sass": "^1.39.0",
"sass-loader": "10.1.1",
"sass-loader": "^10.5.2",
"script-ext-html-webpack-plugin": "2.1.5",
"serve-static": "1.13.2",
"snapsvg": "^0.5.1",

39
ruoyi-ui/src/common/scrollbar.js

@ -0,0 +1,39 @@
export default {
vuescroll: {
mode: "native", //模式:pc natice 移动端是slice
sizeStrategy: 'percent', //父元素是否是固定的是就percent 不是就是number 填一个数值
detectResize: true, //内容是否根据页面调整
},
scrollPanel: {
initialScrollY: false, //初始化距离顶部的位置
initialScrollX: false, //初始化距离左侧的位置
scrollingX: false, // 是否开启横向滚动
scrollingY: true, //是否开启竖向滚动
speed: 300, //多长时间内完成一次滚动。 数值越小滚动的速度越快。
easing: 'easeInQuad', //默认动画
verticalNativeBarPos: "right",
maxHeight: undefined, //这是滚动条最大高度,内容高度小于 maxHeight 时高度自适应,超出的话出现滚动条。
maxWidth: undefined, //这是滚动条最大宽度,内容宽度小于 maxWidth 时高度自适应,超出的话出现滚动条。
},
rail: {
background: "#000000", //轨道的背景色。
opacity: 0.4, //轨道的透明度。 0是透明,1是不透明
size: "8px", //轨道的尺寸。
specifyBorderRadius: false, //是否指定轨道的 borderRadius, 如果不那么将会自动设置。
gutterOfEnds: null,
gutterOfSide: "0px", //距离容器的距离
keepShow: false, //是否即使 bar 不存在的情况下也保持显示。
},
bar: {
showDelay: 500, //在鼠标离开容器后多长时间隐藏滚动条。
onlyShowBarOnScroll: false, //是否只在滚动时显示 bar。
keepShow: true, //滚动条是否保持显示。
background: "#007799", //滚动条背景色。
opacity: 1, //滚动条透明度。
hoverStyle: false,
specifyBorderRadius: false, //是否指定滚动条的 borderRadius, 如果不那么和轨道的保持一致。
minSize: false, //为 bar 设置一个最小尺寸, 从 0 到 1. 如 0.3, 代表 30%.
size: "8px", //bar 的尺寸。
disable: false, //是否禁用滚动条。
}
};

2
ruoyi-ui/src/views/JiHeExpressway/components/Dialog/index.vue

@ -95,7 +95,7 @@ export default {
position: absolute;
background: rgba(78, 174, 204, .6);
height: 2px;
width: calc(sqrt(pow(var(--clip-width-num), 2) * 2) * 1px);
// width: calc(sqrt(pow(var(--clip-width-num), 2) * 2) * 1px);
right: calc(var(--clip-width) / -2);
top: -2px;
transform-origin: top left;

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue

@ -43,7 +43,7 @@
<script>
import Card from "@screen/components/Card2/Card.vue";;
import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue';
import RadioGroup from '@screen/components/RadioGroup/index.vue';
import RadioGroup from '@screen/components/FormConfig/components/RadioGroup/index.vue';
import TimeLine1 from "@screen/components/TimeLine/TimeLine1/index";
import TimeLine2 from "@screen/components/TimeLine/TimeLine2/index";

4
ruoyi-ui/src/views/JiHeExpressway/pages/service/board/BoardInfoEditor.vue

@ -1,9 +1,9 @@
<template>
<el-dialog :title="mode=='add'?'新增':'编辑'" :visible.sync="dialogVisible" width="43%" append-to-body :close-on-click-modal="false">
<div style="color:#fff">
<!-- <div style="color:#fff">
<p>类型:{{type}} 增删改类型:{{mode}}</p>
<p>模板id:{{ tpl }}</p>
</div>
</div> -->
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>

104
ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue

@ -1,21 +1,13 @@
<template>
<div class="container infoBoardBox" style="height:94vh;;background-color: #11232a;">
<div style="
height: 100%;
margin-left: 0px;
margin-right: 0px;
display: flex;
justify-content: space-between;
">
<div style="width: 20%" class="verticalBox">
<div style="width:100%;height:100%;padding:1vh 0.2vw;">
<div style="width:100%;height:100%;background-color:#112d3b;padding:0 0 1vh 0;">
<div class="bigTitle qbbBigTitle">
<div class="infoBoardBox">
<div class="infoBoardCon">
<div style="width: 20%" class="part partLeft">
<div class="partTitle boardListTitle">
<img class="qbbBigDot" src="@/assets/screen/xtb/qbbdot.png" alt="">
<div>情报板列表</div>
<img class="qbbBigDotBa" src="@/assets/screen/xtb/qbba.png" alt="">
</div>
<el-form ref="form" style="padding:0 0.5vw;" :model="form">
<el-form ref="form" :model="form" class="partCon">
<el-form-item style="margin-bottom: 12px;">
<el-select v-model="form.selectedDirection" size="medium" placeholder="请选择方向" style="overflow: hidden;width: 100%;">
<el-option v-for="item in boardDirectionList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" @click.native="____changeDirection(item.dictValue)" />
@ -45,13 +37,9 @@
</el-form-item>
</el-form>
</div>
</div>
</div>
<div style="width: 37.8%" class="verticalBox verticalBoxBorderLeft">
<div style="width:100%;height:100%;padding:1vh 0.2vw;">
<div style="width:100%;height:100%;background-color:#112d3b;">
<div style="width: 37.8%" class="part partMiddle">
<div class="bigTitle awaitBigTitle">
<div class="partTitle partDeviceTempateTitle">
<div>
<div style="display: flex;justify-content: start !important;align-items: center;">
<img class="qbbBigDot" src="@/assets/screen/xtb/qbbdot.png" alt="">
@ -66,7 +54,7 @@
<el-button type="primary" @click="publishInfo" :disabled="contentList.length == 0">发布信息</el-button>
</div>
</div>
<div class="contentBox">
<div class="partCon">
<el-table :data="contentList" row-key="ID" v-loading="loading" style="height: 100%;padding: 0 1vh; background-color: #112d3b;overflow-y: scroll;" :key="toggleIndex">
<el-table-column width="545">
<template slot-scope="scope">
@ -117,15 +105,11 @@
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
<!-- 信息模板 -->
<div style=" width: 42.2%" class="verticalBox verticalBoxBorderLeft">
<div style="width:100%;height:100%;padding:1vh 0.2vw;">
<div style="width:100%;height:100%;background-color:#112d3b">
<div class="bigTitle awaitBigTitle">
<div style=" width: 42.2%" class="part partRight">
<div class="partTitle partDeviceTempateTitle">
<div>
<div style="display: flex;justify-content: start !important;align-items: center;">
<img class="qbbBigDot" src="@/assets/screen/xtb/qbbdot.png" alt="">
@ -139,11 +123,12 @@
<el-button type="primary" @click="____onAddTemplate">添加模板</el-button>
</div>
</div>
<div class="templateBox">
<div class="partCon">
<vuescroll :ops="scrollOptions" class="templateBox">
<div v-for="(item,index) in templateAvailable" :key="item.dictValue">
<!-- 原来是<el-collapse v-model="activeNames"> -->
<h3>{{ item.dictLabel }}</h3>
<div v-for="(itm, indx) in item.list" :key="indx" class="infoItem">
<div v-for="(itm, indx) in item.list" :key="indx" class="tplItem">
<!-- 模板内容 -->
<BoardPreview class="boardPreview" :boardWH="selectedSize" :tpl="itm"></BoardPreview>
<!-- <div class="infoPreview">
@ -165,8 +150,7 @@
</div>
</div>
</div>
</div>
</div>
</vuescroll>
</div>
</div>
</div>
@ -202,6 +186,9 @@ import { getBoardList } from '@/api/board/board'
import { getTemplateList } from '@/api/board/template'
import BoardPreview from './BoardPreview'
import vuescroll from 'vuescroll'
import scrollOptions from '@/common/scrollbar.js'
//
export const deepClone = data => {
//
@ -232,7 +219,8 @@ export default {
components: {
BoardInfoEditor,
editInfo,
BoardPreview
BoardPreview,
vuescroll
},
dicts: ['iot_board_direction'],
@ -285,7 +273,8 @@ export default {
type:"",
visible:false,
tpl:{}
}
},
scrollOptions
}
},
watch: {
@ -372,7 +361,7 @@ computed:{
rowDrop() {
if (JSON.parse(JSON.stringify(this.contentList)).length > 0) {
// DOM
const tbody = document.querySelector('.contentBox .el-table__body-wrapper tbody')
const tbody = document.querySelector('.partCon .el-table__body-wrapper tbody')
const _this = this
Sortable.create(tbody, {
//
@ -1060,28 +1049,35 @@ computed:{
}
</script>
<style lang="scss" scoped>
.container {
.verticalBox {
.infoBoardBox {
.infoBoardCon{
width: 100%;
height: 100%;
padding: 10px 5px;
.bigTitle {
display: flex; flex-direction: row;
align-items: stretch;
padding: 20px;
.part {
background-color: #133242;
margin-right: 10px;
display: flex; flex-direction: column;
&.partRight{
margin-right: 0;
}
.partTitle {
padding: 0px 0;
/* // border-bottom: 1px solid #05afe3; */
margin-bottom: 10px;
display: flex;
justify-content: space-between;
height: 60px;
font-size: 0.8vw;
font-size: 18px;
align-items: center;
}
.contentBox {
width: 100%;
height: calc(100% - 46px);
padding: 0 0 1vh 0;
/* // overflow: auto; */
.partCon {
flex: 1;
height: 0;
padding:10px;
.con {
/* // border: 1px solid #05afe3; */
height: 75px;
@ -1102,13 +1098,10 @@ computed:{
}
.templateBox {
width: 100%;
height: calc(100% - 46px);
padding: 0 0 1vh 0;
.infoItem {
width: 100%; height: 100%;
.tplItem {
margin-right: 14px;
display: flex;
box-sizing: content-box;
align-items: stretch;
margin-bottom: 10px;
@ -1185,6 +1178,7 @@ computed:{
}
}
}
}
.checkbox {
label {
@ -1242,7 +1236,7 @@ computed:{
color: #05afe3 !important;
}
.qbbBigTitle {
.boardListTitle {
// margin-top: 1vh;
color: #fff;
height: 35px !important;
@ -1260,10 +1254,10 @@ computed:{
height: 22px;
margin: 0 0.5vw 0 0.5vw;
}
.awaitBigTitle {
.partDeviceTempateTitle {
width: 100%;
color: #fff;
padding-right: 6vw !important;
padding-right: 110px !important;
height: 35px !important;
background-image: url('~@/assets/screen/xtb/qbbti.png');
background-size: 100% 100%;

3
ruoyi-ui/vue.config.js

@ -41,8 +41,9 @@ module.exports = {
// target: `http://192.168.0.194:8080`,
// target: `http://10.0.81.201:8080`,
// target: `http://10.168.73.36:8080`, // 周乐
target: `http://10.168.77.209:8080`, // 刘朋
// target: `http://10.168.77.209:8080`, // 刘朋
// target: `http://10.168.66.196:8080`,
target: `http://10.168.56.206:8087`, //孟
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",

Loading…
Cancel
Save