lcw
This commit is contained in:
@ -68,7 +68,7 @@
|
||||
|
||||
</div>
|
||||
<div style="width: 100%;" class="mt10">
|
||||
<el-form-item prop="bkDj" label="布控部门" v-if="props.name == 'myControl'">
|
||||
<el-form-item prop="bkDj" label="布控等级" v-if="props.name == 'myControl'">
|
||||
<MOSTY.Select v-model="listQuery.bkDj" :dictEnum="props.dic.D_GS_SSYJ" placeholder="请选择布控级别"
|
||||
clearable />
|
||||
</el-form-item>
|
||||
@ -192,6 +192,7 @@ const rules = reactive({
|
||||
czJsdwdm: [{ required: true, message: "请选择处置接收单位", trigger: "change" }],
|
||||
bkshrSsbmdm: [{ required: true, message: "请选择审核部门", trigger: "change" }],
|
||||
bksprSsbmdm: [{ required: true, message: "请选择审批部门", trigger: "change" }],
|
||||
czYq: [{ required: true, message: "请选择处置要求", trigger: "change" }],
|
||||
})
|
||||
let tableDate = reactive({
|
||||
keyCount: 0,
|
||||
|
||||
@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<el-dialog :model-value="modelValue" :destroy-on-close="true" title="回执单" @close="close"
|
||||
:close-on-click-modal="false">
|
||||
<div class="hzd-container">
|
||||
<h2 class="hzd-title">林芝市公安局临时布控工作回执单</h2>
|
||||
<table class="hzd-table">
|
||||
<tr>
|
||||
<td class="hzd-label">布控对象</td>
|
||||
<td class="hzd-value">{{ listQuery.bkdx }}</td>
|
||||
<td class="hzd-label">申请日期</td>
|
||||
<td class="hzd-value">
|
||||
<el-date-picker v-model="listQuery.sqrq" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择日期" style="width: 100%" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">对象信息</td>
|
||||
<td class="hzd-value" colspan="3">{{ listQuery.bkdxList }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">布控来源</td>
|
||||
<td class="hzd-value">{{ listQuery.ly }}</td>
|
||||
<td class="hzd-label">布控范围</td>
|
||||
<td class="hzd-value">全市;工布江达县</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">布控级别</td>
|
||||
<td class="hzd-value">{{ listQuery.dj }}</td>
|
||||
<td class="hzd-label">处置要求</td>
|
||||
<td class="hzd-value">{{ listQuery.czyq }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">经办人员</td>
|
||||
<td class="hzd-value">{{ listQuery.bkcjrXm }}</td>
|
||||
<td class="hzd-label">联系方式</td>
|
||||
<td class="hzd-value">
|
||||
<el-input v-model="listQuery.lxfs" style="width: 100%" placeholder="请输入经办人联系方式" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">布控理由</td>
|
||||
<td class="hzd-value" colspan="3">
|
||||
<el-input v-model="listQuery.bkSy" style="width: 100%" placeholder="请输入布控理由" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">执法依据</td>
|
||||
<td class="hzd-value" colspan="3">
|
||||
<el-input v-model="listQuery.zfyj" style="width: 100%" placeholder="请输入执法依据" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">布控时间(起)</td>
|
||||
<td class="hzd-value">
|
||||
<el-date-picker v-model="listQuery.bkSjKs" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择日期" style="width: 100%" />
|
||||
</td>
|
||||
<td class="hzd-label">布控时间(止)</td>
|
||||
<td class="hzd-value">
|
||||
<el-date-picker v-model="listQuery.bkSjJs" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择日期" style="width: 100%" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">布控结果</td>
|
||||
<td class="hzd-value" colspan="3">{{ listQuery.bkzt }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hzd-label">备注:</td>
|
||||
<td class="hzd-value" colspan="3">
|
||||
<el-input v-model="listQuery.bz" type="textarea" style="width: 100%" placeholder="请输入备注" />
|
||||
<div v-show="false" class="input-value">{{ listQuery.bz }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="flex just-center">
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="exportWord">导出Word</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import { reactive, ref, getCurrentInstance, watch } from 'vue';
|
||||
import { timeValidate } from '@/utils/tools'
|
||||
import { saveAs } from 'file-saver'
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
bkDx: {
|
||||
type: String,
|
||||
default: '01'
|
||||
},
|
||||
dataList: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}, dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
name: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
})
|
||||
const emits = defineEmits(["update:modelValue", "choosed", "choosedAdd"]);
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_XB, D_GS_ZDR_YJDJ } = proxy.$dict("D_BZ_XB", "D_GS_ZDR_YJDJ"); // 获取字典数据
|
||||
const input = ref('')
|
||||
const value1 = ref('')
|
||||
const value2 = ref('')
|
||||
const listQuery = ref({})
|
||||
|
||||
|
||||
watch(() => props.dataList, (newVal) => {
|
||||
if (newVal) {
|
||||
listQuery.value = newVal
|
||||
listQuery.value.bkdxList = newVal.bkdxList.map(item => {
|
||||
return item.rySfzh
|
||||
}).join(',')
|
||||
listQuery.value.sqrq = timeValidate()
|
||||
listQuery.value.bkdx = props.dict.D_GS_BK_NEWDX.find(item => item.dm == listQuery.value.bkDx).zdmc
|
||||
listQuery.value.ly = props.dict.D_BZ_BKLYS.find(item => item.dm == listQuery.value.bkly).zdmc
|
||||
listQuery.value.czyq =listQuery.value.czYq? props.dict.D_GS_BK_CZYQ.find(item => item.dm == listQuery.value.czYq).zdmc:""
|
||||
listQuery.value.bkzt = props.dict.D_GZL_SHZT.find(item => item.dm == listQuery.value.bkZt).zdmc
|
||||
if (props.name == 'myControl') {
|
||||
listQuery.value.dj = props.dict.D_GS_SSYJ.find(item => item.dm == listQuery.value.bkDj).zdmc
|
||||
} else {
|
||||
listQuery.value.dj = props.dict.D_BZ_JQDJ.find(item => item.dm == listQuery.value.bkDj).zdmc
|
||||
}
|
||||
}
|
||||
})
|
||||
// options: route.name == 'myControl' ? D_GS_SSYJ : D_BZ_JQDJ
|
||||
|
||||
const submitForm = () => {
|
||||
elform.value.submit((val) => {
|
||||
val.id = new Date().getTime()
|
||||
emits('choosedAdd', val)
|
||||
close()
|
||||
})
|
||||
}
|
||||
|
||||
const close = async () => {
|
||||
|
||||
emits("update:modelValue", false);
|
||||
|
||||
}
|
||||
|
||||
const exportWord = () => {
|
||||
// 获取表格HTML内容
|
||||
const tableElement = document.querySelector('.hzd-table');
|
||||
if (!tableElement) return;
|
||||
|
||||
// 克隆表格以避免修改原始DOM
|
||||
const clonedTable = tableElement.cloneNode(true);
|
||||
|
||||
// 处理备注输入框的值
|
||||
const noteCell = clonedTable.querySelector('.hzd-value[colspan="3"]:last-child');
|
||||
if (noteCell) {
|
||||
const inputElement = noteCell.querySelector('el-input');
|
||||
const inputValue = noteCell.querySelector('.input-value');
|
||||
if (inputValue) {
|
||||
// 清空单元格内容并添加纯文本值
|
||||
noteCell.innerHTML = inputValue.textContent || '';
|
||||
}
|
||||
}
|
||||
|
||||
// 处理其他输入框和日期选择器的值
|
||||
const inputElements = clonedTable.querySelectorAll('input');
|
||||
inputElements.forEach(input => {
|
||||
const parentTd = input.closest('td');
|
||||
if (parentTd) {
|
||||
// 替换为输入框的值
|
||||
parentTd.innerHTML = input.value || '';
|
||||
}
|
||||
});
|
||||
|
||||
// 构建完整的HTML内容
|
||||
const htmlContent = `
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
body { font-family: SimSun, serif; }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 0 auto;
|
||||
}
|
||||
td {
|
||||
border: 1px solid #000;
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
.hzd-label {
|
||||
font-weight: bold;
|
||||
width: 150px;
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>林芝市公安局临时布控工作回执单</h2>
|
||||
${clonedTable.outerHTML}
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
|
||||
// 创建Blob对象并下载
|
||||
const blob = new Blob([htmlContent], { type: 'application/msword' });
|
||||
saveAs(blob, '布控工作回执单.doc');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.hzd-container {
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.hzd-title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.hzd-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.hzd-table td {
|
||||
border: 1px solid #000;
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.hzd-label {
|
||||
font-weight: bold;
|
||||
width: 150px;
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
|
||||
.hzd-value {
|
||||
width: calc((100% - 150px) / 3);
|
||||
}
|
||||
|
||||
.hzd-table td[colspan="3"] {
|
||||
width: calc(100% - 150px);
|
||||
}
|
||||
</style>
|
||||
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle :title=" route.meta.title ">
|
||||
<el-button type="primary" @click="handleAdd('add', null)">发起布控</el-button>
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
<div ref="searchBox" class="mt10">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||
<template #left>
|
||||
<el-button type="primary" size="small" @click="handleAdd('add', null)">发起布控</el-button>
|
||||
</template>
|
||||
</PageTitle>
|
||||
<!-- 按钮组 -->
|
||||
<div class="content">
|
||||
<!-- 表格 -->
|
||||
@ -20,8 +20,8 @@
|
||||
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
|
||||
</template>
|
||||
<template #bkDj="{ row }">
|
||||
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_SSYJ" v-if="route.name=='myControl'" />
|
||||
<DictTag :tag="false" :value="row.bkDj" :options="D_BZ_JQDJ" v-else/>
|
||||
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_SSYJ" v-if="route.name == 'myControl'" />
|
||||
<DictTag :tag="false" :value="row.bkDj" :options="D_BZ_JQDJ" v-else />
|
||||
</template>
|
||||
<template #bkDx="{ row }">
|
||||
<DictTag :tag="false" :value="row.bkDx" :options="D_GS_BK_NEWDX" />
|
||||
@ -49,12 +49,13 @@
|
||||
<template v-if="!row.gzlid">
|
||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||
@click="createProcess(row)">送审</el-link>
|
||||
<el-link type="primary" size="small" @click="tbGsxtBkQuashList( row)" v-else>撤控</el-link>
|
||||
<el-link type="primary" size="small" @click="tbGsxtBkQuashList(row)" v-else>撤控</el-link>
|
||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||
@click="handleAdd('edit', row)">编辑</el-link>
|
||||
|
||||
</template>
|
||||
<!-- 审核通过后才有轨迹 -->
|
||||
|
||||
<el-link type="primary" size="small" @click="openShowHzd(row)">回执单</el-link>
|
||||
<el-link type="primary" size="small" @click="handleAdd('detail', row)">详情</el-link>
|
||||
<el-link type="danger" size="small" @click="handleRow(row.id)"
|
||||
v-if="['01', '03', '06'].includes(row.bkZt)">删除</el-link>
|
||||
@ -69,13 +70,14 @@
|
||||
</div>
|
||||
<!-- 布控类型 -->
|
||||
<AddBkdx ref="addBkdxForm" @change="getList" :name="route.name" :dic="{
|
||||
D_GS_BK_NEWDX, D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_CZYQ,D_BZ_JQDJ,D_BZ_BKLYS,
|
||||
D_GS_BK_NEWDX, D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_CZYQ, D_BZ_JQDJ, D_BZ_BKLYS,
|
||||
D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_GS_ZDR_YJDJ,
|
||||
}" />
|
||||
<!-- 预警弹窗 -->
|
||||
<YjDialog ref="warningkdxForm"></YjDialog>
|
||||
<SubmissionProcess v-model="showSp" :data="rowData" :userData="{ ajmc: '布控审批', flowType: 'BKSP', modelName: '布控' }"
|
||||
:path="fixedValue" @getList="getList" />
|
||||
<Hzd v-model="hzdVisible" :dataList="dataList" :dict="{D_GS_BK_NEWDX,D_BZ_BKLYS,D_GS_SSYJ,D_BZ_JQDJ,D_GZL_SHZT,D_GS_BK_CZYQ}" :name="route.name" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -87,18 +89,19 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
|
||||
import {tbGsxtBkQuash} from '@/api/zdr.js'
|
||||
import { tbGsxtBkQuash } from '@/api/zdr.js'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
import Hzd from "./components/dolog/hzd.vue";
|
||||
import { rotate } from "ol/transform";
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_SJLX, D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_ZDR_YJDJ,
|
||||
D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS,D_BZ_BKLYS,
|
||||
D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_BZ_BKLYS,D_GZL_SHZT,
|
||||
D_BZ_JQDJ } = proxy.$dict("D_GS_ZDR_YJDJ", "D_GS_BK_BKYS", "D_BZ_XB", "D_GS_BK_SJLX",
|
||||
"D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",
|
||||
'BD_BK_CLYJBQ', 'D_BZ_JQDJ',"D_BZ_BKLYS"); //获取字典数据
|
||||
"D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",'D_GZL_SHZT',
|
||||
'BD_BK_CLYJBQ', 'D_BZ_JQDJ', "D_BZ_BKLYS"); //获取字典数据
|
||||
const addBkdxForm = ref(null); //布控对象组件
|
||||
const warningkdxForm = ref(); //布控对象组件
|
||||
const searchBox = ref(); //搜索框
|
||||
@ -124,11 +127,16 @@ const searchConfiger = ref([
|
||||
showType: "select",
|
||||
options: D_GS_BK_ZT
|
||||
},
|
||||
{
|
||||
{
|
||||
label: "布控时间",
|
||||
prop: "startTime",
|
||||
placeholder: "请选择布控时间",
|
||||
showType: "datetimerange",
|
||||
}, {
|
||||
label: "布控部门",
|
||||
prop: "bkfqrSsbmdm",
|
||||
placeholder: "请选择布控部门",
|
||||
showType: "department",
|
||||
},
|
||||
]);
|
||||
const queryFrom = ref({});
|
||||
@ -179,8 +187,8 @@ onMounted(() => {
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = {
|
||||
...val,
|
||||
startTime: val.startTime? val.startTime[0]: '',
|
||||
endTime: val.startTime? val.startTime[1]: ''
|
||||
startTime: val.startTime ? val.startTime[0] : '',
|
||||
endTime: val.startTime ? val.startTime[1] : ''
|
||||
};
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList();
|
||||
@ -199,7 +207,6 @@ const changeSize = (val) => {
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let bklx = ''
|
||||
console.log();
|
||||
|
||||
if (route.name == 'myControl') {
|
||||
bklx = '01'
|
||||
@ -234,7 +241,13 @@ const handleRow = (id) => {
|
||||
});
|
||||
})
|
||||
};
|
||||
|
||||
// 回执单
|
||||
const hzdVisible = ref(false)
|
||||
const dataList= ref({})
|
||||
const openShowHzd = (row) => {
|
||||
hzdVisible.value = true
|
||||
dataList.value = row
|
||||
}
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||
@ -243,7 +256,7 @@ const tabHeightFn = () => {
|
||||
};
|
||||
};
|
||||
const tbGsxtBkQuashList = (item) => {
|
||||
tbGsxtBkQuash({id:item.id}).then(res=>{
|
||||
tbGsxtBkQuash({ id: item.id }).then(res => {
|
||||
proxy.$message({ type: "success", message: "操作成功" });
|
||||
getList();
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user