lcw
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api1="/mosty-api"
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const apibase = "/mosty-api/mosty-jmxf";
|
||||
|
||||
@ -311,7 +312,7 @@ export const http = {
|
||||
// 获取HLS地址
|
||||
previewURLs: (params) => {
|
||||
return request({
|
||||
url: apibase + "/tbYsSxt/previewURLs",
|
||||
url: api1+"/mosty-yszx/tbYsSxt/previewURLs",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
|
||||
@ -1,26 +1,12 @@
|
||||
<template>
|
||||
<div class="departmentTree-box" :style="{ width: width, height: '100%' }">
|
||||
<div class="depar_hear">
|
||||
<el-input
|
||||
v-model="listQuery.deptname"
|
||||
v-if="filterable"
|
||||
clearable
|
||||
:debounce="500"
|
||||
@input="filterTextChange"
|
||||
placeholder="请输入筛选条件"
|
||||
/>
|
||||
<el-input v-model="listQuery.deptname" v-if="filterable" clearable :debounce="500" @input="filterTextChange"
|
||||
placeholder="请输入筛选条件" />
|
||||
</div>
|
||||
<div class="depar_foot">
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
class="filter-tree"
|
||||
:props="endProps"
|
||||
lazy
|
||||
:load="loadNode"
|
||||
@node-click="nodeClick"
|
||||
:filter-node-method="filterNode"
|
||||
:data="treeData"
|
||||
/>
|
||||
<el-tree ref="treeRef" class="filter-tree" :props="endProps" lazy :load="loadNode" @node-click="nodeClick"
|
||||
:filter-node-method="filterNode" :data="treeData" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -52,9 +38,13 @@ const props = defineProps({
|
||||
default: COMPONENT_WIDTH,
|
||||
type: String
|
||||
},
|
||||
isBmId:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
isBmId: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
propValue:{
|
||||
type:String,
|
||||
default:"id"
|
||||
}
|
||||
});
|
||||
const listQuery = ref({
|
||||
@ -67,7 +57,7 @@ const node_had = ref([]);
|
||||
const resolve_had = ref([]);
|
||||
//防抖处理
|
||||
const filterTextChange = debounce(inputChange, 500);
|
||||
onMounted(() => {});
|
||||
onMounted(() => { });
|
||||
//获取部门数据
|
||||
function getTreeData() {
|
||||
selectDeptPage(listQuery.value).then((res) => {
|
||||
@ -120,9 +110,9 @@ const filterNode = (value, data) => {
|
||||
};
|
||||
|
||||
const nodeClick = (node) => {
|
||||
if(props.isBmId){
|
||||
if (props.isBmId) {
|
||||
emits("update:modelValue", node.id);
|
||||
}else{
|
||||
} else {
|
||||
emits("update:modelValue", node.orgCode);
|
||||
}
|
||||
};
|
||||
@ -145,6 +135,7 @@ const handleChange = (e) => {
|
||||
.depar_hear {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.depar_foot {
|
||||
height: calc(100% - 32px);
|
||||
overflow: auto;
|
||||
@ -152,6 +143,7 @@ const handleChange = (e) => {
|
||||
width: 100%;
|
||||
min-width: 300px;
|
||||
}
|
||||
|
||||
.departmentTree-box {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="video-more-container">
|
||||
<el-carousel style="height: 100%;" motion-blur indicator-position="none" :autoplay="false"
|
||||
@change="handleCarouselChange">
|
||||
<el-carousel-item v-for="(item,index) in sbList" :key="index" >
|
||||
<div class="video-grid" v-if="activeIndex==index">
|
||||
<div v-for="(items,indexs) in item" :key="indexs" class="video-cell">
|
||||
@change="handleCarouselChange">
|
||||
<el-carousel-item v-for="(item, index) in sbList" :key="index">
|
||||
<div class="video-grid" v-if="activeIndex == index">
|
||||
<div v-for="(items, indexs) in item" :key="indexs" class="video-cell">
|
||||
<WsIframe :sbbh="items.sbbh" />
|
||||
</div>
|
||||
</div>
|
||||
@ -14,21 +14,21 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref ,onMounted} from 'vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
import WsIframe from '@/components/wsIframe/index.vue'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const activeIndex = ref(0)
|
||||
const handleCarouselChange = (index) => {
|
||||
activeIndex.value=index
|
||||
activeIndex.value = index
|
||||
}
|
||||
const sbList = ref([1])
|
||||
onMounted(()=>{
|
||||
onMounted(() => {
|
||||
emitter.on("getSxtGetList", (res) => {
|
||||
sbList.value= Array.from({ length:Math.ceil(res.length / 4)==0?1:Math.ceil(res.length / 4) }, (_, row) => {
|
||||
return res.slice(row * 4, row * 4 + 4)
|
||||
sbList.value = Array.from({ length: Math.ceil(res.length / 4) == 0 ? 1 : Math.ceil(res.length / 4) }, (_, row) => {
|
||||
return res.slice(row * 4, row * 4 + 4)
|
||||
}
|
||||
);
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
<el-link type="primary" @click="endreporting( row.id)" v-if="row.bbZt !== '03'">结束报备</el-link>
|
||||
<el-link type="primary" @click="endreporting( row.id)" v-if="row.bbzt && row.bbzt !== '03'">结束报备</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<div class="my_transfer">
|
||||
<div class="tree">
|
||||
<MOSTY.DepartmentTree width="300px" placeholder="管理部门ID" clearable filterable :isBmId="true"
|
||||
v-model="listQuery.deptId" />
|
||||
v-model="linQuery.deptId" />
|
||||
</div>
|
||||
<div class="left">
|
||||
<div class="serch">
|
||||
@ -48,8 +48,8 @@
|
||||
</el-table>
|
||||
<div>
|
||||
<el-pagination class="pagination" @size-change="handleSizeChangeUser"
|
||||
@current-change="handleCurrentChangeUser" :current-page="linQuery.pageCurrent"
|
||||
:page-sizes="[10, 20, 50, 100]" :page-size="linQuery.pageSize"
|
||||
@current-change="handleCurrentChangeUser" :current-page="linQuery.current"
|
||||
:page-sizes="[10, 20, 50, 100]" :page-size="linQuery.size"
|
||||
layout="total, sizes, prev, pager, next, jumper" :total="totalUser">
|
||||
</el-pagination>
|
||||
</div>
|
||||
@ -74,7 +74,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, getCurrentInstance, onMounted } from "vue";
|
||||
import { ref, reactive, getCurrentInstance, onMounted,watch } from "vue";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { jcztbQwXfll } from "@/api/mosty-jcz.js";
|
||||
import { Right, Back } from "@element-plus/icons-vue";
|
||||
@ -84,10 +84,6 @@ const { D_BZ_SF } = proxy.$dict("D_BZ_SF");
|
||||
|
||||
const formRef = ref(null);
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({
|
||||
file: "",
|
||||
spbt: ""
|
||||
});
|
||||
const pageInfo = {
|
||||
edit: {
|
||||
title: "编辑",
|
||||
@ -111,7 +107,7 @@ const searchConfiger = ref({
|
||||
idEntityCard: "",
|
||||
fzzt: ""
|
||||
});
|
||||
const linQuery = reactive({ pageSize: 10, pageCurrent: 1 });
|
||||
const linQuery = reactive({ size: 10, current: 1,deptId:"" });
|
||||
const totalUser = ref(0);
|
||||
const getBaseselectPage = () => {
|
||||
const promes = { ...linQuery, ...searchConfiger.value };
|
||||
@ -121,6 +117,7 @@ const getBaseselectPage = () => {
|
||||
});
|
||||
};
|
||||
getBaseselectPage();
|
||||
|
||||
//左边选中数据
|
||||
const leftdata = ref([]);
|
||||
//右边选中数据
|
||||
@ -205,13 +202,21 @@ const _onSave = () => {
|
||||
|
||||
// 分页查询
|
||||
const handleSizeChangeUser = (e) => {
|
||||
linQuery.pageSize = e;
|
||||
getBaseselectPage;
|
||||
linQuery.size = e;
|
||||
getBaseselectPage();
|
||||
};
|
||||
const handleCurrentChangeUser = (e) => {
|
||||
linQuery.pageCurrent = e;
|
||||
getBaseselectPage;
|
||||
linQuery.current = e;
|
||||
getBaseselectPage();
|
||||
};
|
||||
watch(()=>linQuery.deptId,(val)=>{
|
||||
if(val){
|
||||
getBaseselectPage()
|
||||
}
|
||||
},
|
||||
{
|
||||
deep:true,immediate: true
|
||||
})
|
||||
//页面关闭
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
|
||||
@ -45,14 +45,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<el-form ref="elform" :model="addForm" :rules="rules" :inline="true" label-position="top">
|
||||
<div style="
|
||||
width: 16%;
|
||||
display: flex;
|
||||
margin-bottom: 10px;
|
||||
">
|
||||
<div style=" width: 100%; ">
|
||||
<MOSTY.Upload width="100%" :limit="1" :isImg="true" v-model="addForm.tp" :disableds="forbidden"/>
|
||||
</div>
|
||||
<div style="width: 16%; display: flex; margin-bottom: 10px">
|
||||
<div style="width: 100%">
|
||||
<MOSTY.Upload width="100%" :limit="1" :isImg="true" v-model="addForm.tp" :disableds="forbidden" />
|
||||
</div>
|
||||
<!-- <div style="position: relative; height: 100px">
|
||||
<el-upload class="avatar-uploader" action="/mosty-api/mosty-base/minio/image/upload/id" :on-success="upImg"
|
||||
:show-file-list="false">
|
||||
@ -147,24 +143,26 @@ import EditAddForm from "./components/editAddForm.vue";
|
||||
import { jczgetXfllList } from "@/api/mosty-jcz.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM, D_BZ_WHCD, D_BZ_HYZK } = proxy.$dict(
|
||||
"D_BZ_SF",
|
||||
"D_BZ_MZ",
|
||||
"D_BZ_XB",
|
||||
"D_BZ_ZZMM",
|
||||
"D_BZ_WHCD",
|
||||
"D_BZ_HYZK"
|
||||
);
|
||||
const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM, D_BZ_WHCD, D_BZ_HYZK } =
|
||||
proxy.$dict(
|
||||
"D_BZ_SF",
|
||||
"D_BZ_MZ",
|
||||
"D_BZ_XB",
|
||||
"D_BZ_ZZMM",
|
||||
"D_BZ_WHCD",
|
||||
"D_BZ_HYZK"
|
||||
);
|
||||
const urlImg = ref("/mosty-api/mosty-base/minio/image/download/");
|
||||
const imgUrl = ref("");
|
||||
const dialogFormVisible = ref(false);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
{
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
},{
|
||||
},
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
placeholder: "请输入姓名",
|
||||
@ -175,7 +173,7 @@ const searchConfiger = ref([
|
||||
prop: "sfzh",
|
||||
placeholder: "请输入证件号码",
|
||||
showType: "input"
|
||||
},
|
||||
}
|
||||
// {
|
||||
// label: "是否离职",
|
||||
// prop: "xtSjzt",
|
||||
@ -183,9 +181,8 @@ const searchConfiger = ref([
|
||||
// showType: "select",
|
||||
// options: D_BZ_SF
|
||||
// },
|
||||
|
||||
]);
|
||||
const elform = ref(null)
|
||||
const elform = ref(null);
|
||||
const detailDiloag = ref();
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
@ -209,7 +206,7 @@ const pageData = reactive({
|
||||
{ label: "专业技能", prop: "zyjn" }
|
||||
]
|
||||
});
|
||||
const addForm = ref({})
|
||||
const addForm = ref({});
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
});
|
||||
@ -241,9 +238,9 @@ function submit() {
|
||||
elform.value.validate((valid) => {
|
||||
if (valid) {
|
||||
let data = addForm.value;
|
||||
qcckPut(data, '/mosty-jcz/tbQwXfll').then(res => {
|
||||
dialogFormVisible.value = false
|
||||
})
|
||||
qcckPut(data, "/mosty-jcz/tbQwXfll").then((res) => {
|
||||
dialogFormVisible.value = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -257,17 +254,17 @@ function deletImg() {
|
||||
}
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageNum = val;
|
||||
getjczgetXfllList()
|
||||
getjczgetXfllList();
|
||||
};
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
getjczgetXfllList()
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
if (type == 'edit') {
|
||||
getMjDetail(row.id)
|
||||
if (type == "edit") {
|
||||
getMjDetail(row.id);
|
||||
} else {
|
||||
detailDiloag.value.init(type, row);
|
||||
}
|
||||
@ -292,12 +289,12 @@ function delDictItem(e) {
|
||||
});
|
||||
}
|
||||
const getMjDetail = (id) => {
|
||||
qcckGet({}, `/mosty-jcz/tbQwXfll/${id}`).then(res => {
|
||||
qcckGet({}, `/mosty-jcz/tbQwXfll/${id}`).then((res) => {
|
||||
addForm.value = res;
|
||||
imgUrl.value = res.tp ? urlImg.value + res.tp : "";
|
||||
dialogFormVisible.value = true
|
||||
})
|
||||
}
|
||||
dialogFormVisible.value = true;
|
||||
});
|
||||
};
|
||||
const searchBox = ref(null);
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<img src="@/assets/images/tc/zbfj.png" alt="" srcset="" />
|
||||
</div>
|
||||
<div class="occupation">
|
||||
值班民警:<span class="number">{{ BbMag?.ryList.length }}</span>
|
||||
值班民警:<span class="number">{{ BbMag.mjsl?BbMag.mjsl:0 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="dutyList flex just-between align-center">
|
||||
@ -48,16 +48,12 @@
|
||||
<img src="@/assets/images/tc/zbfj.png" alt="" srcset="" />
|
||||
</div>
|
||||
<div class="occupation">
|
||||
值班民警:<span class="number">{{ BbMag?.ryList.length }}</span>
|
||||
值班辅警:<span class="number">{{ BbMag.fjsl?BbMag.fjsl:0 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contentRight">
|
||||
<div
|
||||
class="flex align-center right just-between"
|
||||
v-for="(item, index) in ArrList"
|
||||
:key="index"
|
||||
>
|
||||
<div class="flex align-center right just-between" v-for="(item, index) in ArrList" :key="index">
|
||||
<div>{{ item.name }}</div>
|
||||
<div class="number">
|
||||
<span>{{ item.count }}</span>
|
||||
@ -81,7 +77,7 @@ import { useRouter } from "vue-router";
|
||||
const props = defineProps({
|
||||
JczData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
default: () => { }
|
||||
}
|
||||
});
|
||||
|
||||
@ -89,6 +85,15 @@ const BbMag = ref({ ryList: [] });
|
||||
const getjczqueryByIdFeign = () => {
|
||||
jczqueryById({ jczid: props.JczData.id }).then((res) => {
|
||||
BbMag.value = res;
|
||||
if (res.ryList) {
|
||||
BbMag.value.mjsl = res.ryList.filter((el) => {
|
||||
return el.ryMfjlb == '01'
|
||||
}).length
|
||||
BbMag.value.fjsl = res.ryList.filter((el) => {
|
||||
return el.ryMfjlb == '02'
|
||||
}).length
|
||||
}
|
||||
|
||||
});
|
||||
};
|
||||
getjczqueryByIdFeign();
|
||||
@ -224,15 +229,18 @@ countWays();
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
padding: 20px 0;
|
||||
|
||||
.cloes {
|
||||
width: 23px;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 92%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.bt {
|
||||
margin-top: 14px;
|
||||
color: #fff;
|
||||
@ -247,6 +255,7 @@ countWays();
|
||||
font-family: "微软雅黑";
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.headbut {
|
||||
width: 159px;
|
||||
margin-right: 20px;
|
||||
@ -261,15 +270,19 @@ countWays();
|
||||
.content {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
|
||||
.contentLeft {
|
||||
width: 50%;
|
||||
|
||||
.leftImg {
|
||||
width: 97px;
|
||||
height: 98px;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.leftMag {
|
||||
font-size: 20px;
|
||||
height: 98px;
|
||||
@ -282,33 +295,41 @@ countWays();
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-family: "方正黑体";
|
||||
}
|
||||
}
|
||||
|
||||
.dutyList {
|
||||
padding-left: 16px;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.dutyImg {
|
||||
width: 27px;
|
||||
}
|
||||
|
||||
.occupation {
|
||||
font-size: 20px;
|
||||
font-family: "方正黑体";
|
||||
width: calc(100% - 70px);
|
||||
|
||||
.number {
|
||||
color: #02fafb;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.contentRight {
|
||||
width: 50%;
|
||||
padding: 0 20px;
|
||||
|
||||
.right {
|
||||
font-size: 18px;
|
||||
font-family: "方正黑体";
|
||||
margin-bottom: 11px;
|
||||
|
||||
.number {
|
||||
width: 40%;
|
||||
color: #02fafb;
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
v-model="listQuery.jczList"
|
||||
:dic="props.dic"
|
||||
/>
|
||||
|
||||
<div class="peolist" v-if="listQuery.jczList">
|
||||
<el-tag type="primary" :key="item">{{
|
||||
listQuery.jczList.jczmc
|
||||
|
||||
Reference in New Issue
Block a user