Browse Source

Merge branch 'develop' of http://39.106.31.193:9211/mengff/jihe-hs into develop

wangqin
qingzhengli 12 months ago
parent
commit
534f3ec966
  1. 19
      ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue
  2. 176
      ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/UserArea.vue
  3. 13
      ruoyi-ui/src/views/JiHeExpressway/components/InputSearch/index.vue
  4. 2
      ruoyi-ui/src/views/JiHeExpressway/components/Pagination.vue
  5. 500
      ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue
  6. 44
      ruoyi-ui/src/views/JiHeExpressway/index.vue
  7. 139
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/InfoBoard/index.vue
  8. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue
  9. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/EventDetailDialog/index.vue
  10. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue
  11. 3
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/FormEvent/PresetFormItems.js
  12. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/FormEvent/index.vue
  13. 27
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/data.js
  14. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue
  15. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/StatsDialogVisible/index.vue
  16. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js
  17. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js
  18. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts2.js
  19. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts3.js
  20. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/datav/roadNet/index.vue
  21. 42
      ruoyi-ui/src/views/JiHeExpressway/pages/datav/roadNet/sensors.vue
  22. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dailyDisposal/assets/charts.js
  23. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dailyDisposal/index.vue
  24. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dayTotal/assets/charts.js
  25. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/assets/charts3.js
  26. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue
  27. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/assets/charts.js
  28. 17
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/index.vue
  29. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js
  30. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railwayDay/assets/charts.js
  31. 9
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/typeAnalysis/assets/charts.js
  32. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/typeAnalysis/index.vue
  33. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/assets/charts3.js
  34. 9
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/composeFeatures/assets/charts.js
  35. 9
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/crowding/assets/charts.js
  36. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/saturationMax/assets/charts.js
  37. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/assets/charts.js
  38. 47
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue
  39. 37
      ruoyi-ui/src/views/JiHeExpressway/pages/service/PublishingChannelManagement/index.vue
  40. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
  41. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/index.vue
  42. 4
      ruoyi-ui/vue.config.js

19
ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue

