修改功能文档

This commit is contained in:
13684185576
2025-09-17 09:20:55 +08:00
38 changed files with 340 additions and 592 deletions

View File

@ -2,13 +2,17 @@
<template>
<router-view v-slot="{ Component }" v-if="isRouterAlive">
<keep-alive :include="store.getters.keepLiiveRoute">
<Watermark :text="content" :color="'rgba(0, 0, 0, .15)'">
<Component :is="Component"></Component>
</Watermark>
</keep-alive>
</router-view>
</template>
<script setup>
import { ref, nextTick, provide, onMounted } from "vue";
import { useStore } from "vuex";
import Watermark from "@/components/Watermark.vue";
import { timeValidate } from "@/utils/tools.js";
import { getItem } from "@/utils/storage";
import { qcckPost, qcckGet, qcckPut, qcckDelete } from "@/api/qcckApi.js";
import { generateNewStyle, writeNewStyle } from "@/utils/theme";
@ -26,9 +30,16 @@ const reload = () => {
provide("reload", reload);
onMounted(() => {
let dept = getItem("deptId");
frashJs()
document.title = "林芝";
});
const content=ref([])
const frashJs = () => {
const sfzh= getItem("idEntityCard")
const userName= getItem("USERNAME")
const time = timeValidate()
content.value=[userName,sfzh,time,"林芝市环林卡口综合管理","禁止泄露公民个人信息和警务工作秘密"]
}
</script>
<style lang="scss">
@import "./styles/index.scss";

View File

@ -1,21 +1,12 @@
<template>
<div>
<el-dialog
:title="titleValue"
width="1400px"
:model-value="modelValue"
@close="closed"
>
<el-dialog :title="titleValue" custom-class="qc-dialog" width="1400px" :model-value="modelValue" @close="closed">
<el-form :model="listQuery" :inline="true">
<el-form-item label="所属部门">
<MOSTY.Department width="100%" clearable v-model="listQuery.ssbmdm" />
</el-form-item>
<el-form-item label="圈层名称">
<el-input
v-model="listQuery.qcmc"
placeholder="请输入圈层名称"
clearable
/>
<el-input v-model="listQuery.qcmc" placeholder="请输入圈层名称" clearable />
</el-form-item>
<el-form-item>
@ -24,64 +15,22 @@
</el-form-item>
</el-form>
<div class="tabBox" style="margin-top: 0px" v-if="modelValue">
<el-table
ref="multipleUserRef"
@selection-change="handleSelectionChange"
:data="tableData"
border
style="width: 100%"
:row-key="keyid"
height="450"
>
<el-table-column
type="selection"
width="55"
:reserve-selection="true"
v-if="props.multiple"
/>
<el-table ref="multipleUserRef" @selection-change="handleSelectionChange" :data="tableData" border
style="width: 100%" :row-key="keyid" height="450">
<el-table-column type="selection" width="55" :reserve-selection="true" v-if="props.multiple" />
<el-table-column width="55" #default="{ row }" v-else>
<el-radio v-model="ridioIndex" :label="row.id"></el-radio>
</el-table-column>
<el-table-column
label="序号"
type="index"
align="center"
sortable
width="80"
/>
<el-table-column
sortable
prop="ssbm"
label="所属部门"
show-overflow-tooltip
align="center"
></el-table-column>
<el-table-column
sortable
prop="qcmc"
show-overflow-tooltip
label="圈层名称"
align="center"
>
<el-table-column label="序号" type="index" align="center" sortable width="80" />
<el-table-column sortable prop="ssbm" label="所属部门" show-overflow-tooltip align="center"></el-table-column>
<el-table-column sortable prop="qcmc" show-overflow-tooltip label="圈层名称" align="center">
</el-table-column>
<el-table-column
sortable
prop="qclx"
show-overflow-tooltip
label="圈层类型"
align="center"
>
<el-table-column sortable prop="qclx" show-overflow-tooltip label="圈层类型" align="center">
<template #default="{ row }">
<dict-tag :options="D_BZ_QCLX" :value="row.qclx" :tag="false" />
</template>
</el-table-column>
<el-table-column
sortable
prop="qcjb"
show-overflow-tooltip
label="圈层等级"
align="center"
>
<el-table-column sortable prop="qcjb" show-overflow-tooltip label="圈层等级" align="center">
<template #default="{ row }">
<dict-tag :options="D_BZ_QCDJ" :value="row.qcjb" :tag="false" />
</template>
@ -89,16 +38,9 @@
</el-table>
</div>
<div class="fenye" :style="{ top: tableHeight + 'px' }">
<el-pagination
class="pagination"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="listQuery.pageCurrent"
:page-sizes="[2, 5, 10, 20]"
:page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
<el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="listQuery.pageCurrent" :page-sizes="[2, 5, 10, 20]" :page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<template #footer>
<div class="dialog-footer">
@ -270,9 +212,11 @@ watch(
<style lang="scss" scoped>
@import "@/assets/css/layout.scss";
@import "@/assets/css/element-plus.scss";
::v-deep .el-form--inline {
padding-left: 0 !important;
}
::v-deep .el-radio__label {
display: none;
}
@ -281,7 +225,10 @@ watch(
.el-dialog {
// --el-dialog-bg-color: #001238 !important;
}
.qc-dialog {
.el-dialog__title {
color: #fff !important;
}
}
</style>

View File

@ -1,15 +1,8 @@
<template>
<el-popover
popper-class="dinw"
:visible="visible"
:width="getConfiger.width"
:trigger="getConfiger.trigger"
>
<template #reference
><span class="deBtn" @click="handleClick">{{
<el-popover popper-class="dinw" :visible="visible" :width="getConfiger.width" :trigger="getConfiger.trigger">
<template #reference><span class="deBtn" @click="handleClick">{{
getConfiger.selectName
}}</span></template
>
}}</span></template>
<div class="flex just-between align-center">
<span>{{ title }}</span>
<span @click="visible = false">
@ -22,133 +15,67 @@
<div class="tableBox flex" v-if="visible">
<!-- 左边 -->
<div class="table">
<MyTable
@chooseData="chooseDataL"
:tableData="pageDataL.tableData"
:tableColumn="pageDataL.tableColumn"
:tableHeight="common.tableHeight"
:key="common.keyCount"
:tableConfiger="common.tableConfiger"
>
<MyTable @chooseData="chooseDataL" :tableData="pageDataL.tableData" :tableColumn="pageDataL.tableColumn"
:tableHeight="common.tableHeight" :key="common.keyCount" :tableConfiger="common.tableConfiger">
<!-- 是否报备 -->
<template #sfbb="{ row }">
<dict-tag
:options="props.dic.D_BZ_SF"
:value="row.sfbb"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_SF" :value="row.sfbb" :tag="false" />
</template>
<!-- 警种类型 -->
<template #lx="{ row }">
<dict-tag
:options="props.dic.D_BZ_RYJZLB"
:value="row.lx"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_RYJZLB" :value="row.lx" :tag="false" />
</template>
<!-- 人员类型 -->
<template #fl="{ row }">
<dict-tag
:options="props.dic.D_BZ_RYMFJLB"
:value="row.fl"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_RYMFJLB" :value="row.fl" :tag="false" />
</template>
<!-- 设备类型 -->
<template #pddtlx="{ row }">
<dict-tag
:options="props.dic.D_BZ_PDDTLX"
:value="row.pddtlx"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_PDDTLX" :value="row.pddtlx" :tag="false" />
</template>
<!-- 班次类型 -->
<template #bcQwBbzl="{ row }">
<dict-tag
:options="props.dic.D_QW_BBZL"
:value="row.bcQwBbzl"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BBZL" :value="row.bcQwBbzl" :tag="false"></dict-tag>
</template>
<!-- 跨越天数 -->
<template #bcKtsDict="{ row }">
<dict-tag
:options="props.dic.D_QW_BC_KTS"
:value="row.bcKtsDict"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BC_KTS" :value="row.bcKtsDict" :tag="false"></dict-tag>
</template>
<!-- 请选择大类别 -->
<template #jyjtfwlb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYCL_JYJTFWLB"
:value="row.jyjtfwlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYCL_JYJTFWLB" :value="row.jyjtfwlb" :tag="false"></dict-tag>
</template>
<!-- 请选择小类别 -->
<template #jyjtgjlb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYCL_JYJTGJLB"
:value="row.jyjtgjlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYCL_JYJTGJLB" :value="row.jyjtgjlb" :tag="false"></dict-tag>
</template>
<!-- 设备类型 -->
<template #sblx="{ row }">
<dict-tag
:options="props.dic.D_JCGL_ZDSB_SBLX"
:value="row.sblx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_ZDSB_SBLX" :value="row.sblx" :tag="false"></dict-tag>
</template>
<!-- 终端类别 -->
<template #sblb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_ZDSB_SBLB"
:value="row.sblb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_ZDSB_SBLB" :value="row.sblb" :tag="false"></dict-tag>
</template>
<!-- 器械类型 -->
<template #qxlx="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYQX_QXLX"
:value="row.qxlx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYQX_QXLX" :value="row.qxlx" :tag="false"></dict-tag>
</template>
<!-- 报备种类 -->
<template #jzQwBbzl="{ row }">
<dict-tag
:options="props.dic.D_QW_BBZL"
:value="row.jzQwBbzl"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BBZL" :value="row.jzQwBbzl" :tag="false"></dict-tag>
</template>
<!-- 巡防区域类别 -->
<template #xqlb="{ row }">
<dict-tag
:options="props.dic.D_QW_XQLB"
:value="row.xqlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_XQLB" :value="row.xqlb" :tag="false"></dict-tag>
</template>
<!-- 巡防区域类型 -->
<template #xqlx="{ row }">
<dict-tag
:options="props.dic.D_QW_XQLX"
:value="row.xqlx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_XQLX" :value="row.xqlx" :tag="false"></dict-tag>
</template>
<!-- 警务站类型 -->
<template #jwzLx="{ row }">
<dict-tag
:options="props.dic.D_BZ_JWZLX"
:value="row.jwzLx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_BZ_JWZLX" :value="row.jwzLx" :tag="false"></dict-tag>
</template>
<!-- 时间段 -->
<template #sdList="{ row }">
@ -165,134 +92,69 @@
</MyTable>
</div>
<!-- 切换按钮 -->
<div
class="cnt flex just-center align-center"
v-if="!getConfiger.isRadio"
>
<div class="cnt flex just-center align-center" v-if="!getConfiger.isRadio">
<el-button :icon="Back" circle @click="upLeft" />
<el-button :icon="Right" circle @click="upRight" />
</div>
<!-- 右边 -->
<div class="table" v-if="!getConfiger.isRadio">
<MyTable
@chooseData="chooseDataR"
:tableData="pageDataR.tableData"
:tableColumn="pageDataR.tableColumn"
:tableHeight="common.tableHeight"
:key="common.keyCount"
:tableConfiger="common.tableConfiger"
>
<MyTable @chooseData="chooseDataR" :tableData="pageDataR.tableData" :tableColumn="pageDataR.tableColumn"
:tableHeight="common.tableHeight" :key="common.keyCount" :tableConfiger="common.tableConfiger">
<!-- 是否报备 -->
<template #sfbb="{ row }">
<dict-tag
:options="props.dic.D_BZ_SF"
:value="row.sfbb"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_SF" :value="row.sfbb" :tag="false" />
</template>
<!-- 警种类型 -->
<template #lx="{ row }">
<dict-tag
:options="props.dic.D_BZ_RYJZLB"
:value="row.lx"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_RYJZLB" :value="row.lx" :tag="false" />
</template>
<!-- 人员类型 -->
<template #fl="{ row }">
<dict-tag
:options="props.dic.D_BZ_RYMFJLB"
:value="row.fl"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_RYMFJLB" :value="row.fl" :tag="false" />
</template>
<!-- 设备类型 -->
<template #pddtlx="{ row }">
<dict-tag
:options="props.dic.D_BZ_PDDTLX"
:value="row.pddtlx"
:tag="false"
/>
<dict-tag :options="props.dic.D_BZ_PDDTLX" :value="row.pddtlx" :tag="false" />
</template>
<!-- 班次类型 -->
<template #bcQwBbzl="{ row }">
<dict-tag
:options="props.dic.D_QW_BBZL"
:value="row.bcQwBbzl"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BBZL" :value="row.bcQwBbzl" :tag="false"></dict-tag>
</template>
<!-- 跨越天数 -->
<template #bcKtsDict="{ row }">
<dict-tag
:options="props.dic.D_QW_BC_KTS"
:value="row.bcKtsDict"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BC_KTS" :value="row.bcKtsDict" :tag="false"></dict-tag>
</template>
<!-- 请选择大类别 -->
<template #jyjtfwlb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYCL_JYJTFWLB"
:value="row.jyjtfwlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYCL_JYJTFWLB" :value="row.jyjtfwlb" :tag="false"></dict-tag>
</template>
<!-- 请选择小类别 -->
<template #jyjtgjlb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYCL_JYJTGJLB"
:value="row.jyjtgjlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYCL_JYJTGJLB" :value="row.jyjtgjlb" :tag="false"></dict-tag>
</template>
<!-- 设备类型 -->
<template #sblx="{ row }">
<dict-tag
:options="props.dic.D_JCGL_ZDSB_SBLX"
:value="row.sblx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_ZDSB_SBLX" :value="row.sblx" :tag="false"></dict-tag>
</template>
<!-- 终端类别 -->
<template #sblb="{ row }">
<dict-tag
:options="props.dic.D_JCGL_ZDSB_SBLB"
:value="row.sblb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_ZDSB_SBLB" :value="row.sblb" :tag="false"></dict-tag>
</template>
<!-- 器械类型 -->
<template #qxlx="{ row }">
<dict-tag
:options="props.dic.D_JCGL_JYQX_QXLX"
:value="row.qxlx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_JCGL_JYQX_QXLX" :value="row.qxlx" :tag="false"></dict-tag>
</template>
<!-- 报备种类 -->
<template #jzQwBbzl="{ row }">
<dict-tag
:options="props.dic.D_QW_BBZL"
:value="row.jzQwBbzl"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_BBZL" :value="row.jzQwBbzl" :tag="false"></dict-tag>
</template>
<!-- 巡防区域类别 -->
<template #xqlb="{ row }">
<dict-tag
:options="props.dic.D_QW_XQLB"
:value="row.xqlb"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_XQLB" :value="row.xqlb" :tag="false"></dict-tag>
</template>
<!-- 巡防区域类型 -->
<template #xqlx="{ row }">
<dict-tag
:options="props.dic.D_QW_XQLX"
:value="row.xqlx"
:tag="false"
></dict-tag>
<dict-tag :options="props.dic.D_QW_XQLX" :value="row.xqlx" :tag="false"></dict-tag>
</template>
<!-- 时间段 -->
<template #sdList="{ row }">
@ -310,12 +172,8 @@
</div>
</div>
<div class="footInfoBtn flex just-between align-center">
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="common.tableHeight"
:pageConfiger="{ ...listQuery }"
/>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="common.tableHeight"
:pageConfiger="{ ...listQuery }" />
<el-button type="primary" @click="submitDate">确定选择</el-button>
</div>
</el-popover>
@ -827,6 +685,8 @@ const submitDate = () => {
} else {
if (pageDataR.tableData.length == 0)
return proxy.$message.warning("请选择数据");
console.log( pageDataR.tableData,' pageDataR.tableData');
emits("update:modelValue", pageDataR.tableData); //多选
emits("change", pageDataR.tableData);
}

View File

@ -17,7 +17,6 @@ let onRun = true;
router.beforeEach(async (to, from, next) => {
// 存在 token ,进入主页
console.log(store.getters.token, '===store.getters.token');
// if (store.state.user.token) {
// 快捷访问
if (store.getters.token) {
@ -47,12 +46,12 @@ router.beforeEach(async (to, from, next) => {
if (whiteList.indexOf(to.path) > -1) {
next()
} else {
next('/oatuh_login')
// if (isOatuh) {
// next('/oatuh_login')
// } else {
// next('/login')
// }
if (isOatuh) {
const idEntityCard = getItem('idEntityCard')
next(`/oatuh_login?token=${Base64.encode(idEntityCard)}`)
} else {
next('/login')
}
}
}
})

View File

@ -21,6 +21,11 @@ export const privateRoutes = [];
* 公开路由表
*/
export const publicRoutes = [
{
path: "/oatuh_login",
name: "oatuh_login",
component: () => import("@/views/login/oatuh_login")
},
{
path: "/oatuh_login",
name: "oatuh_login",
@ -421,6 +426,7 @@ export const publicRoutes = [
{
path: "/checkpoint",
name: "checkpoint",
redirect: "/checkpoint",
meta: {
title: "环林卡口管理",
icon: "article"
@ -441,6 +447,7 @@ export const publicRoutes = [
{
path: "/forewarning",
name: "forewarning",
redirect: "/forewarning",
meta: {
title: "预警管理",
icon: "article"

View File

@ -132,23 +132,16 @@ export default {
*单点登录
*/
oatuhLogin(ctx, userInfo) {
const {
token,
systemId,
} = userInfo;
const { token, systemId, } = userInfo;
return new Promise((resolve, reject) => {
unifiedLogin({
token,
systemId,
})
.then((data) => {
debugger
unifiedLogin({ token, systemId }).then((data) => {
if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken);
this.commit("user/setDeptId", data.deptList);
this.commit("user/setUserName", data.userName);
setItem("USERNAME", data.userName);
setItem('fzUserId', data.fzUserId)
setItem("SFRH", data.sfrh);
setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo);

View File

@ -6,38 +6,27 @@
<li class="asideItem" v-for="(item, idx) in meun.leftMeun" :key="idx">
<div class="title">{{ item }}</div>
<div class="asideCnt" @click="handless">
<PeoCollection
:jczId="query.id"
v-if="item == '人员数据采集'"
></PeoCollection>
<PlowStatistics
:jczId="query.id"
v-if="item == '流入流出统计'"
></PlowStatistics>
<WarningCount
:jczId="query.id"
v-if="item == '预警统计'"
></WarningCount>
<PeoCollection :jczId="query.id" v-if="item == '人员数据采集'"></PeoCollection>
<PlowStatistics :jczId="query.id" v-if="item == '流入流出统计'"></PlowStatistics>
<WarningCount :jczId="query.id" v-if="item == '预警统计'"></WarningCount>
</div>
</li>
</ul>
<div class="mainBox">
<div class="main-top"><VideoMore></VideoMore></div>
<div class="main-bottom"><VideoFoot></VideoFoot></div>
<div class="main-top">
<VideoMore></VideoMore>
</div>
<div class="main-bottom">
<VideoFoot></VideoFoot>
</div>
</div>
<ul class="asideBox">
<li class="asideItem" v-for="(item, idx) in meun.rightMeun" :key="idx">
<div class="title">{{ item }}</div>
<div class="asideCnt">
<BeOnDuty :jczId="query.id" v-if="item == '值班备勤'"></BeOnDuty>
<CarWarning
:jczId="query.id"
v-if="item == '车辆预警'"
></CarWarning>
<PeoWarning
:jczId="query.id"
v-if="item == '人员预警'"
></PeoWarning>
<CarWarning :jczId="query.id" v-if="item == '车辆预警'"></CarWarning>
<PeoWarning :jczId="query.id" v-if="item == '人员预警'"></PeoWarning>
</div>
</li>
</ul>
@ -71,21 +60,25 @@ const query = computed(() => {
.homeBox {
background: #000;
}
.mainBox_jcz {
position: absolute;
top: 65px;
width: 100%;
height: calc(100vh - 60px);
background: #000;
.asideBox {
width: 420px;
height: 100%;
.asideItem {
height: calc(100% / 3);
background: url("~@/assets/images/bg12.png") no-repeat;
background-size: 100% 100%;
padding: 0 10px;
box-sizing: border-box;
.title {
height: 50px;
line-height: 50px;
@ -96,6 +89,7 @@ const query = computed(() => {
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.asideCnt {
height: calc(100% - 50px);
overflow: hidden;
@ -103,14 +97,17 @@ const query = computed(() => {
}
}
}
.mainBox {
flex: 1 0 0;
margin: 10px;
.main-top {
background: url("~@/assets/images/bg_13.png") no-repeat;
background-size: 100% 100%;
height: 70%;
}
.main-bottom {
height: 30%;
background: url("~@/assets/images/bg_14.png") no-repeat;

View File

@ -2,18 +2,10 @@
<div class="warning-container">
<!-- 标签切换 -->
<div class="tab-container">
<div
class="tab-item"
@click="showchenge(1)"
:class="{ active: show == 1 }"
>
<div class="tab-item" @click="showchenge(1)" :class="{ active: show == 1 }">
<div class="tab-content">值班人员</div>
</div>
<div
class="tab-item"
@click="showchenge(2)"
:class="{ active: show == 2 }"
>
<div class="tab-item" @click="showchenge(2)" :class="{ active: show == 2 }">
<div class="tab-content">值班装备</div>
</div>
</div>
@ -21,15 +13,11 @@
<!-- 预警列表 -->
<div class="warning-list" v-if="show == 2 && warningList">
<div class="warning-card">
<div class="title flex align-center">
<div class="title flex align-center white-text">
<img src="@/assets/images/icon_06.png" alt="" />
值班装备
</div>
<div
class="cardItem flex"
v-for="(item, index) in warningList.qxList"
:key="index"
>
<div class="cardItem flex white-text" v-for="(item, index) in warningList.qxList" :key="index">
<span style="flex: 1">名称{{ item.qxmc }}</span>
<span style="flex: 1">数量{{ item.qxsl }}</span>
</div>
@ -37,27 +25,19 @@
<div class="line mt6 mb6"></div>
<div class="warning-card">
<div class="title flex align-center">
<div class="title flex align-center white-text">
<img src="@/assets/images/icon_06.png" alt="" /> 值班车辆
</div>
<div
class="cardItem"
v-for="(item, index) in warningList.clList"
:key="index"
>
<div class="cardItem white-text" v-for="(item, index) in warningList.clList" :key="index">
车牌号{{ item.cph }}
</div>
</div>
<div class="line mt6 mb6"></div>
<div class="warning-card">
<div class="title flex align-center">
<div class="title flex align-center white-text">
<img src="@/assets/images/icon_06.png" alt="" /> 智能设备
</div>
<div
class="cardItem"
v-for="(item, index) in warningList.sbList"
:key="index"
>
<div class="cardItem white-text" v-for="(item, index) in warningList.sbList" :key="index">
名称{{ item.sbmc }}
</div>
</div>
@ -65,19 +45,13 @@
<Empty :show="warningList == null && show == 2" />
<div class="warning-list" v-if="show == 1 && warningList">
<div class="warning-card">
<div class="title flex align-center">
<div class="title flex align-center white-text">
<img src="@/assets/images/icon_06.png" alt="" />
值班人员
</div>
<div
class="cardItem flex"
v-for="(item, index) in warningList.ryList"
:key="index"
>
<div class="cardItem flex white-text" v-for="(item, index) in warningList.ryList" :key="index">
<span style="flex: 1">名称{{ item.ryXm }}</span>
<span style="flex: 1"
>警种{{ item.ryJzlx == "01" ? "民警" : "辅警" }}</span
>
<span style="flex: 1">警种{{ item.ryJzlx == "01" ? "民警" : "辅警" }}</span>
</div>
</div>
<div class="line mt6 mb6"></div>
@ -189,6 +163,7 @@ getjczqueryById();
flex: 1;
display: flex;
flex-direction: column;
// justify-content: space-between;
.cardItem {
height: 27px;
@ -200,6 +175,7 @@ getjczqueryById();
box-sizing: border-box;
}
}
.line {
width: 100%;
height: 3px;
@ -210,6 +186,7 @@ getjczqueryById();
.warning-image {
width: 100px;
height: 80px;
img {
width: 100%;
height: 100%;
@ -248,5 +225,7 @@ getjczqueryById();
font-size: 12px;
margin-left: 10px;
}
.white-text{
color: #fff;
}
</style>

View File

@ -56,6 +56,7 @@ countWay();
flex: 1;
text-align: center;
position: relative;
color: #fff;
}
.stat-number {

View File

@ -139,7 +139,6 @@ const pageData = reactive({
const Auth = ref(true)
onMounted(() => {
Auth.value = isAuth()
tabHeightFn();
});

View File

@ -1,10 +1,6 @@
<template>
<div class="checkpoint-list noScollLine" v-loading="loading">
<div
class="checkpoint-item"
v-for="(item, index) in checkpoints"
:key="index"
>
<div class="checkpoint-item" v-for="(item, index) in checkpoints" :key="index">
<div class="checkpoint-icon">
<img src="@/assets/images/bg_11.png" alt="环林卡口" />
</div>

View File

@ -149,6 +149,7 @@ getcountCrl();
flex: 1;
text-align: center;
position: relative;
color: #fff;
}
.stat-number {

View File

@ -11,12 +11,9 @@
</div> -->
<div class="zbbb" v-if="query" @click="show = true">值班报备</div>
</div>
<el-dialog v-model="show" title="Shipping address">
<el-dialog v-model="show" width="800px" title="值班报备">
<div style="height: 50vh; overflow: auto" v-if="show">
<zbbb
:row="row"
@close="close"
:dic="{
<zbbb :row="row" @close="close" :dic="{
D_BZ_RYMFJLB,
D_BZ_JYQXFL,
D_BZ_XFQDJ,
@ -24,8 +21,7 @@
D_BZ_JLLX,
D_QW_BBZT,
D_QW_BC_KTS
}"
/>
}" />
</div>
</el-dialog>
</template>
@ -118,12 +114,14 @@ function goPath() {
background: rgba(0, 0, 0, 0.8);
z-index: 2;
}
.home-head-box {
position: relative;
width: 100%;
height: 65px;
z-index: 2;
background: #0e1b29;
&::after {
content: "";
position: absolute;
@ -136,6 +134,7 @@ function goPath() {
background: url("~@/assets/images/home_head.png") no-repeat center center;
background-size: 100% 100%;
}
.title {
font-size: 36px;
left: 50%;
@ -147,12 +146,14 @@ function goPath() {
-webkit-text-fill-color: transparent;
cursor: pointer;
}
.time {
font-family: "DigifaceWide";
color: #fff;
left: 25%;
top: 10px;
}
.wd {
right: 25%;
top: 12px;
@ -160,6 +161,7 @@ function goPath() {
font-family: "DigifaceWide";
color: #fff;
}
.zbbb {
position: absolute;
right: 20px;
@ -172,6 +174,7 @@ function goPath() {
font-size: 16px;
background: url("~@/assets/images/btnbb.png") no-repeat center center;
background-size: 100% 100%;
color: #fff;
cursor: pointer;
}
}

View File

@ -3,22 +3,12 @@
<div class="flex align-center just-between box">
<div class="flex align-center">
报备单位
<MOSTY.Department
v-model="listQuery.ssbmdm"
placeholder="请选择部门"
@getDepValue="changeDep"
/>
<MOSTY.Department v-model="listQuery.ssbmdm" placeholder="请选择部门" @getDepValue="changeDep" />
</div>
<!-- v-if="['add', 'edit'].includes(pageType)" -->
<el-button size="small" type="primary" @click="_onSave" :disabled="loding">保存</el-button>
</div>
<el-form
ref="formRef"
class="info"
:model="listQuery"
:inline="true"
:rules="rules"
>
<el-form ref="formRef" class="info" :model="listQuery" :inline="true" :rules="rules">
<!-- <div class="bblxItem">
<div class="btItem">环林卡口设置</div>
<div class="info">
@ -50,37 +40,18 @@
<div class="btItem">班次设置</div>
<div class="info">
<el-form-item prop="bcKssj" label=" ">
<el-time-picker
v-model="listQuery.bcKssj"
:disabled="isDetail"
placeholder="开始时间"
format="HH:mm:ss"
value-format="HH:mm:ss"
/>
<el-time-picker v-model="listQuery.bcKssj" :disabled="isDetail" placeholder="开始时间" format="HH:mm:ss"
value-format="HH:mm:ss" />
</el-form-item>
<el-form-item prop="bcKtsDict" label=" ">
<el-select
clearable
v-model="listQuery.bcKtsDict"
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dic.D_QW_BC_KTS"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
<el-select clearable v-model="listQuery.bcKtsDict" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in dic.D_QW_BC_KTS" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="bcJssj" label=" ">
<el-time-picker
v-model="listQuery.bcJssj"
:disabled="isDetail"
format="HH:mm:ss"
placeholder="结束时间"
value-format="HH:mm:ss"
/>
<el-time-picker v-model="listQuery.bcJssj" :disabled="isDetail" format="HH:mm:ss" placeholder="结束时间"
value-format="HH:mm:ss" />
</el-form-item>
</div>
</div>
@ -88,42 +59,21 @@
<div class="btItem">负责人</div>
<div class="info">
<el-form-item>
<ChooseTable
:deptment="deptment"
@change="handleFzr"
v-if="!isDetail"
:configer="{
<ChooseTable :deptment="deptment" @change="handleFzr" v-if="!isDetail" :configer="{
width: 700,
lx: 'mj',
rowKey: 'id',
isRadio: true
}"
:dic="props.dic"
/>
}" :dic="props.dic" />
</el-form-item>
<el-form-item prop="fzrXm" label=" ">
<el-input
readonly
v-model="listQuery.fzrXm"
placeholder="负责人"
clearable
/>
<el-input readonly v-model="listQuery.fzrXm" placeholder="负责人" clearable />
</el-form-item>
<el-form-item prop="fzrSfzh" label=" ">
<el-input
readonly
v-model="listQuery.fzrSfzh"
placeholder="身份证"
clearable
/>
<el-input readonly v-model="listQuery.fzrSfzh" placeholder="身份证" clearable />
</el-form-item>
<el-form-item prop="fzrLxdh" label=" ">
<el-input
readonly
v-model="listQuery.fzrLxdh"
placeholder="负责人电话"
clearable
/>
<el-input readonly v-model="listQuery.fzrLxdh" placeholder="负责人电话" clearable />
</el-form-item>
</div>
</div>
@ -136,17 +86,11 @@
<div class="num">
{{ mjData ? mjData.length : 0 }}
</div>
<ChooseTable
:deptment="deptment"
v-if="!isDetail"
:dic="props.dic"
:configer="{
<ChooseTable :deptment="deptment" v-if="!isDetail" :dic="props.dic" :configer="{
lx: 'mj',
rowKey: 'ryid',
placement: 'top-start'
}"
v-model="mjData"
/>
}" v-model="mjData" />
<div class="peolist">
<el-tag type="primary" v-for="item in mjData" :key="item">{{
item.jlxm || item.xm
@ -163,13 +107,8 @@
</div>
<!-- :deptment="props.dep"
:dic="props.dic" -->
<ChooseTable
:deptment="deptment"
:dic="props.dic"
v-if="!isDetail"
:configer="{ lx: 'fj', placement: 'top-start' }"
v-model="fjData"
/>
<ChooseTable :deptment="deptment" :dic="props.dic" v-if="!isDetail"
:configer="{ lx: 'fj', placement: 'top-start' }" v-model="fjData" />
<div class="peolist">
<el-tag type="primary" v-for="item in fjData" :key="item">{{
item.jlxm || item.xm
@ -189,24 +128,13 @@
<div class="num">
{{ listQuery.zdList ? listQuery.zdList.length : 0 }}
</div>
<ChooseTable
:dic="props.dic"
v-if="!isDetail"
:deptment="deptment"
:configer="{
<ChooseTable :dic="props.dic" v-if="!isDetail" :deptment="deptment" :configer="{
lx: 'znzb',
rowKey: 'id',
placement: 'top-start'
}"
v-model="listQuery.zdList"
/>
}" v-model="listQuery.zdList" />
<div class="peolist">
<el-tag
type="primary"
v-for="item in listQuery.zdList"
:key="item"
>{{ item.sbmc }}</el-tag
>
<el-tag type="primary" v-for="item in listQuery.zdList" :key="item">{{ item.sbmc }}</el-tag>
</div>
</div>
</el-form-item>
@ -257,24 +185,13 @@
<div class="num">
{{ listQuery.clList ? listQuery.clList.length : 0 }}
</div>
<ChooseTable
:deptment="deptment"
v-if="!isDetail"
:dic="props.dic"
:configer="{
<ChooseTable :deptment="deptment" v-if="!isDetail" :dic="props.dic" :configer="{
lx: 'cl',
rowKey: 'id',
placement: 'top-start'
}"
v-model="listQuery.clList"
/>
}" v-model="listQuery.clList" />
<div class="peolist">
<el-tag
type="primary"
v-for="item in listQuery.clList"
:key="item"
>{{ item.cph }}</el-tag
>
<el-tag type="primary" v-for="item in listQuery.clList" :key="item">{{ item.cph }}</el-tag>
</div>
</div>
</el-form-item>
@ -285,11 +202,7 @@
<div class="btItem">警用器械</div>
<div class="info">
<el-form-item>
<div
v-for="(item, index) in listQuery.qxList"
:key="index"
style="width: 50%; margin-bottom: 10px"
>
<div v-for="(item, index) in listQuery.qxList" :key="index" style="width: 50%; margin-bottom: 10px">
<div class="flex">
<div style="width: 30%">{{ item.qxmc }}</div>
<el-input-number v-model="item.qxsl" :step="1" />
@ -352,8 +265,8 @@ const ChegeMj = (val) => {
xfllld: item.id,
ryXm: item.xm,
rysfzh: item.sfzh,
ryJzlx: item.fl,
ryMfjilb: item.ryid,
ryMfjlb: item.fl,
ryid:item.ryid,
ryLxdh: item.lxdh
};
});
@ -365,8 +278,8 @@ const fz = (val) => {
id: item.xfllld,
xm: item.ryXm,
sfzh: item.rysfzh,
fl: item.ryJzlx,
ryid: item.ryMfjilb,
fl: item.ryMfjlb,
ryid:item.ryid,
lxdh: item.ryLxdh
};
});
@ -453,7 +366,6 @@ const loding = ref(false);
const _onSave = () => {
formRef.value.validate().then(async () => {
const data = [...mjData.value, ...fjData.value];
listQuery.value.ryList = ChegeMj(data);
const time = new Date();
listQuery.value.bbSjBbrq = timeValidate(time);
@ -568,6 +480,7 @@ const changeJCZ = (val) => {
align-items: center;
margin-bottom: 20px;
}
.cntinfo {
height: calc(100% - 70px);
overflow: hidden;
@ -575,12 +488,14 @@ const changeJCZ = (val) => {
color: #000;
}
}
.bblxItem {
width: 100%;
line-height: 40px;
min-height: 40px;
display: flex;
color: #000;
.btItem {
width: 180px;
padding: 7px 0;
@ -588,17 +503,20 @@ const changeJCZ = (val) => {
margin-top: 1px;
text-align: center;
}
.info {
flex: 1;
background: #0000000a;
margin-top: 1px;
padding: 10px;
box-sizing: border-box;
.gapline {
height: 1px;
border-top: 1px dashed #66cbff;
margin: 4px 0;
}
.dl-car {
min-width: 200px;
display: inline-block;
@ -607,6 +525,7 @@ const changeJCZ = (val) => {
padding: 0;
border-radius: 5px;
position: relative;
dt {
display: flex;
justify-content: space-between;
@ -621,12 +540,14 @@ const changeJCZ = (val) => {
height: 30px;
border-radius: 5px 5px 0 0;
}
.peo {
border-bottom: solid 1px #01d608;
background: #dbf3cf;
color: #339d00;
}
}
.dl-car::before {
position: absolute;
content: "";
@ -637,6 +558,7 @@ const changeJCZ = (val) => {
background: url("~@/assets/images/peo.png");
}
}
.num {
width: 50px;
height: 30px;
@ -647,6 +569,7 @@ const changeJCZ = (val) => {
border-radius: 4px;
margin-right: 10px;
}
.subBtn {
padding-left: 100px;
box-sizing: border-box;
@ -656,9 +579,11 @@ const changeJCZ = (val) => {
::v-deep .el-form-item--default {
margin-bottom: 0;
}
::v-deep .el-form-item {
margin-bottom: 10px;
}
::v-deep .el-form--inline .el-form-item {
margin-right: 20px;
margin-top: 10px;
@ -671,9 +596,11 @@ const changeJCZ = (val) => {
color: #fff;
cursor: pointer;
}
.box {
margin-bottom: 10px;
}
::v-deep .el-form-item__label {
padding: 0;
}

View File

@ -26,7 +26,7 @@ const handleLogin = (e) => {
store.dispatch("user/oatuhLogin", e).then((res) => {
// 登录后操作
if (res.deptList.length === 1) {
// window.location.hash = "/";
window.location.hash = "/";
} else {
deptList.value = [...res.deptList];
loginDialog.value = true;

View File

@ -4,8 +4,8 @@ function resolve(dir) {
return path.join(__dirname, dir);
}
// const serverHost = "http://192.192.8.9:8006";
const serverHost = "http://192.168.0.231:8006"
const serverHost = "http://47.108.232.77:9537";
// const serverHost = "http://192.168.0.231:8006"
// const serverHost = "http://127.0.0.1:8006"
module.exports = {
publicPath: "./",

9
ylth/index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d22bd3e"],{f141:function(t,e,n){"use strict";n.r(e);var o=n("7a23"),c=n("5502"),a=n("5d2d"),u={__name:"oatuh_login",setup(t){const e=Object(o["ref"])(!1),n=Object(o["ref"])([]),u=Object(c["b"])();function i(){let t=location.hash.slice(20)||null;null!=t?(t=t.replace(/\ +/g,""),Object(a["c"])("SSOTOKEN",t),l({token:t})):window.location.href="http://155.240.22.102:40992"}const l=t=>{u.dispatch("user/oatuhLogin",t).then(t=>{1===t.deptList.length?window.location.hash="/":(n.value=[...t.deptList],e.value=!0,authorization.value=t.jwtToken)})};return Object(o["onMounted"])(()=>{i()}),(t,e)=>null}};const i=u;e["default"]=i}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
ylth/ylth.zip Normal file

Binary file not shown.