lcw
This commit is contained in:
@ -7,7 +7,8 @@
|
|||||||
<Editor :style="`height: ${props.heightNumber}px; overflow-y: hidden`" v-model="textContent" :defaultConfig="editorConfig" :mode="mode" @onCreated="handleCreated" @onChange="handChange" />
|
<Editor :style="`height: ${props.heightNumber}px; overflow-y: hidden`" v-model="textContent" :defaultConfig="editorConfig" :mode="mode" @onCreated="handleCreated" @onChange="handChange" />
|
||||||
</div>
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<!-- <el-button type="primary">暂存</el-button> -->
|
<el-button type="primary" @click="SaveReport">保存</el-button>
|
||||||
|
<!-- <el-button type="primary" @click="downloadWithStyles">历史报告</el-button> -->
|
||||||
<el-button type="primary" @click="downloadWithStyles">下载</el-button>
|
<el-button type="primary" @click="downloadWithStyles">下载</el-button>
|
||||||
<el-button type="primary" @click="close">取消</el-button>
|
<el-button type="primary" @click="close">取消</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -47,7 +48,7 @@ const mode = "default";
|
|||||||
const toolbarConfig = {
|
const toolbarConfig = {
|
||||||
excludeKeys: ["blockquote", "codeBlock"] //清除不必要的工具,引用和代码块
|
excludeKeys: ["blockquote", "codeBlock"] //清除不必要的工具,引用和代码块
|
||||||
};
|
};
|
||||||
const emits = defineEmits(["update:textContent", "changeFn","update:modelValue"]);
|
const emits = defineEmits(["update:textContent", "changeFn","update:modelValue","SaveReport"]);
|
||||||
//编辑器配置
|
//编辑器配置
|
||||||
const editorConfig = {
|
const editorConfig = {
|
||||||
withCredentials: true, //允许跨域
|
withCredentials: true, //允许跨域
|
||||||
@ -122,6 +123,9 @@ const downloadWithStyles = () => {
|
|||||||
|
|
||||||
saveAs(blob, 'styled-document.doc');
|
saveAs(blob, 'styled-document.doc');
|
||||||
};
|
};
|
||||||
|
const SaveReport = () => {
|
||||||
|
emits("SaveReport",props.textContent)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -17,8 +17,10 @@
|
|||||||
<template #jqlbdm="{ row }">
|
<template #jqlbdm="{ row }">
|
||||||
<DictTag :tag="false" :value="row.jqlbdm" :options="dict.JQLB" />
|
<DictTag :tag="false" :value="row.jqlbdm" :options="dict.JQLB" />
|
||||||
</template>
|
</template>
|
||||||
|
<template #controls="{ row }">
|
||||||
</MyTable>
|
<el-link type="primary" @click="addEdit( row)">详情</el-link>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
...pageData.pageConfiger,
|
...pageData.pageConfiger,
|
||||||
total: pageData.total
|
total: pageData.total
|
||||||
@ -26,6 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<Particulars ref="particulars" :dic="dict"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -33,6 +36,7 @@
|
|||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import Particulars from "./particulars.vue";
|
||||||
import { qcckPost } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
|
import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
@ -58,13 +62,12 @@ const onSearch = (val) => {
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [], //表格数据
|
tableData: [{ypmc:"xxx"}], //表格数据
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
showSelectType: "null",
|
showSelectType: "null",
|
||||||
loading: false,
|
loading: false,
|
||||||
haveControls: false
|
|
||||||
},
|
},
|
||||||
total: 0,
|
total: 0,
|
||||||
pageConfiger: {
|
pageConfiger: {
|
||||||
@ -136,7 +139,10 @@ const init = (val, lxs) => {
|
|||||||
tabHeightFn()
|
tabHeightFn()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const particulars=ref()
|
||||||
|
const addEdit = (row) => {
|
||||||
|
particulars.value.init(row)
|
||||||
|
}
|
||||||
|
|
||||||
defineExpose({ init })
|
defineExpose({ init })
|
||||||
</script>
|
</script>
|
||||||
|
@ -0,0 +1,253 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="titleValue"
|
||||||
|
width="1400px"
|
||||||
|
:model-value="modelValue"
|
||||||
|
append-to-body
|
||||||
|
@close="closed"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
|
||||||
|
<el-form-item label="报告名称">
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入报告名称"
|
||||||
|
v-model="listQuery.bgmc"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="success" @click="handleFilter">查询</el-button>
|
||||||
|
<el-button type="info" @click="reset"> 重置 </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div
|
||||||
|
class="tabBox"
|
||||||
|
:class="props.Single ? 'tabBoxRadio' : ''"
|
||||||
|
:key="keyVal"
|
||||||
|
style="margin-top: 0px"
|
||||||
|
>
|
||||||
|
<el-table
|
||||||
|
ref="multipleUserRef"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
:data="tableData"
|
||||||
|
v-loading="loading"
|
||||||
|
border
|
||||||
|
:row-key="keyid"
|
||||||
|
style="width: 100%"
|
||||||
|
height="450"
|
||||||
|
>
|
||||||
|
<!-- <el-table-column
|
||||||
|
type="selection"
|
||||||
|
width="55"
|
||||||
|
:reserve-selection="true"
|
||||||
|
/> -->
|
||||||
|
<el-table-column prop="bgmc" align="center" label="报告名称" />
|
||||||
|
<el-table-column prop="scsj" align="center" label="保存时间" />
|
||||||
|
<el-table-column align="center" label="操作">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button type="primary" size="mini" @click="deletBg(row)">删除</el-button>
|
||||||
|
<el-button type="primary" size="mini" @click="onComfirm(row.bgnr)">详情</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="fenye" :style="{ top: tableHeight + 'px' }">
|
||||||
|
<el-pagination
|
||||||
|
class="pagination"
|
||||||
|
@pageSize-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="listQuery.pageCurrent"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-pageSize="listQuery.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="closed">取消</el-button>
|
||||||
|
<!-- <el-button type="primary" @click="onComfirm">确认</el-button> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
import { qcckGet ,qcckDelete} from "@/api/qcckApi.js";
|
||||||
|
import { defineProps, ref, getCurrentInstance, watch } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
titleValue: {
|
||||||
|
type: String,
|
||||||
|
default: "查看报告"
|
||||||
|
},
|
||||||
|
LeaderType: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
//是否单选
|
||||||
|
Single: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
roleIds: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
}, chageData: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const loading = ref(false);
|
||||||
|
const total = ref(0);
|
||||||
|
const listQuery = ref({
|
||||||
|
pageCurrent: 1,
|
||||||
|
pageSize: 20
|
||||||
|
});
|
||||||
|
|
||||||
|
const keyVal = ref();
|
||||||
|
const multipleUserRef = ref(null);
|
||||||
|
const multipleSelectionUser = ref([]);
|
||||||
|
const tableData = ref([]);
|
||||||
|
const emits = defineEmits(["update:modelValue", "choosed"]);
|
||||||
|
const keyid = (row) => {
|
||||||
|
return row.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
const closed = () => {
|
||||||
|
emits("update:modelValue", false);
|
||||||
|
};
|
||||||
|
const reset = () => {
|
||||||
|
listQuery.value = { pageCurrent: 1, pageSize: 20 };
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 为用户分配角色
|
||||||
|
const onComfirm = (val) => {
|
||||||
|
// const userList = multipleSelectionUser.value;
|
||||||
|
// let list = [];
|
||||||
|
// let listId = [];
|
||||||
|
// userList.forEach((val) => {
|
||||||
|
// if (listId.indexOf(val.id) == -1) {
|
||||||
|
// list.push(val);
|
||||||
|
// listId.push(val.id);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
emits("choosed", val);
|
||||||
|
closed();
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* pageSize 改变触发
|
||||||
|
*/
|
||||||
|
const handleSizeChange = (currentSize) => {
|
||||||
|
listQuery.value.pageSize = currentSize;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* 页码改变触发
|
||||||
|
*/
|
||||||
|
const handleCurrentChange = (currentPage) => {
|
||||||
|
listQuery.value.pageCurrent = currentPage;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
const chageDatas=ref()
|
||||||
|
// watch(() => props.chageData, (val) => {
|
||||||
|
// chageDatas.value = val;
|
||||||
|
// getListData()
|
||||||
|
// },{deep:true,immediate:true})
|
||||||
|
const getListData = () => {
|
||||||
|
keyVal.value++;
|
||||||
|
loading.value = true;
|
||||||
|
const params = { ...listQuery.value,ypid:chageDatas.value};
|
||||||
|
qcckGet(params, "/mosty-gsxt/gsxtYpbg/getPageList")
|
||||||
|
.then((res) => {
|
||||||
|
loading.value = false;
|
||||||
|
tableData.value = res.records || [];
|
||||||
|
total.value = res.total;
|
||||||
|
multipleUser();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
//列表回显
|
||||||
|
function multipleUser() {
|
||||||
|
tableData.value.forEach((item) => {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, false);
|
||||||
|
if (props.roleIds.some((id) => id == item.id)) {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleFilter = () => {
|
||||||
|
listQuery.value.pageCurrent = 1;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSelectionChange = (val) => {
|
||||||
|
if (props.Single) {
|
||||||
|
if (val.length > 1) {
|
||||||
|
let del_row = val.shift();
|
||||||
|
multipleUserRef.value.toggleRowSelection(del_row, false);
|
||||||
|
}
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
} else {
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 删除
|
||||||
|
const deletBg = (val) => {
|
||||||
|
const id = { ids: [val.id] }
|
||||||
|
proxy.$confirm('确定删除吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
qcckDelete(id, `/mosty-gsxt/gsxtYpbg/deleteEntity`).then((res) => {
|
||||||
|
getListData();
|
||||||
|
ElMessage.success("删除成功");
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage({
|
||||||
|
type: 'info',
|
||||||
|
message: '已取消删除'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.modelValue,
|
||||||
|
(val) => {
|
||||||
|
|
||||||
|
if (val) {
|
||||||
|
|
||||||
|
|
||||||
|
chageDatas.value = props.chageData;
|
||||||
|
console.log(chageDatas.value );
|
||||||
|
handleFilter();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/layout.scss";
|
||||||
|
@import "@/assets/css/element-plus.scss";
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.tabBoxRadio .el-checkbox__inner {
|
||||||
|
border-radius: 50% !important;
|
||||||
|
}
|
||||||
|
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,111 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<div></div>
|
||||||
|
<div>
|
||||||
|
<el-button @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckGet } from "@/api/qcckApi.js";
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
defineExpose,
|
||||||
|
reactive,
|
||||||
|
onMounted,
|
||||||
|
defineEmits,
|
||||||
|
} from "vue";
|
||||||
|
const emit = defineEmits(["change"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "报警电话", prop: "bjdh", type: "input" },
|
||||||
|
{ label: "报警地址", prop: "bjdz", type: "input" },
|
||||||
|
{ label: "报警内容", prop: "bjnr", type: "input" },
|
||||||
|
{ label: "报警人名称", prop: "bjrmc", type: "input" },
|
||||||
|
{ label: "报警人证件号码", prop: "bjrzjhm", type: "input" },
|
||||||
|
{ label: "报警时间", prop: "bjsj", type: "input" },
|
||||||
|
{ label: "接警完成时间", prop: "jjwcsj", type: "input" },
|
||||||
|
{ label: "警情子类", prop: "jqzldm", type: "select", options: props.dic.JQZL },
|
||||||
|
{ label: "警情细类", prop: "jqxldm", type: "select", options: props.dic.JQXL },
|
||||||
|
{ label: "警情类型", prop: "jqlxdm", type: "select",options: props.dic.JQLX },
|
||||||
|
{ label: "警情来源", prop: "jqlyfs", type: "select",options: props.dic.D_BZ_JQLY },
|
||||||
|
{ label: "警情类别", prop: "jqlbdm", type: "select", options: props.dic.JQLB },
|
||||||
|
// { label: "警情等级", prop: "jqdjdm", type: "select", options: props.dic.JQXL },
|
||||||
|
{ label: "警情处理状态", prop: "jqclztdm", type: "select",options: props.dic.JQCLJG },
|
||||||
|
]);
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const elform = ref();
|
||||||
|
const pageForm = reactive({});
|
||||||
|
onMounted(() => {
|
||||||
|
tabHeightFn();
|
||||||
|
});
|
||||||
|
//
|
||||||
|
// 初始化数据
|
||||||
|
const init = (row) => {
|
||||||
|
dialogForm.value = true;
|
||||||
|
qcckGet({}, `/mosty-gsxt/jjdbYp/getInfo/${row.id}`).then(res => {
|
||||||
|
listQuery.value = res;
|
||||||
|
}).catch(() => {
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageForm.tableHeight = window.innerHeight - 720;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
|
color: #0072ff;
|
||||||
|
background: rgba(0, 114, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: 99%;
|
||||||
|
height: 225px;
|
||||||
|
margin-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .avatar-uploader {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list {
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list__item-name .el-icon {
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,12 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="statistical-analysis">
|
<div class="statistical-analysis">
|
||||||
<!-- 数据类型 -->
|
<!-- 数据类型 -->
|
||||||
<!-- 左侧树形菜单 -->
|
<!-- 左侧树形菜单 -->
|
||||||
<!-- <div class="left-menu">
|
<!-- <div class="left-menu">
|
||||||
<CheckBox :data="checkData.sjlxBtn" customClass="all" @changeData="changeData_sjly"></CheckBox>
|
<CheckBox :data="checkData.sjlxBtn" customClass="all" @changeData="changeData_sjly"></CheckBox>
|
||||||
</div> -->
|
</div> -->
|
||||||
<!-- 右侧内容区 -->
|
<!-- 右侧内容区 -->
|
||||||
<!-- 研判类型 -->
|
<!-- 研判类型 -->
|
||||||
|
|
||||||
<div class="right-content">
|
<div class="right-content">
|
||||||
<div class="btnsBox" ref="refBtn">
|
<div class="btnsBox" ref="refBtn">
|
||||||
@ -25,6 +25,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="f14 lh24 pl4 pr4 one_text_detail">数量:{{ it.num }}</div>
|
<div class="f14 lh24 pl4 pr4 one_text_detail">数量:{{ it.num }}</div>
|
||||||
<div class="foot">
|
<div class="foot">
|
||||||
|
<span class="ml10 pointer" @click.stop="openHistoricalReport(it.id)" style="color:#027ff0 ;"><el-icon
|
||||||
|
style="top: 2px;">
|
||||||
|
<Document />
|
||||||
|
</el-icon>历史报告</span>
|
||||||
<span class="ml10 pointer" @click.stop="funAll(it.id)" style="color:#027ff0 ;"><el-icon style="top: 2px;">
|
<span class="ml10 pointer" @click.stop="funAll(it.id)" style="color:#027ff0 ;"><el-icon style="top: 2px;">
|
||||||
<Document />
|
<Document />
|
||||||
</el-icon>报告</span>
|
</el-icon>报告</span>
|
||||||
@ -41,27 +45,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<Detail ref="detailForm" @getData="getLits" :dict="JQLB"></Detail>
|
<Detail ref="detailForm" @getData="getLits" :dict="{ JQLB, JQLX, JQXL, JQZL, D_BZ_JQLY, D_BZ_JQFL, JQCLJG }"></Detail>
|
||||||
<YpModel v-model="showModel" :heightNumber="650" v-model:textContent="textContent"></YpModel>
|
<YpModel v-model="showModel" @SaveReport="SaveReport" :heightNumber="650" v-model:textContent="textContent"></YpModel>
|
||||||
|
<HistoricalReport v-model="showHistoricalReport" @choosed="getHistory" :chageData="chageData"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import YpModel from '@/components/ypModel/index.vue'
|
import YpModel from '@/components/ypModel/index.vue'
|
||||||
|
import HistoricalReport from './components/historicalReport.vue'
|
||||||
import Detail from './components/detail.vue'
|
import Detail from './components/detail.vue'
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import CheckBox from "@/components/checkBox/index.vue";
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { qcckPost } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { timeValidate } from '@/utils/tools.js'
|
import { timeValidate } from '@/utils/tools.js'
|
||||||
import {getItem} from '@/utils/storage.js'
|
import { getItem } from '@/utils/storage.js'
|
||||||
import { useRoute, useRouter } from 'vue-router';
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, watch, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch, nextTick } from "vue";
|
||||||
import { jqypDywdtj, jqypfxbgJqlxtj, jqypfxbgYdfx, jqypfxbgJqlytj, jqypfxbgTj, jqypfxbgCljgf, jqypfxbgCzlfx, getDictItem } from '@/api/semanticAnalysis'
|
import { jqypDywdtj, jqypfxbgJqlxtj, jqypfxbgYdfx, jqypfxbgJqlytj, jqypfxbgTj, jqypfxbgCljgf, jqypfxbgCzlfx, getDictItem } from '@/api/semanticAnalysis'
|
||||||
import { textStyle, Firstlevelheading, Subheading, BiheadlinegTitle, BigTitle, headTitle, report, signature } from './components/content.js'
|
import { textStyle, Firstlevelheading, Subheading, BiheadlinegTitle, BigTitle, headTitle, report, signature } from './components/content.js'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const { D_SG_SJLY, D_SG_TSYPGZ,JQLB } = proxy.$dict("D_SG_SJLY", "D_SG_TSYPGZ","JQLB"); //获取字典数据
|
const { D_SG_SJLY, D_SG_TSYPGZ, JQLB, JQLX, JQXL, JQZL, D_BZ_JQLY, D_BZ_JQFL, JQCLJG } = proxy.$dict("D_SG_SJLY", "D_SG_TSYPGZ", "JQLB", "JQLX", "JQXL", "JQZL", "D_BZ_JQLY", "D_BZ_JQFL", "JQCLJG"); //获取字典数据
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const showModel = ref(false);
|
const showModel = ref(false);
|
||||||
const textContent = ref('');
|
const textContent = ref('');
|
||||||
@ -87,6 +94,7 @@ const total = ref(0)
|
|||||||
const list = ref([])
|
const list = ref([])
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const formData = ref({})
|
const formData = ref({})
|
||||||
|
const chageData=ref()
|
||||||
watch(() => [D_SG_SJLY.value, D_SG_TSYPGZ.value], val => {
|
watch(() => [D_SG_SJLY.value, D_SG_TSYPGZ.value], val => {
|
||||||
checkData.sjlxBtn.list = val[0].map(v => v.zdmc);
|
checkData.sjlxBtn.list = val[0].map(v => v.zdmc);
|
||||||
checkData.yplxBtn.list = val[1].map(v => v.zdmc);
|
checkData.yplxBtn.list = val[1].map(v => v.zdmc);
|
||||||
@ -230,10 +238,15 @@ const getDictItemList = () => {
|
|||||||
}
|
}
|
||||||
getDictItemList()
|
getDictItemList()
|
||||||
const funAll = (val) => {
|
const funAll = (val) => {
|
||||||
const dev=getItem('deptId')[0]
|
|
||||||
|
|
||||||
|
|
||||||
|
console.log(chageData.value);
|
||||||
|
const dev = getItem('deptId')[0]
|
||||||
|
sortingRatioValue.value = {}
|
||||||
textContent.value = BigTitle(`${endYears.value}年度西藏公安执法数据分析`) + headTitle({
|
textContent.value = BigTitle(`${endYears.value}年度西藏公安执法数据分析`) + headTitle({
|
||||||
orgName:dev.deptName,
|
orgName: dev.deptName,
|
||||||
serialNumber: timeValidate("","mm"),
|
serialNumber: timeValidate("", "mm"),
|
||||||
time: timeValidate(),
|
time: timeValidate(),
|
||||||
})
|
})
|
||||||
const data = `为全面、客观、准确掌握全区公安机关的执法状况,自治区公安厅基于数据统计,对全区公安机关${endYears.value}年度的执法状况作了客观分析。`
|
const data = `为全面、客观、准确掌握全区公安机关的执法状况,自治区公安厅基于数据统计,对全区公安机关${endYears.value}年度的执法状况作了客观分析。`
|
||||||
@ -243,20 +256,17 @@ const funAll = (val) => {
|
|||||||
getfxbgJqlxtj(val)
|
getfxbgJqlxtj(val)
|
||||||
getfxbgJqlytj(val)
|
getfxbgJqlytj(val)
|
||||||
getfxbgDywdtj(val)
|
getfxbgDywdtj(val)
|
||||||
|
|
||||||
getfxgbCljgf(val)
|
getfxgbCljgf(val)
|
||||||
getfxgbCzlfx(val)
|
getfxgbCzlfx(val)
|
||||||
console.log(sortingRatioValue.value);
|
|
||||||
showModel.value = true;
|
showModel.value = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => sortingRatioValue.value, (val) => {
|
watch(() => sortingRatioValue.value, (val) => {
|
||||||
if (val.jqlx&&val.jqly&&val.dywd&&val.ydfx&&val.xlwdfx&&val.czjgfx) {
|
if (val.jqlx && val.jqly && val.dywd && val.ydfx && val.xlwdfx && val.czjgfx) {
|
||||||
textContent.value +=val.jqlx +val.jqly +val.dywd +val.ydfx + val.xlwdfx +val.czjgfx+report()+signature()
|
textContent.value += val.jqlx + val.jqly + val.dywd + val.ydfx + val.xlwdfx + val.czjgfx + report() + signature()
|
||||||
}
|
}
|
||||||
|
}, { deep: true })
|
||||||
},{deep:true})
|
|
||||||
const getfxbgTj = (val) => {
|
const getfxbgTj = (val) => {
|
||||||
jqypfxbgTj({ ypid: val }).then(res => {
|
jqypfxbgTj({ ypid: val }).then(res => {
|
||||||
const data = `${Time()} ,全区公安机关共接报各类警情${res.total}起,同比上升 ${res.tbbsb}%,同比上升${res.hbbsb}%`
|
const data = `${Time()} ,全区公安机关共接报各类警情${res.total}起,同比上升 ${res.tbbsb}%,同比上升${res.hbbsb}%`
|
||||||
@ -300,8 +310,8 @@ const getfxbgDywdtj = (val) => {
|
|||||||
}
|
}
|
||||||
const model = sortingRatio(res)
|
const model = sortingRatio(res)
|
||||||
let data
|
let data
|
||||||
if (model.length>1) {
|
if (model.length > 1) {
|
||||||
data = `从地市分布地市来看,${model[0].ssbm}警情量最大,占到全区警情总量的${model[0].number}。其次为${model[1].ssbm}和${model[2].ssbm},两市警情量较为接近。警情量最少的为${model[model.length - 1].ssbm}。`
|
data = `从地市分布地市来看,${model[0].ssbm}警情量最大,占到全区警情总量的${model[0].number}。其次为${model[1].ssbm}和${model[2].ssbm},两市警情量较为接近。警情量最少的为${model[model.length - 1].ssbm}。`
|
||||||
} else {
|
} else {
|
||||||
data = `从地市分布地市来看,${model[0].ssbm}警情量最大,占到全区警情总量的${model[0].number}。`
|
data = `从地市分布地市来看,${model[0].ssbm}警情量最大,占到全区警情总量的${model[0].number}。`
|
||||||
}
|
}
|
||||||
@ -348,7 +358,7 @@ const getfxgbCzlfx = (val) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const timeDate = ref()
|
const timeDate = ref()
|
||||||
const endYears=ref()
|
const endYears = ref()
|
||||||
const Time = () => {
|
const Time = () => {
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
const startOfYear = new Date(currentYear, 0, 1); // 今年1月1日
|
const startOfYear = new Date(currentYear, 0, 1); // 今年1月1日
|
||||||
@ -359,14 +369,51 @@ const Time = () => {
|
|||||||
const endYear = endOfYear.getFullYear();
|
const endYear = endOfYear.getFullYear();
|
||||||
const endMonth = String(endOfYear.getMonth() + 1).padStart(2, '0');
|
const endMonth = String(endOfYear.getMonth() + 1).padStart(2, '0');
|
||||||
const endDay = String(endOfYear.getDate()).padStart(2, '0');
|
const endDay = String(endOfYear.getDate()).padStart(2, '0');
|
||||||
timeDate.value=`${endYear}年${endMonth}月${endDay}日`
|
timeDate.value = `${endYear}年${endMonth}月${endDay}日`
|
||||||
endYears.value=year
|
endYears.value = year
|
||||||
return `${year}年${month}月${day}日 至${endYear}年${endMonth}月${endDay}日`
|
return `${year}年${month}月${day}日 至${endYear}年${endMonth}月${endDay}日`
|
||||||
|
}
|
||||||
|
|
||||||
|
const showHistoricalReport = ref(false)
|
||||||
|
|
||||||
|
const openHistoricalReport = (val) => {
|
||||||
|
chageData.value = val
|
||||||
|
showHistoricalReport.value = true
|
||||||
|
}
|
||||||
|
// const
|
||||||
|
const getHistory = (val) => {
|
||||||
|
|
||||||
|
textContent.value = val
|
||||||
|
showHistoricalReport.value = false
|
||||||
|
showModel.value = true
|
||||||
|
}
|
||||||
|
const SaveReport = (val) => {
|
||||||
|
|
||||||
|
ElMessageBox.prompt('请输入名称', '提示', {
|
||||||
|
confirmButtonText: '确认',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
// inputPattern:/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
|
||||||
|
// inputErrorMessage: 'Invalid Email',
|
||||||
|
})
|
||||||
|
.then(({ value }) => {
|
||||||
|
const promes = {
|
||||||
|
bgmc:value,
|
||||||
|
bgnr: val,
|
||||||
|
ypid:chageData.value
|
||||||
|
}
|
||||||
|
qcckPost( promes , "/mosty-gsxt/gsxtYpbg/addEntity")
|
||||||
|
.then(() => {
|
||||||
|
ElMessage.success("保存成功");
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage({
|
||||||
|
type: 'info',
|
||||||
|
message: '取消保存',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
.catch(() => { });
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@ function resolve(dir) {
|
|||||||
return path.join(__dirname, dir);
|
return path.join(__dirname, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
// const serverHost = "http://192.168.1.32:8006"//波哥
|
const serverHost = "http://192.168.1.32:8006"//波哥
|
||||||
const serverHost = "http://192.168.0.231:8006"//线上
|
// const serverHost = "http://192.168.0.231:8006"//线上
|
||||||
// const serverHost = "http://192.168.1.117:8006"//周
|
// const serverHost = "http://192.168.1.117:8006"//周
|
||||||
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user