@ -15,6 +15,11 @@ export default {
defaultHeight: {
type: Number,
default: () => 1080
},
headerHeight: {
type: Number,
default: () => 68
}
},
provide() {
@ -33,10 +38,10 @@ export default {
computed: {
transformStyle() {
const obj = {};
obj["transform"] = `scaleX(${this.scale.scaleX}) scaleY(${this.scale.scaleY})`;
obj["width"] = this.defaultWidth + "px";
obj["height"] = this.defaultHeight + "px";
obj["height"] = this.defaultHeight - this.headerHeight + "px";
obj["top"] = this.headerHeight + "px";
// obj.top = `calc(50% - ${(this.defaultHeight / 2) * this.scaleY}px)`;
// obj.left = `calc(50% - ${(this.defaultWidth / 2) * this.scaleX}px)`;
@ -46,12 +51,16 @@ export default {
return this.scale
}
},
watch:{
headerHeight(){
}
},
methods: {
initScale() {
let winW = window.innerWidth;
let winH = window.innerHeight;
let winH = window.innerHeight - this.headerHeight;
this.setScale(this.scale.scaleX = winW / this.defaultWidth, this.scale.scaleY = winH / this.defaultHeight)
this.setScale(this.scale.scaleX = winW / this.defaultWidth, this.scale.scaleY = winH / (this.defaultHeight - this.headerHeight))
},
setScale(scaleX, scaleY) {
const cssGlobalVariable = [
@ -141,7 +150,7 @@ body {
<style lang="scss" scoped>
.Adaptation {
transition: all 0.15s linear;
position: absolute;
position: fixed;
transform-origin: 0 0;
}
</style>

176
ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/UserArea.vue

@ -3,8 +3,15 @@
<div class="opCon">
<el-dropdown class="userBox">
<span class="user">
<img class="icon head" src="@/assets/jihe/images/user/author.png" alt="">
<p class="title"><span class="txt">admin</span><i class="menuIcon el-icon-arrow-down el-icon--right"></i></p>
<img
class="icon head"
src="@/assets/jihe/images/user/author.png"
alt=""
/>
<p class="title">
<span class="txt">admin</span
><i class="menuIcon el-icon-arrow-down el-icon--right"></i>
</p>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
@ -14,22 +21,26 @@
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="config"><img class="icon" src="@/assets/jihe/images/user/set.png" alt=""></div>
<div class="logout" @click="logout"><img class="icon" src="@/assets/jihe/images/user/out.png" alt=""></div>
<div class="config">
<img class="icon" src="@/assets/jihe/images/user/set.png" alt="" />
</div>
<div class="logout" @click="logout">
<img class="icon" src="@/assets/jihe/images/user/out.png" alt="" />
</div>
</template>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import { mapGetters } from "vuex";
import Breadcrumb from "@/components/Breadcrumb";
import Hamburger from "@/components/Hamburger";
import Screenfull from "@/components/Screenfull";
import SizeSelect from "@/components/SizeSelect";
import Search from "@/components/HeaderSearch";
import RuoYiGit from "@/components/RuoYi/Git";
// import BigScreen from '@/components/bigScreen'
import RuoYiDoc from '@/components/RuoYi/Doc'
import RuoYiDoc from "@/components/RuoYi/Doc";
export default {
data() {
return {
@ -37,17 +48,17 @@ export default {
warningList: [],
unReadWarningList: [],
warnTypes: [
{ value: 0, label: '遥测越限' },
{ value: 1, label: '遥信告警' },
{ value: 2, label: '通道告警' },
{ value: 3, label: '其他事项' }
{ value: 0, label: "遥测越限" },
{ value: 1, label: "遥信告警" },
{ value: 2, label: "通道告警" },
{ value: 3, label: "其他事项" },
],
dealStatuss: [
{ value: '', label: '全部' },
{ value: 0, label: '未处理' },
{ value: 1, label: '处理中' },
{ value: 2, label: '已处理' },
{ value: 3, label: '已忽略' }
{ value: "", label: "全部" },
{ value: 0, label: "未处理" },
{ value: 1, label: "处理中" },
{ value: 2, label: "已处理" },
{ value: 3, label: "已忽略" },
],
//
total: 0,
@ -55,11 +66,11 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
deviceCode: ''
deviceCode: "",
},
visible: false,
recordForm: {}
}
recordForm: {},
};
},
components: {
Breadcrumb,
@ -69,72 +80,111 @@ export default {
Search,
RuoYiGit,
// BigScreen,
RuoYiDoc
RuoYiDoc,
},
computed: {
...mapGetters(['sidebar', 'avatar', 'device']),
...mapGetters(["sidebar", "avatar", "device"]),
setting: {
get() {
return this.$store.state.settings.showSettings
return this.$store.state.settings.showSettings;
},
set(val) {
this.$store.dispatch('settings/changeSetting', {
key: 'showSettings',
value: val
})
}
this.$store.dispatch("settings/changeSetting", {
key: "showSettings",
value: val,
});
},
},
topNav: {
get() {
return this.$store.state.settings.topNav
}
return this.$store.state.settings.topNav;
},
},
sideTheme: {
get() {
return this.$store.state.settings.sideTheme
}
}
return this.$store.state.settings.sideTheme;
},
},
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
this.$store.dispatch("app/toggleSideBar");
},
async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
this.$confirm("确定注销并退出系统吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$store.dispatch('LogOut').then(() => {
this.$store.dispatch("LogOut").then(() => {
//location.href = '/index';
location.reload()
location.reload();
});
})
})
.catch(() => {})
}
}
}
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.operations{
display: flex; justify-content: flex-end;
.opCon{ width:100%; max-width: 160px; display: flex; flex-direction: row; height: 16px; justify-content: space-between; align-items: center;
.icon{ height: 16px; width: 16px; object-fit: contain;}
.userBox{ flex: 1;
.user{ display: flex; flex-direction: row; align-items: center; cursor: pointer;
.head{ width: 16px; }
.title{flex: 1; width: 0; display: flex; flex-direction: row; color: #fff; display: flex;
.txt{ flex: 1; width: 0; text-align: center; white-space: nowrap; word-break: break-all; overflow: hidden; text-overflow: ellipsis;}
.menuIcon{ line-height: 16px;}
.operations {
display: flex;
justify-content: flex-end;
.opCon {
width: 100%;
max-width: 160px;
display: flex;
flex-direction: row;
height: 16px;
justify-content: space-between;
align-items: center;
.icon {
height: 16px;
width: 16px;
object-fit: contain;
cursor: pointer;
}
.userBox {
flex: 1;
.user {
display: flex;
flex-direction: row;
align-items: center;
cursor: pointer;
.head {
width: 16px;
}
.title {
flex: 1;
width: 0;
display: flex;
flex-direction: row;
color: #fff;
display: flex;
.txt {
flex: 1;
width: 0;
text-align: center;
white-space: nowrap;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
}
.menuIcon {
line-height: 16px;
}
}
}
}
& > * {
padding: 0 5px;
border-right: 1px solid rgba($color: #fff, $alpha: 0.1);
&:last-child {
border: none;
}
&>*{padding:0 5px; border-right: 1px solid rgba($color: #FFF, $alpha: 0.1);
&:last-child{border: none;}
}
}
}
</style>

13
ruoyi-ui/src/views/JiHeExpressway/components/InputSearch/index.vue

@ -133,11 +133,16 @@ export default {
this.width = this.$refs.ReferenceInputRef.getBoundingClientRect().width;
},
handleResetForm() {
this.visible = true;
this.$refs.FormConfigRef?.reset();
this.$refs.FormConfigRef.$refs.ElFormRef.resetFields();
this.$refs.PopoverRef.doClose();
// this.$refs.PopoverRef.doClose();
this.$emit("handleSearch", cloneDeep(this.$refs.FormConfigRef?.formData));
this.$emit(
"handleSearch",
cloneDeep(this.$refs.FormConfigRef?.formData),
"reset"
);
},
async handleSearch() {
if (this.types === "input") {
@ -156,12 +161,12 @@ export default {
}
let resultParams = { ...result, ...params };
this.$emit("handleSearch", resultParams);
this.$emit("handleSearch", resultParams, "search");
} else {
this.$refs.FormConfigRef.validate()
.then((result) => {
this.$refs.PopoverRef.doClose();
this.$emit("handleSearch", result);
this.$emit("handleSearch", result, "search");
})
.catch((err) => {
console.log("catch");

2
ruoyi-ui/src/views/JiHeExpressway/components/Pagination.vue

@ -85,7 +85,7 @@ export default {
}
.el-pagination__jump {
margin-left: -6px;
margin-left: 10px;
color: #fff;
font-size: 12px;

500
ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue

@ -1,5 +1,11 @@
<template>
<el-dialog :title="calcTitle" :visible.sync="dialogVisible" width="800px" append-to-body :close-on-click-modal="false">
<el-dialog
:title="calcTitle"
:visible.sync="dialogVisible"
width="800px"
append-to-body
:close-on-click-modal="false"
>
<!-- <div style="color:#fff">
<p>类型:{{type}} 增删改类型:{{mode}}</p>
<p>模板id:{{ tpl }}</p>
@ -9,15 +15,38 @@
<div class="dialogCloseButton"></div>
</div>
<el-card>
<BoardTplPreview style="width: 100%;" :boardWH="screenSize" :tpl="dataForm"></BoardTplPreview>
<BoardTplPreview
style="width: 100%"
:boardWH="screenSize"
:tpl="dataForm"
></BoardTplPreview>
</el-card>
<el-card>
<el-form :model="dataForm" :rules="dataRule" label-width="110px" ref="dataForm" size="mini">
<el-form
:model="dataForm"
:rules="dataRule"
label-width="110px"
ref="dataForm"
size="mini"
>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="所属类别" v-if="type == 'template' && mode!='toDevice'" prop="category">
<el-select v-model="dataForm.category" placeholder="请选择所属类别" size="mini">
<el-option v-for="item in templateCategoryList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
<el-form-item
label="所属类别"
v-if="type == 'template' && mode != 'toDevice'"
prop="category"
>
<el-select
v-model="dataForm.category"
placeholder="请选择所属类别"
size="mini"
>
<el-option
v-for="item in templateCategoryList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -33,16 +62,33 @@
</el-col>
</el-row>
<el-row :gutter="24" style="display: flex; flex-wrap: wrap;width:100%">
<el-row
:gutter="24"
style="display: flex; flex-wrap: wrap; width: 100%"
>
<el-col :span="24">
<el-form-item label="详细内容" prop="content">
<el-input type="textarea" :rows="6" placeholder="详细内容" v-model="dataForm.content"></el-input>
<el-input
type="textarea"
:rows="6"
placeholder="详细内容"
v-model="dataForm.content"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="字体颜色">
<el-select v-model="dataForm.fontColor" filterable placeholder="请选择">
<el-option v-for="item in colorList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
<el-select
v-model="dataForm.fontColor"
filterable
placeholder="请选择"
>
<el-option
v-for="item in colorList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -50,7 +96,12 @@
<el-col :span="8">
<el-form-item label="字体大小">
<el-select v-model="dataForm.fontSize" style="width: 100%">
<el-option v-for="item in fontSizeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
<el-option
v-for="item in fontSizeList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -58,7 +109,12 @@
<el-col :span="8">
<el-form-item label="字体类型">
<el-select v-model="dataForm.fontType" placeholder="请选择">
<el-option v-for="item in fontTypeList" :key="item.dictLabel" :label="item.dictLabel" :value="item.dictValue">
<el-option
v-for="item in fontTypeList"
:key="item.dictLabel"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -66,13 +122,18 @@
<el-col :span="8">
<el-form-item label="停留时间(秒)">
<el-input-number :min="0" v-model="dataForm.stopTime"/>
<el-input-number :min="0" v-model="dataForm.stopTime" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入屏方式">
<el-select v-model="dataForm.inScreenMode" placeholder="请选择">
<el-option v-for="item in inScreenModeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
<el-option
v-for="item in inScreenModeList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -80,7 +141,12 @@
<el-col :span="8">
<el-form-item label="屏幕尺寸">
<el-select v-model="screenSize" placeholder="请选择" disabled>
<el-option v-for="item in screenSizeOptions" :key="item.device_pixel" :label="item.device_pixel" :value="item.device_pixel">
<el-option
v-for="item in screenSizeOptions"
:key="item.device_pixel"
:label="item.device_pixel"
:value="item.device_pixel"
>
</el-option>
</el-select>
</el-form-item>
@ -90,66 +156,84 @@
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="onSubmit('dataForm')" v-loading="loading" style="background-color: #10aac2;color:#fff;">确认</el-button>
<el-button style="background-color:#b5b5b6;color:#fff" @click="onClose">取消</el-button>
<el-button style="background-color: #0e708b; color: #fff" @click="onClose"
>取消</el-button
>
<el-button
@click="onSubmit('dataForm')"
v-loading="loading"
style="background-color: #10aac2; color: #fff"
>确认</el-button
>
</div>
</el-dialog>
</template>
<script>
import { getTemplateList, addTemplate, addTemplateContent, editTemplateContent, editTemplate, deleteTemplate, getTemplateContent, getGalleryList, getFontSizeByDevicePixel, uploadBoardEditInfo } from '@/api/board/template'
import { devicessize } from '@/api/information/api.js'
import { checkIotBoardContent } from '@/api/board/vocabulary'
import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue"
import BoardTplPreview from "@screen/components/infoBoard/BoardTplPreview.vue"
import infoBoardUtils from "@screen/utils/infoBoard.js"
import { checkBoardContent } from '@/api/board/board'
import { debounce } from 'lodash'
import {
getTemplateList,
addTemplate,
addTemplateContent,
editTemplateContent,
editTemplate,
deleteTemplate,
getTemplateContent,
getGalleryList,
getFontSizeByDevicePixel,
uploadBoardEditInfo,
} from "@/api/board/template";
import { devicessize } from "@/api/information/api.js";
import { checkIotBoardContent } from "@/api/board/vocabulary";
import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue";
import BoardTplPreview from "@screen/components/infoBoard/BoardTplPreview.vue";
import infoBoardUtils from "@screen/utils/infoBoard.js";
import { checkBoardContent } from "@/api/board/board";
import { debounce } from "lodash";
export default {
data() {
return {
alignmentNum: 2,
content: '',
boardWidth: '',
boardHeight: '',
content: "",
boardWidth: "",
boardHeight: "",
checkList: [], //
obj: '',
obj: "",
imgUrl: [],
imgUrlOther: [],
dialogVisible: false,
fileList: [
{
name: 'food.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
name: "food.jpeg",
url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
},
{
name: 'food2.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
}
name: "food2.jpeg",
url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
},
],
listquery: [], //
curDragImgItem: '',
startTxt_x: '000',
startTxt_y: '000',
width: '400',
height: '40',
curDragImgItem: "",
startTxt_x: "000",
startTxt_y: "000",
width: "400",
height: "40",
// content: "",
fontSize: '24',
fontType: 'KaiTi',
fontSize: "24",
fontType: "KaiTi",
fontSpacing: 0,
coordinate: '000000',
url: '',
previewContent: '', //
coordinate: "000000",
url: "",
previewContent: "", //
ispreviewContent: -1,
dataForm: {
category:"",
formatStyle:"",
content:"",
fontColor:"",
fontSize:"",
fontType:"",
stopTime:"",
inScreenMode:"",
screenSize:""
category: "",
formatStyle: "",
content: "",
fontColor: "",
fontSize: "",
fontType: "",
stopTime: "",
inScreenMode: "",
screenSize: "",
},
templateContent: [],
templateDelContent: [],
@ -157,183 +241,190 @@ export default {
content: [
{
required: true,
message: '请输入详细内容',
trigger: 'blur'
}
message: "请输入详细内容",
trigger: "blur",
},
],
category: [
{
required: true,
message: '请选择类别',
trigger: 'blur'
}
]
message: "请选择类别",
trigger: "blur",
},
],
},
screenSizeOptions: [],
colorList: [],
isCurrencyOptions: [
{
code: '0',
content: '通用'
code: "0",
content: "通用",
},
{
code: '1',
content: '仅为智能推荐模板'
}
code: "1",
content: "仅为智能推荐模板",
},
],
inScreenModeList: [],
imgSize: [
{
type: '1024*128',
name: '全屏'
type: "1024*128",
name: "全屏",
},
{
type: '',
name: '正常'
}
type: "",
name: "正常",
},
],
fontSizeList: [],
title: '选择图片',
title: "选择图片",
loading: false,
isAdd: false,
templateCategoryList: [],
infoType: '',
infoType: "",
devicePixelBoolean: false,
categoryRules: false,
deviceCttDefault: {
"residenceTime": "50",
"intonation": "0",
"fontSpacing": "1",
"screenEntryMethod": "1",
"screenOutputMethod": "1",
"lineSpacing": "0",
"yCoordinate": "0",
"whetherToSynchronizePlayback": "0",
"whetherToPlayText": "0",
"playbackCount": "1",
"flashingFrequency": "5",
"backgroundColor": "8",
"foregroundColor": "FFFF00",
"textContent": "",
"fontStyle": "0",
"displayAreaWidth": "768",
"playbackDuration": "50",
"displayAreaHeight": "64",
"volume": "0",
"xCoordinate": "0",
"screenEntrySpeed": "1",
"horizontalAlignment": "2",
"playSpecialEffects": "0",
"setUpTheSpeaker": "0",
"flickerSpeed": "0",
"specialEffectsSpeed": "1",
"fontSize": "20",
"verticalAlignment": "2",
"speechSpeed": "0",
"font": "3"
},
isLocked :false,
}
residenceTime: "50",
intonation: "0",
fontSpacing: "1",
screenEntryMethod: "1",
screenOutputMethod: "1",
lineSpacing: "0",
yCoordinate: "0",
whetherToSynchronizePlayback: "0",
whetherToPlayText: "0",
playbackCount: "1",
flashingFrequency: "5",
backgroundColor: "8",
foregroundColor: "FFFF00",
textContent: "",
fontStyle: "0",
displayAreaWidth: "768",
playbackDuration: "50",
displayAreaHeight: "64",
volume: "0",
xCoordinate: "0",
screenEntrySpeed: "1",
horizontalAlignment: "2",
playSpecialEffects: "0",
setUpTheSpeaker: "0",
flickerSpeed: "0",
specialEffectsSpeed: "1",
fontSize: "20",
verticalAlignment: "2",
speechSpeed: "0",
font: "3",
},
props:{
mode:{ //add edit
type:String,
default:""
isLocked: false,
};
},
type: { //template board
props: {
mode: {
//add edit
type: String,
default: ""
default: "",
},
visible:{
type:Boolean,
default:false
type: {
//template board
type: String,
default: "",
},
screenSize:{
type:String,
default:""
visible: {
type: Boolean,
default: false,
},
tpl:{
type:Object,
default:()=>{}
}
screenSize: {
type: String,
default: "",
},
components:{
BoardPreview, BoardTplPreview
tpl: {
type: Object,
default: () => {},
},
},
components: {
BoardPreview,
BoardTplPreview,
},
computed: {
calcTitle(){
let str = '';
if(this.mode=="toDevice"){
calcTitle() {
let str = "";
if (this.mode == "toDevice") {
str = `从模板添加设备信息`;
}else{
str = `${this.mode == 'add' ? '新增' : '编辑'}${this.type == 'template' ? '信息模板' : '设备信息'}`
} else {
str = `${this.mode == "add" ? "新增" : "编辑"}${
this.type == "template" ? "信息模板" : "设备信息"
}`;
}
return str;
}
},
},
watch: {
visible:{
handler(newV){
visible: {
handler(newV) {
this.dialogVisible = newV;
if(this.$refs.dataForm){
if (this.$refs.dataForm) {
this.$refs.dataForm.clearValidate();
}
// if(newV){
// this.initData();
// }
},
immediate:true
immediate: true,
},
dialogVisible(newV){
dialogVisible(newV) {
this.$emit("update:visible", newV);
},
tpl:{
handler(newV){
tpl: {
handler(newV) {
// { "id": 3, "category": "0", "content": "", "screenSize": "768*64", "fontColor": "FFFF00", "fontSize": "64", "fontType": "2", "fontSpacing": "0", "rollingSpeed": null, "stopTime": "50", "inScreenMode": "1", "formatStyle": "2", "remark": null, "createTime": "2024-01-06 10:40:19", "updateTime": "2024-01-06 11:04:53" }
if(newV && Object.keys(newV).length>0){ //
if (newV && Object.keys(newV).length > 0) {
//
this.initData();
}
},
deep:true
deep: true,
},
"mode": {
mode: {
handler(newV) {
this.initData();
}
},
"type": {
},
type: {
handler(newV) {
this.initData();
}
}
},
mounted() {
},
},
mounted() {},
created() {
this.getDicts('iot_devices_font_color').then(res => {
this.getDicts("iot_devices_font_color").then((res) => {
this.colorList = res.data;
// console.log(this.colorList, "");
})
this.getDicts('iot_device_font_inScreen_mode').then(res => {
this.inScreenModeList = res.data
});
this.getDicts("iot_device_font_inScreen_mode").then((res) => {
this.inScreenModeList = res.data;
// console.log(this.inScreenModeList, "");
})
this.getDicts('iot_template_category').then(res => {
});
this.getDicts("iot_template_category").then((res) => {
this.templateCategoryList = res.data;
})
this.getDicts('iot_device_font_size').then(res => {
});
this.getDicts("iot_device_font_size").then((res) => {
this.fontSizeList = res.data;
// this.dataForm.FONT_SIZE = res.data[1].dictValue
})
});
},
methods: {
initData() {
if(this.isLocked){
return
if (this.isLocked) {
return;
}
this.isLocked = true;
setTimeout(()=>{this.isLocked = false}, 100);
setTimeout(() => {
this.isLocked = false;
}, 100);
// getTemplateList({id:this.tpl.id}).then(res=>{
// console.log(res.data , "++++++++===========");
@ -351,26 +442,33 @@ export default {
fontType: this.fontTypeList[0].dictValue,
stopTime: 50,
inScreenMode: this.inScreenModeList[0].dictValue,
screenSize: this.screenSize
}
}
else {
screenSize: this.screenSize,
};
} else {
tempTpl = _.merge({}, this.deviceCttDefault, this.tpl.origin); //
}
this.dataForm = infoBoardUtils.dialogSourceFormat(tempTpl, this.type, this.mode);
this.dataForm = infoBoardUtils.dialogSourceFormat(
tempTpl,
this.type,
this.mode
);
} else {
this.dataForm = infoBoardUtils.dialogSourceFormat(this.tpl, this.type, this.mode, this.deviceCttDefault);
this.dataForm = infoBoardUtils.dialogSourceFormat(
this.tpl,
this.type,
this.mode,
this.deviceCttDefault
);
}
if (this.visible == false && this.mode == "toDevice") {
this.onSubmit();
}
},
onClose(){
onClose() {
this.dialogVisible = false;
},
//
async onSubmit(formName) {
// this.$refs[formName].validate((valid) => {
// if (valid) {
@ -380,68 +478,76 @@ export default {
// }
// });
if (this.type=="template" && this.dataForm.category == undefined) {
return this.$modal.msgError('请选择分类!')
if (this.type == "template" && this.dataForm.category == undefined) {
return this.$modal.msgError("请选择分类!");
}
if (!this.dataForm.content.trim()) {
return this.$modal.msgError('当前输入内容为空')
return this.$modal.msgError("当前输入内容为空");
}
if (this.dataForm.content.indexOf('\\')>=0) {
return this.$modal.msgError("内容不能含有特殊字符'\\\\'")
if (this.dataForm.content.indexOf("\\") >= 0) {
return this.$modal.msgError("内容不能含有特殊字符'\\\\'");
}
let ctt = this.dataForm.content;
checkBoardContent(ctt).then(res => {
checkBoardContent(ctt).then((res) => {
if (res.code == 200) {
doNext();
} else {
this.$message({
type: 'danger',
message: res.msg
type: "danger",
message: res.msg,
});
return;
}
})
});
let doNext = () => {
let data = infoBoardUtils.dialogSaveFormat(
this.dataForm,
this.type,
this.mode
);
let data = infoBoardUtils.dialogSaveFormat(this.dataForm, this.type, this.mode);
this.loading = true
this.loading = true;
// let templateId = "";
if(this.type == "template"){
if(this.mode=='edit'){
editTemplate(data).then(res=>{
if (this.type == "template") {
if (this.mode == "edit") {
editTemplate(data).then((res) => {
afterSave("修改");
});
}else if (this.mode == "toDevice") {
this.loading = false
this.$emit("afterSubmit", { type: this.type, mode: this.mode, data: data });
} else if (this.mode == "toDevice") {
this.loading = false;
this.$emit("afterSubmit", {
type: this.type,
mode: this.mode,
data: data,
});
} else {
addTemplate(data).then(res => {
addTemplate(data).then((res) => {
afterSave("新增");
});
}
}else{
this.loading = false
} else {
this.loading = false;
// this.dialogVisible = false
this.$emit("afterSubmit", { type: this.type, mode: this.mode, data:data });
this.$emit("afterSubmit", {
type: this.type,
mode: this.mode,
data: data,
});
}
const afterSave = (para)=>{
this.$message.success(para + '成功!')
this.loading = false
const afterSave = (para) => {
this.$message.success(para + "成功!");
this.loading = false;
// this.dialogVisible = false
this.$emit("afterSubmit" , {type:this.type, mode:this.mode});
}
}
this.$emit("afterSubmit", { type: this.type, mode: this.mode });
};
};
},
}
}
},
};
</script>
<style lang="scss" scoped>
.infoBoardButton {

44
ruoyi-ui/src/views/JiHeExpressway/index.vue

@ -1,12 +1,12 @@
<template>
<Adaptation class="pageBox">
<HeaderMenu @onChange="handleChange" class="header" />
<div class="content">
<div class="pageBox">
<HeaderMenu @onChange="handleChange" class="header" :style="headerStyle"/>
<Adaptation class="content" :headerHeight="headerHeight">
<Transition name="fade">
<router-view v-if="isShowContent" />
</Transition>
</div>
</Adaptation>
</div>
</template>
<script>
@ -19,14 +19,29 @@ export default {
name: "ji_ze_gao_su",
components: {
HeaderMenu,
Adaptation,
Adaptation
// ...modules
},
data() {
return {
isShowContent:false
isShowContent:false,
headerHeight:68,
header: {
scale: 1,
originW: 1920,
originH: 68
},
};
},
computed:{
headerStyle(){
return {
width : `${this.header.originW}px`,
height : `${this.header.originH}px`,
transform : `scale(${this.header.scale}, ${this.header.scale})`
}
}
},
mounted(){
getBoardBaseData().then(res => {
this.isShowContent = true;
@ -34,8 +49,18 @@ export default {
// Promise.all()getBoardBaseData().then(()=>{
// this.isShowContent = true ;
// });
window.addEventListener(
"resize",
_.debounce(this.calcHeaderScale.bind(this), 360)
);
this.calcHeaderScale();
},
methods: {
calcHeaderScale(){
let winW = window.innerWidth;
this.header.scale = winW / this.header.originW;
this.headerHeight = this.header.scale * this.header.originH;
},
handleChange(activeMenu) {
this.$route.path != activeMenu.path && this.$router.push(activeMenu.path);
}
@ -66,15 +91,14 @@ export default {
}
.header {
height: 68px;
position: fixed;
transform-origin: left top;
left: 0; top:0; z-index: 1000;
}
.content {
flex: 1;
height: 0;
display: flex;
flex-direction: row;
position: relative;
pointer-events: none;
::v-deep {

139
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/InfoBoard/index.vue

@ -6,22 +6,49 @@
<div class="mainDialog">
<div class="dialog_head">
<div class="tit">{{ selectedDevice.deviceName }}</div>
<img class="btnCls" src="@/assets/jihe/images/dialog/ibCls.png" alt="" @click="____onClose" />
<img class="deco" src="@/assets/jihe/images/dialog/ibHeadDeco.png" alt="" />
<img
class="btnCls"
src="@/assets/jihe/images/dialog/ibCls.png"
alt=""
@click="____onClose"
/>
<img
class="deco"
src="@/assets/jihe/images/dialog/ibHeadDeco.png"
alt=""
/>
</div>
<div class="dialogContent">
<div v-if="selectedBdMsg.length > 0" class="dialogContent_box" style="height: 100%">
<div
v-if="selectedBdMsg.length > 0"
class="dialogContent_box"
style="height: 100%"
>
<vuescroll :ops="scrollOptions" class="listBox">
<div v-for="(itm, indx) in selectedBdMsg" :key="indx" class="tplItem">
<div
v-for="(itm, indx) in selectedBdMsg"
:key="indx"
class="tplItem"
>
<!-- 模板内容 -->
<BoardPreview class="boardPreview" :boardWH="selectedSize" :tpl="itm"></BoardPreview>
<BoardPreview
class="boardPreview"
:boardWH="selectedSize"
:tpl="itm"
></BoardPreview>
<!-- 操作按钮 -->
<div class="infoBtnBox">
<el-tooltip content="编辑" placement="top">
<p @click="____onEditBoardItem(itm, indx)" class="btn btnEdit"></p>
<p
@click="____onEditBoardItem(itm, indx)"
class="btn btnEdit"
></p>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<p @click="____onDeleteBoardItem(indx)" class="btn btnDelete"></p>
<p
@click="____onDeleteBoardItem(indx)"
class="btn btnDelete"
></p>
</el-tooltip>
</div>
</div>
@ -61,30 +88,62 @@
</div> -->
</div>
</el-tab-pane>
<el-tab-pane label="设备参数" name="second">设备参数</el-tab-pane>
<el-tab-pane label="在线率统计" name="third">在线率统计</el-tab-pane>
<el-tab-pane label="设备参数" name="second"
>设备参数</el-tab-pane
>
<el-tab-pane label="在线率统计" name="third"
>在线率统计</el-tab-pane
>
</el-tabs>
</div>
<div class="dialogContent_bottom_btn">
<el-button class="btnInfoBoard" type="add" @click.native="____onAddDeviceItem()">添加信息</el-button>
<el-button class="btnInfoBoard" type="publish" @click="____publishInfo"
:disabled="selectedBdMsg.length <= 0 || selectedDevice.iotDeviceId === null || selectedDevice.iotDeviceId === undefined">发布信息</el-button>
<el-button
class="btnInfoBoard"
type="add"
@click.native="____onAddDeviceItem()"
>添加信息</el-button
>
<el-button
class="btnInfoBoard"
type="publish"
@click="____publishInfo"
:disabled="
selectedBdMsg.length <= 0 ||
selectedDevice.iotDeviceId === null ||
selectedDevice.iotDeviceId === undefined
"
>发布信息</el-button
>
</div>
<div class="sideSwitch" @click="____onShowTemplate">
<img class="img" src="@/assets/screen/xtb/leftd.png" alt="" :style="{
<img
class="img"
src="@/assets/screen/xtb/leftd.png"
alt=""
:style="{
transform: isShowTemplate
? 'rotate(0deg)'
: 'rotate(180deg)',
}" />
}"
/>
<div class="txt">信息模板</div>
</div>
<!-- 附近的摄像机 -->
<div class="sideSwitch" style="top: 36%" @click="____onShowCameraShower">
<img class="img" src="@/assets/screen/xtb/leftd.png" alt="" :style="{
<div
class="sideSwitch"
style="top: 36%"
@click="____onShowCameraShower"
>
<img
class="img"
src="@/assets/screen/xtb/leftd.png"
alt=""
:style="{
transform: dialogInfoCamera
? 'rotate(0deg)'
: 'rotate(180deg)',
}" />
}"
/>
<div class="txt">附近相机</div>
</div>
</div>
@ -93,12 +152,23 @@
<!-- 信息模板 -->
<div v-if="isShowTemplate" class="sideContent template">
<vuescroll :ops="scrollOptions" class="listBox">
<div v-for="(item, index) in templateAvailable" :key="item.dictValue">
<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="tplItem">
<div
v-for="(itm, indx) in item.list"
:key="indx"
class="tplItem"
>
<!-- 模板内容 -->
<BoardTplPreview class="boardPreview" :boardWH="selectedSize" :tpl="itm"></BoardTplPreview>
<BoardTplPreview
class="boardPreview"
:boardWH="selectedSize"
:tpl="itm"
></BoardTplPreview>
<!-- <div class="infoPreview">
<div class="infoBox" :style="____boardBgStyle">
<span class="infoTxt" :style="____boardTxtStyle(itm)" v-html="itm.content.replace(/\n|\r\n/g, '<br>').replace(/ /g, '&nbsp')"></span>
@ -107,7 +177,10 @@
<!-- 操作按钮 -->
<div class="infoBtnBox infoBtnBoxSm">
<el-tooltip content="加入待下发信息" placement="top">
<p @click="____onTplToDevice(itm, false)" class="btn btnApply"></p>
<p
@click="____onTplToDevice(itm, false)"
class="btn btnApply"
></p>
</el-tooltip>
</div>
</div>
@ -116,13 +189,23 @@
</div>
<!-- 附近相机 -->
<CameraShower class="sideContent camera" :visible.sync="dialogInfoCamera" :list="nearbyCameraList">
<CameraShower
class="sideContent camera"
:visible.sync="dialogInfoCamera"
:list="nearbyCameraList"
>
</CameraShower>
</div>
</transition>
<BoardInfoEditor @afterSubmit="____onEditSubmit" :mode="editDialog.mode" :type="editDialog.type"
:visible.sync="editDialog.visible" :screenSize="selectedSize" :tpl="editDialog.tpl"></BoardInfoEditor>
<BoardInfoEditor
@afterSubmit="____onEditSubmit"
:mode="editDialog.mode"
:type="editDialog.type"
:visible.sync="editDialog.visible"
:screenSize="selectedSize"
:tpl="editDialog.tpl"
></BoardInfoEditor>
</div>
</Teleport>
</template>
@ -232,7 +315,7 @@ export default {
// this.____getAllTemplate();
},
computed: {},
mounted() { },
mounted() {},
methods: {
//
____getTemplateCategory() {
@ -276,7 +359,7 @@ export default {
.then((res) => {
this.selectedBdMsg = res.data["3A"].content;
})
.catch((err) => { });
.catch((err) => {});
else this.$message.error("设备未接入");
}
},
@ -317,7 +400,7 @@ export default {
____onDeleteBoardItem(index) {
if (index > -1) {
this.selectedBdMsg.splice(index, 1);
this.$message.success("删除成功");
this.$message.success("删除成功");
}
},
//
@ -338,7 +421,7 @@ export default {
}
},
____refreshPageData(para) { },
____refreshPageData(para) {},
____getNearbyCams() {
if (!this.selectedDevice.stakeMark) {

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue

@ -12,7 +12,7 @@
<!-- 分页 -->
<div class="footer">
<Pagination :total="total" :current-page.sync="currentPage" :page-size="30" :page-sizes="[30, 60, 90]"
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
@size-change="handleSizeChange" @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next"/>
</div>
</div>
</template>

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/EventDetailDialog/index.vue

@ -4,7 +4,7 @@
<Form :formList="formList" :dFormData="formData" label-width="100px" />
<div class="video">
<Video style="height: 100%;" />
<Video style="height: 100%; width: 600px;" />
</div>
<div class="pic">
<Carousel style="flex: 1;height: 80%;" />

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue

@ -4,8 +4,8 @@
<Form :formList="formList" :dFormData="formData" label-width="100px" />
<div class="video-pic">
<Video style="height: 100%;" :showHeader="activeName != '-1'" />
<Video v-if="activeName != '-1'" style="height: 100%;" />
<Video style="height: 100%; width: 380px;" :showHeader="activeName != '-1'" />
<Video v-if="activeName != '-1'" style="height: 100%; width: 380px;" />
<Carousel v-else style="flex: 1" :pictures="formData.pictures" />
</div>

3
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/FormEvent/PresetFormItems.js

@ -262,9 +262,10 @@ export const laneOccupancy = {
export const eventSources = {
label: "事件源:",
key: "eventSources",
key: "eventSource",
type: "select",
options: {
clearable: true,
options: [
{
key: "1",

5
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/FormEvent/index.vue

@ -173,6 +173,9 @@ export default {
// eventType: Number(this.index) + 1,
// stakeMark: (stakeMark && stakeMark[0] != null) ? ((stakeMark && stakeMark.length > 0) ? ('K' + stakeMark[0] + '+' + stakeMark[1]) : '') : '',
// })
// this.modelVisible = false;
// this.submitting = false;
// this.$emit('queryData',true)
// return;
request({
@ -181,6 +184,7 @@ export default {
data: {
...formData,
eventType: Number(this.index) + 1,
eventState: 0,
stakeMark: (stakeMark && stakeMark[0] != null) ? ((stakeMark && stakeMark.length > 0) ? ('K' + stakeMark[0] + '+' + stakeMark[1]) : '') : '',
}
}).then((result) => {
@ -191,6 +195,7 @@ export default {
Message.error("提交失败");
}).finally(() => {
this.submitting = false;
this.$emit('queryData',true);
})
})

27
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/data.js

@ -58,6 +58,7 @@ export const gjSearchFormList = [
key: "warningSource",
type: "select",
options: {
clearable: true,
options: [
{
key: "1",
@ -98,11 +99,11 @@ export const gjSearchFormList = [
options: [
{
key: "1",
label: "上行",
label: "菏泽方向",
},
{
key: "3",
label: "下行",
label: "济南方向",
},
],
},
@ -113,6 +114,7 @@ export const gjSearchFormList = [
required: false,
type: "datePicker",
options: {
style: 'width: 250px',
type: "datetimerange",
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
@ -123,25 +125,16 @@ export const gjSearchFormList = [
label: "桩号:",
required: false,
},
// merge(cloneDeep(PresetFormItems.station), {
// options: {
// options: [
// {
// key: "endStakeMark[0]",
// },
// {
// key: "endStakeMark[1]",
// },
// ],
// },
// label: "结束桩号:",
// required: false,
// }),
];
export const gzSearchFormList = [
PresetFormItems.eventSources,
PresetFormItems.eventType,
merge(PresetFormItems.eventType, {
options: {
clearable: true,
},
}),
// PresetFormItems.eventType,
{
label: "方向:",
key: "direction",

22
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue

@ -5,7 +5,7 @@
<!-- 搜索栏 -->
<div class="filter">
<div>
<ButtonGradient @click="onAddNew" v-if="activeName != '1' && activeName != '2'">
<ButtonGradient @click="onAddNew" v-if="activeName == '0'">
<template #prefix>
<img src="./images/insert.svg" />
</template>
@ -43,9 +43,10 @@
</div>
<!-- "详情"弹出框 -->
<EventDetailDialog :visible="eventDetailDialogVisible" :formData="detailDialogFormData" :activeName="activeName" @update:value="handleClose" @queryData="queryData"/>
<EventDetailDialog :visible="eventDetailDialogVisible" :formData="detailDialogFormData" :activeName="activeName"
@update:value="handleClose" @queryData="queryData" />
<!-- "新增"弹出框 -->
<FormEvent :visible="isShowAddNew" @close="onCloseAddNew" />
<FormEvent :visible="isShowAddNew" @close="onCloseAddNew" @queryData="queryData" />
</div>
</template>
@ -84,11 +85,6 @@ const warningSourceMapping = {
6: '非机预警',
7: '气象监测器'
}
const directionMapping = {
'1': '上行',
'2': '中',
'3': '下行'
}
const gzDirectionMapping = {
'1': '菏泽方向',
'2': '双向',
@ -181,7 +177,7 @@ export default {
lastBtnText: text,
};
},
queryData(flag){
queryData(flag) {
this.getData()
},
getData() {
@ -195,7 +191,7 @@ export default {
if (result.code != 200) return Message.error(result?.msg);
result.rows.forEach(it => {
it.stringEventSource = it?.warningSource ? warningSourceMapping[it?.warningSource] : '';
it.stringDirection = directionMapping[it.direction] || it.direction;
it.stringDirection = gzDirectionMapping[it.direction] || it.direction;
it.startTime = it.warningTime;
if (it.otherConfig) {
@ -309,7 +305,7 @@ export default {
let data = result.data;
data.stringEventSource = data?.warningSource ? warningSourceMapping[data.warningSource] : '';
data.direction = directionMapping[data.direction] || data.direction;
data.direction = gzDirectionMapping[data.direction] || data.direction;
data.startTime = data.warningTime;
data.stringEventState = warningStateMapping[data.warningState];
data.stringEventType = warningTypeMapping[data.warningType];
@ -330,7 +326,7 @@ export default {
}).then((result) => {
if (result.code != 200) return Message.error(result?.msg);
let data = result.data;
data.stringDirection = directionMapping[data.direction] || data.direction;
data.stringDirection = gzDirectionMapping[data.direction] || data.direction;
this.detailDialogFormData = data;
@ -358,7 +354,7 @@ export default {
this.searchData = {
...this.searchData,
eventType: data.eventType,
eventSources: data.eventSources,
eventSource: data.eventSource,
warningSource: data?.warningSource || '',
direction: data.direction,
startTime: daterange && daterange.length > 0 ? daterange[0] : "",

22
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/StatsDialogVisible/index.vue

@ -314,6 +314,7 @@ export default {
multiple: true,
options: [],
},
default: [],
visible: (data) => {
if (data.searchType == 1) {
return true;
@ -325,6 +326,7 @@ export default {
key: "date",
required: true,
type: "datePicker",
default: "",
options: {
pickerOptions: {
disabledDate(time) {
@ -336,6 +338,7 @@ export default {
},
},
],
queryParams: {},
};
},
computed: {
@ -376,19 +379,30 @@ export default {
});
this.searchFormList[2].options.options = dataList;
this.facilityIds = res[0].value.data.map((item) => item.id);
// this.searchFormList[2].default = res[0].value.data.map(item => item.id)
this.searchFormList[2].default = res[0].value.data.map(
(item) => item.id
);
console.log(56, this.searchFormList[2].default);
let currentMonth = moment().format("YYYY-MM");
let currentDate = moment().format("YYYY-MM-DD");
let data = {
this.queryParams = {
searchType: 1,
facilityId: this.facilityIds,
date: [currentMonth + "-01", currentDate],
};
this.getSelectTollStation(data);
this.searchFormList[3].default = [currentMonth + "-01", currentDate];
this.getSelectTollStation(this.queryParams);
}
});
},
handleSearch(data) {
// handleResetForm(data) {
// this.getSelectTollStation(data);
// },
handleSearch(data, value) {
console.log(888, data, value);
if (value == "reset") {
data = this.queryParams;
}
this.getSelectTollStation(data);
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js

@ -3,10 +3,6 @@ var options = {
tooltip: {
show: true,
trigger: "axis",
textStyle: {
// color: "#fff",
fontSize: 10,
},
// formatter: "{b}:{c}人",
},
legend: {

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js

@ -23,10 +23,6 @@ let options = {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
textStyle: {
// color: "#fff",
fontSize: 10,
},
// backgroundColor: "rgba(3, 31, 71, .0)", //设置背景颜色
// borderColor: "rgba(3, 31, 71, .0)",
// formatter: "健康监测<br>{b}:{c}人",

5
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts2.js

@ -5,11 +5,6 @@ let options = {
tooltip: {
show: true,
trigger: "axis",
// backgroundColor: "rgba(17,95,182,0.5)", //设置背景颜色
textStyle: {
// color: "#fff",
fontSize: 10,
},
// formatter: "{b}:{c}人",
},
grid: {

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts3.js

@ -23,10 +23,6 @@ var options = {
},
tooltip: {
show: true,
textStyle: {
// color: "#fff",
fontSize: 10,
},
// valueFormatter: function (value) {
// return value;
// // return (value + minNumber).toFixed(2) + " %";

4
ruoyi-ui/src/views/JiHeExpressway/pages/datav/roadNet/index.vue

@ -316,7 +316,7 @@ h4, p, ul,li{ margin: 0; padding:0;}
flex-basis: 816px; display: flex; flex-direction: column; justify-content: space-between;
}
.share{
height: 420px; display: flex; justify-content: center; align-items: center;
flex:1.2; margin-bottom: 46px; display: flex; justify-content: center; align-items: center;
.arrow{ transform: rotateZ(90deg); left: 48%; top:calc(100% + 8px);}
.shareCon{
background-image: url(./img/ShareAll.svg); background-position: center center; background-size: contain; background-repeat: no-repeat; width: 756px; height: 245px; display: flex; align-items: center; justify-content: center; position: relative;
@ -340,7 +340,7 @@ h4, p, ul,li{ margin: 0; padding:0;}
}
.apply{
height: 390px; display: flex; flex-wrap: wrap; padding: 40px 45px; align-content: stretch;
flex: 1; display: flex; flex-wrap: wrap; padding: 40px 45px; align-content: stretch;
.applyUnit{ flex-basis: 25%; display: flex; flex-direction: column; justify-content: center; align-items: center;
.con{ width: 140px; text-align: center; align-items: center; justify-content: center;
h4, p{ font-family: PangMenZhengDao; font-size: 15px; line-height: 22px; margin: 0; padding:0;

42
ruoyi-ui/src/views/JiHeExpressway/pages/datav/roadNet/sensors.vue

@ -1,6 +1,6 @@
<template>
<div class="compBox">
<div id="container" class="compCon">
<div id="container" class="compCon" ref="canvas">
</div>
</div>
</template>
@ -12,22 +12,34 @@ export default {
name: 'sensors',
data(){
return {
graph:null
}
},
components: {
},
mounted(){
this.initGraph();
this.refresh();
window.addEventListener("resize",
_.debounce(this.refresh.bind(this), 1000)
)
},
methods: {
initGraph(){
refresh(){
let _this = this;
this.$nextTick(() => {
_this.initGraph(_this.$refs["canvas"].offsetHeight);
})
},
initGraph(canvasHeight){
let unitH = 42;
let average = unitH + (canvasHeight - unitH*13)/12;
Graph.registerNode(
'sensor',
{
width: 180,
height: 42,
height: unitH,
markup: [
{
tagName: 'rect',
@ -97,8 +109,12 @@ export default {
},
true,
)
if(this.graph){
this.graph.clearCells();
this.graph = null;
}
const graph = new Graph({
this.graph = new Graph({
container: document.getElementById('container'),
autoResize: true,
grid: false,
@ -114,8 +130,8 @@ export default {
})
function createSub(x, y, title) {
return graph.addNode({
const createSub = (x, y, title) => {
return this.graph.addNode({
x,
y,
shape: 'sensor',
@ -132,8 +148,8 @@ export default {
})
}
function link(source, target, vertices) {
return graph.addEdge({
const link = (source, target, vertices) => {
return this.graph.addEdge({
source: {
cell: source,
anchor: {
@ -153,7 +169,7 @@ export default {
})
}
const main = graph.addNode({
const main = this.graph.addNode({
shape: 'circle',
x: 310,
y: 80,
@ -184,7 +200,7 @@ export default {
]
subItems.forEach((item, index) => {
let temp = createSub(0, index * 68, item);
let temp = createSub(0, index * average, item);
link(main, temp);
})
@ -219,7 +235,7 @@ export default {
// },
// ])
// graph.zoomToFit({ padding: 0, maxScale: 1, mainScale: 1 })
// this.graph.zoomToFit({ padding: 0, maxScale: 1, mainScale: 1 })

5
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dailyDisposal/assets/charts.js

@ -31,16 +31,17 @@ var options = {
width: 50,
},
bst: {
width: 35,
align: "left",
fontSize: 12,
marginLeft: 10,
color: "#37E7FF",
marginLeft: 10,
},
cst: {
align: "left",
fontSize: 12,
marginLeft: 10,
color: "#37E7FF",
marginLeft: 10,
},
},
},

6
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dailyDisposal/index.vue

@ -142,10 +142,10 @@ export default {
context.lineWidth = 1; // 线
//
drawRoundRect(context, 230, 36, 180, 24, 12, gr);
drawRoundRect(context, 230, 35, 180, 24, 12, gr);
drawRoundRect(context, 230, 63, 180, 24, 12, gr);
drawRoundRect(context, 230, 90, 180, 24, 12, gr);
drawRoundRect(context, 230, 117, 180, 24, 12, gr);
drawRoundRect(context, 230, 91, 180, 24, 12, gr);
drawRoundRect(context, 230, 119, 180, 24, 12, gr);
});
});
},

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dayTotal/assets/charts.js

@ -39,7 +39,7 @@ var options = {
},
},
grid: {
left: "10px",
left: "15px",
right: "0%",
top: "16%",
bottom: "5%",

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/assets/charts3.js

@ -39,7 +39,7 @@ let options = {
},
},
axisLabel: {
interval: 0,
interval: 'auto',
align: "center",
rotate: "1",
margin: "20",

18
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue

@ -451,7 +451,7 @@ export default {
this.chart3List = res.data;
let data = res.data;
const maxObject = data
.filter((it) => it.sectionNumber > 0)
.filter((it) => it.sectionNumber >= 0)
.reduce((prev, current) =>
current.sectionNumber > prev.sectionNumber ? current : prev
);
@ -460,7 +460,7 @@ export default {
let values2 = [];
data.forEach((it) => {
if (it.sectionNumber > 0) {
if (it.sectionNumber >= 0) {
values2.push(it.sectionNumber);
zhs.push(it.stakeMarkId);
@ -530,14 +530,14 @@ export default {
id: it.id,
});
});
//
if (rows.length > 1) {
this.dataList.push({
title: rows[rows.length - 1].sectionName.split("-")[1],
id: rows[rows.length - 1].id,
});
}
console.log("dataList", this.dataList);
// if (rows.length > 0) {
// let lastRoad = rows[rows.length - 1].sectionName.split("-")[1];
// this.dataList.push({
// title: lastRoad,
// id: rows[rows.length - 1].id,
// });
// }
}
this.searchQuery();
});

11
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/assets/charts.js

@ -90,13 +90,13 @@ var options = {
},
color: ["#5973FF", "#14d8b4", "#FFC30D", "#61D8FF", "#1DA7FF", "#2967EA"],
legend: {
top: "8%",
top: "5%",
right: 0,
orient: "vertical", //改变排列方式
icon: "circle", //改变legend小图标形状
itemGap: 10, // 设置legend的间距
itemGap: 12, // 设置legend的间距
itemWidth: 8, // 设置宽度
// itemHeight: 15, // 设置高度
itemHeight: 9, // 设置高度
itemStyle: {
borderColor: "transparent",
@ -130,15 +130,16 @@ var options = {
width: 65,
},
bst: {
width: 35,
align: "left",
fontSize: 12,
marginLeft: 20,
marginLeft: 10,
color: "#37E7FF",
},
cst: {
align: "left",
fontSize: 12,
marginLeft: 30,
marginLeft: 10,
width: 60,
color: "#37E7FF",
},

17
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/index.vue

@ -215,16 +215,15 @@ export default {
//
let gr = context.createLinearGradient(230, 0, 360, 0);
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.3)");
drawRoundRect(context, 206, 16, 134, 18, 12, gr);
drawRoundRect(context, 206, 39, 134, 18, 12, gr);
drawRoundRect(context, 206, 61, 134, 18, 12, gr);
drawRoundRect(context, 206, 83, 134, 18, 12, gr);
drawRoundRect(context, 206, 105, 134, 18, 12, gr);
drawRoundRect(context, 206, 127, 134, 18, 12, gr);
drawRoundRect(context, 206, 149, 134, 18, 12, gr);
gr.addColorStop(0, "rgba(92,197,255,0.5)");
context.lineWidth = 1; // 线
drawRoundRect(context, 202, 8, 280, 20, 12, gr);
drawRoundRect(context, 202, 32, 280, 20, 10, gr);
drawRoundRect(context, 202, 56, 280, 20, 10, gr);
drawRoundRect(context, 202, 80, 280, 20, 10, gr);
drawRoundRect(context, 202, 104, 280, 20, 10, gr);
drawRoundRect(context, 202, 128, 280, 20, 10, gr);
drawRoundRect(context, 202, 152, 280, 20, 10, gr);
this.myChart = myChart;
});

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js

@ -15,7 +15,7 @@ var options = {
containLabel: true,
// 边距自行修改
bottom: "0%",
left: "0%",
left: "10px",
top: "2%",
right: "15%",
},

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railwayDay/assets/charts.js

@ -58,7 +58,7 @@ var options = {
grid: {
top: "15%", //上边距
right: "0", //右边距
left: "10px", //左边距
left: "15px", //左边距
bottom: "0%", //下边距
containLabel: true,
},

9
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/typeAnalysis/assets/charts.js

@ -37,19 +37,20 @@ var options = {
ast: {
marginLeft: 0,
fontSize: 12,
width: 40,
width: 60,
},
bst: {
align: "left",
fontSize: 12,
color: "#37E7FF",
width: 30,
width: 35,
marginLeft: 10,
},
cst: {
align: "right",
fontSize: 12,
width: 40,
// marginLeft: 20,
width: 45,
marginLeft: 10,
color: "#37E7FF",
},
},

10
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/typeAnalysis/index.vue

@ -176,11 +176,11 @@ export default {
context.lineWidth = 1; // 线
//
drawRoundRect(context, 260, 6, 120, 24, 12, gr);
drawRoundRect(context, 260, 36, 120, 24, 12, gr);
drawRoundRect(context, 260, 64, 120, 24, 12, gr);
drawRoundRect(context, 260, 92, 120, 24, 12, gr);
drawRoundRect(context, 260, 120, 120, 24, 12, gr);
drawRoundRect(context, 228, 8, 280, 24, 12, gr);
drawRoundRect(context, 228, 36, 280, 24, 12, gr);
drawRoundRect(context, 228, 64, 280, 24, 12, gr);
drawRoundRect(context, 228, 92, 280, 24, 12, gr);
drawRoundRect(context, 228, 120, 280, 24, 12, gr);
});
});
},

6
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/assets/charts3.js

@ -57,6 +57,12 @@ let options = {
yAxis: [
{
min: 0,
name: '(指标)',
nameTextStyle: {
color: "#fff",
fontSize: 10,
align: "right",
},
axisLine: {
lineStyle: {
color: "#27B5D7",

9
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/composeFeatures/assets/charts.js

@ -2,10 +2,10 @@ import * as echarts from "echarts";
var options = {
color: ["#07A3FB"],
grid: {
left: "0%",
left: "2px",
right: "8%",
bottom: "0%",
top: "10%",
top: "28px",
containLabel: true,
},
tooltip: {
@ -44,10 +44,11 @@ var options = {
},
yAxis: {
type: "value",
name: '(指标)',
nameTextStyle: {
fontSize: 10,
color: "#fff",
align: "center",
fontSize: 10,
align: "right",
},
splitLine: {
lineStyle: {

9
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/crowding/assets/charts.js

@ -2,10 +2,10 @@ import * as echarts from "echarts";
var options = {
color: ["#E29E37"],
grid: {
left: "0%",
left: "2px",
right: "0%",
bottom: "0%",
top: "10%",
top: "28px",
containLabel: true,
},
tooltip: {
@ -44,10 +44,11 @@ var options = {
},
yAxis: {
type: "value",
name: '(指标)',
nameTextStyle: {
fontSize: 10,
color: "#fff",
align: "center",
fontSize: 10,
align: "right",
},
splitLine: {
lineStyle: {

10
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/saturationMax/assets/charts.js

@ -6,10 +6,10 @@ var options = {
trigger: "axis",
},
grid: {
left: "0%",
left: "2px",
right: "0%",
bottom: "0%",
top: "10%",
top: "28px",
containLabel: true,
},
@ -45,6 +45,12 @@ var options = {
},
yAxis: {
type: "value",
name: '(指标)',
nameTextStyle: {
color: "#fff",
fontSize: 10,
align: "right",
},
splitLine: {
lineStyle: {
color: "#32BB8A",

4
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/assets/charts.js

@ -101,12 +101,12 @@ var options = {
yAxis: [
{
type: "value",
name: "",
name: "(指标)",
nameTextStyle: {
color: "#fff",
fontSize: 10,
fontFamily: "Source Han Sans CN-Regular",
align: "left",
align: "right",
verticalAlign: "center",
},
axisLabel: {

47
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue

@ -1,30 +1,42 @@
<template>
<Card2 class='Auditlists' title="审核列表">
<InputSearch style="width: 100%;" :formList="searchFormList" />
<Card2 class="Auditlists" title="审核列表">
<InputSearch style="width: 100%" :formList="searchFormList" />
<div class="body">
<ListItem v-for="item in list1" :key="item.id" :data="item" origin="left" class="middle-ratio" />
<ListItem v-for="item in list2" :key="item.id" :data="item" origin="left" class="middle-ratio" />
<ListItem
v-for="item in list1"
:key="item.id"
:data="item"
origin="left"
class="middle-ratio"
/>
<ListItem
v-for="item in list2"
:key="item.id"
:data="item"
origin="left"
class="middle-ratio"
/>
</div>
<div class="footer">
<Pagination :total="90" />
<Pagination layout="total,prev, pager, next, jumper" :total="90" />
</div>
</Card2>
</template>
<script>
import Card2 from "@screen/components/Card2/Card.vue";
import Pagination from '@screen/components/Pagination.vue';
import InputSearch from '@screen/components/InputSearch/index.vue';
import { searchFormList } from './data';
import Pagination from "@screen/components/Pagination.vue";
import InputSearch from "@screen/components/InputSearch/index.vue";
import { searchFormList } from "./data";
import ListItem from "./ListItem.vue";
export default {
name: 'Auditlists',
name: "Auditlists",
components: {
Card2,
InputSearch,
Pagination,
ListItem
ListItem,
},
data() {
return {
@ -37,7 +49,7 @@ export default {
const min = 0;
const max = 2;
return Math.floor(Math.random() * (max - min + 1)) + min;
})()
})(),
})),
list2: Array.from({ length: 10 }).map(() => ({
title: "交通事故",
@ -47,26 +59,23 @@ export default {
const min = 0;
const max = 2;
return Math.floor(Math.random() * (max - min + 1)) + min;
})()
})(),
})),
}
};
},
created() {
// axiosIns.get("/business/dcPublishInfo/list")
// .then((result) => {
// console.log("%c [ result ]-39-index.vue", "font-size:15px; background:#4bd543; color:#8fff87;", result);
// if (result.code !== 200) return this.list = [];
// this.list = result.rows;
// }).catch((err) => {
// });
}
}
},
};
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.Auditlists {
::v-deep {
.content {

37
ruoyi-ui/src/views/JiHeExpressway/pages/service/PublishingChannelManagement/index.vue

@ -1,5 +1,5 @@
<template>
<div class='PublishingChannelManagement'>
<div class="PublishingChannelManagement">
<!-- 搜索栏 -->
<div class="filter">
<div>
@ -17,7 +17,11 @@
</ButtonGradient>
</div>
<InputSearch style="width: 402px;" :formList="searchFormList" @handleSearch="handleSearch" />
<InputSearch
style="width: 402px"
:formList="searchFormList"
@handleSearch="handleSearch"
/>
</div>
<!-- 内容 -->
@ -27,7 +31,7 @@
<!-- 分页 -->
<div class="footer">
<Pagination :total="90" />
<Pagination layout="total,prev, pager, next, jumper" :total="90" />
</div>
<!-- 新增编辑弹窗 -->
@ -36,34 +40,34 @@
</template>
<script>
import Pagination from '@screen/components/Pagination.vue';
import InputSearch from '@screen/components/InputSearch/index.vue';
import Card from './components/Card';
import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue';
import Pagination from "@screen/components/Pagination.vue";
import InputSearch from "@screen/components/InputSearch/index.vue";
import Card from "./components/Card";
import ButtonGradient from "@screen/components/Buttons/ButtonGradient.vue";
import AddNEditDialog from "./components/AddNEditDialog.vue";
import { searchFormList } from './data';
import { searchFormList } from "./data";
export default {
name: 'PublishingChannelManagement',
name: "PublishingChannelManagement",
components: {
Pagination,
InputSearch,
Card,
ButtonGradient,
AddNEditDialog
AddNEditDialog,
},
data() {
return {
searchFormList,
data: [],
addNEditDialogVisible: false,
dialogData: null
}
dialogData: null,
};
},
methods: {
handleOpenDialogAddEdit(data) {
console.log('data', data);
console.log("data", data);
this.addNEditDialogVisible = true;
this.dialogData = data;
},
@ -71,13 +75,12 @@ export default {
// this.searchData = data;
// this.getData();
},
}
}
},
};
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.PublishingChannelManagement {
padding: 21px;
height: 100%;

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

@ -736,7 +736,7 @@ export default {
type: "warning",
}).then(() => {
deleteTemplate(id).then(() => {
this.$message.success("删除成功!");
this.$message.success("删除成功");
this.____refreshPageData({ type: "template" });
});
});
@ -746,7 +746,7 @@ export default {
____onDeleteBoardItem(index) {
if (index > -1) {
this.selectedBdMsg.splice(index, 1);
this.$message.success("删除成功");
this.$message.success("删除成功");
}
},

2
ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/index.vue

@ -85,7 +85,7 @@
:total="numTotal"
:current-page.sync="currentPage"
:page-size="pageSize"
layout="prev, pager, next,total, jumper"
layout="total,prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>

4
ruoyi-ui/vue.config.js

@ -51,8 +51,8 @@ module.exports = {
// target: `http://10.0.81.204:8087`, //现场后台 刘文阁
// target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁
// target: `http://10.168.78.135:8087`, //王钦
target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2
// target: `http://10.168.68.42:8087`, //王思祥
// target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2
target: `http://10.168.68.42:8087`, //王思祥
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",

Loading…
Cancel
Save