This commit is contained in:
lcw
2025-12-17 16:27:59 +08:00
parent cd06aaf1be
commit 6a80bddff3
8 changed files with 144 additions and 21269 deletions

21242
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="form-item-box" :style="{ width: width }"> <div class="form-item-box" :style="{ width: width }">
<el-checkbox-group v-model="modelValue" @change="handleCheckAllChange"> <el-checkbox-group :model-value="localValue" @change="handleCheckAllChange">
<el-checkbox <el-checkbox
v-for="item in checkList" v-for="item in checkList"
:key="item.value" :key="item.value"
@ -34,15 +34,21 @@ const props = defineProps({
type: String type: String
} }
}); });
const localValue = ref(props.modelValue);
watch( watch(
() => props.modelValue, () => props.modelValue,
(val) => { (val) => {
localValue.value = val;
console.log(val, "val"); console.log(val, "val");
}, },
{ deep: true } { deep: true }
); );
const emits = defineEmits(["update:modelValue"]); const emits = defineEmits(["update:modelValue"]);
const handleCheckAllChange = (e) => { const handleCheckAllChange = (e) => {
localValue.value = e;
emits("update:modelValue", e); emits("update:modelValue", e);
}; };
</script> </script>

View File

@ -57,7 +57,7 @@ const rules = ref({
] ]
}) })
const formData = ref([ const formData = ref([
{ label: "关注部门", prop: "ssbmdm", depMc: 'ssbm', type: "department", width: '45%', multiple: true }, { label: "关注部门", prop: "ssbmdm", depMc: 'ssbm', type: "department", width: '45%', multiple: true,isAll: true },
]) ])
const elform = ref(null) const elform = ref(null)
watch(() => props.modelValue, (newVal) => { watch(() => props.modelValue, (newVal) => {

View File

@ -53,7 +53,7 @@ const props = defineProps({
}, },
path: { path: {
type: String, type: String,
default: "/qbcjZhc/sendFqzl" default: "/mosty-gsxt/qbcjZhc/sendFqzl"
} }
@ -101,16 +101,17 @@ const getsendFqzl = () => {
} }
try { try {
const res = await qcckPost(promes,props.path ) const res = await qcckPost(promes,props.path )
// qbcjZhcSendFqzl(promes) // const str = JSON.parse(res)
const str = JSON.parse(res) // if (str.code == 200) {
if (str.code == 200) {
ElMessage.success('发送成功') ElMessage.success('发送成功')
listQuery.value = {} // listQuery.value = {}
listQuery.value.attachmentPath = '' // listQuery.value.attachmentPath = ''
emit('handleClose') emit('handleClose')
} else { close()
ElMessage.error(str.msg)
} // } else {
// ElMessage.error(str.msg)
// }
} catch (error) { } catch (error) {
console.log(error); console.log(error);

View File

@ -13,7 +13,7 @@
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" ref="elform" :rules="rules"> <FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
</FormMessage> </FormMessage>
<!-- </div> --> <!-- </div> -->
<div class="tags-section" v-if="disabled"> <div class="tags-section" v-if="disabled">
<h3 class="tags-title">关注部门</h3> <h3 class="tags-title">关注部门</h3>
<div class="tags-container"> <div class="tags-container">
<div v-for="(tag, index) in listQuery.gzbmList" :key="tag.id || index" class="tag-item"> <div v-for="(tag, index) in listQuery.gzbmList" :key="tag.id || index" class="tag-item">
@ -40,14 +40,14 @@
</div> </div>
</div> </div>
<div class="tags-section" v-if="disabled"> <div class="tags-section" v-if="disabled">
<h3 class="tags-title">信息</h3> <h3 class="tags-title">信息</h3>
<div class="list-container"> <div class="list-container">
<div v-for="(item, index) in dataList.xb" :key="item.id || index" class="list-item"> <div v-for="(item, index) in dataList.xb" :key="item.id || index" class="list-item">
<div class="list-content"> <div class="list-content">
{{ item.bcnr }} {{ item.bcnr }}
</div> </div>
<div class="tag-actions"> <div class="tag-actions">
<el-icon class="action-icon edit-icon" :size="32" @click="openPursue('续信息', item)"> <el-icon class="action-icon edit-icon" :size="32" @click="openPursue('续信息', item)">
<EditPen /> <EditPen />
</el-icon> </el-icon>
<el-icon class="action-icon delete-icon" :size="32" @click="handleDeleteTag(item)"> <el-icon class="action-icon delete-icon" :size="32" @click="handleDeleteTag(item)">
@ -56,7 +56,7 @@
</div> </div>
</div> </div>
<span v-if="!dataList.xb || dataList.xb.length === 0" class="no-tags"> <span v-if="!dataList.xb || dataList.xb.length === 0" class="no-tags">
暂无标签 暂无续报信息
</span> </span>
</div> </div>
</div> </div>
@ -77,7 +77,7 @@
</div> </div>
</div> </div>
<span v-if="!dataList.bc || dataList.bc.length === 0" class="no-tags"> <span v-if="!dataList.bc || dataList.bc.length === 0" class="no-tags">
暂无标签 暂无补充信息
</span> </span>
</div> </div>
</div> </div>
@ -104,7 +104,7 @@
</div> </div>
</div> </div>
</div> </div>
<pursueContent v-model="pursueShow" :dataList="dataVals" :title="processtitle" :updeteBool="true" /> <pursueContent v-model="pursueShow" :dataList="dataVals" :title="processtitle" :updeteBool="true" />
</template> </template>
<script setup> <script setup>
@ -113,6 +113,7 @@ import { xxcjAddEntity, xxcjUpdateEntity, xxcjSelectByid, xxcjSelectCzlcList, xx
import { EditPen, Delete } from '@element-plus/icons-vue' import { EditPen, Delete } from '@element-plus/icons-vue'
import { ref, defineExpose, onMounted, defineEmits, watch, getCurrentInstance } from "vue" import { ref, defineExpose, onMounted, defineEmits, watch, getCurrentInstance } from "vue"
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import { getItem } from '@//utils/storage.js'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import pursueContent from "@/views/backOfficeSystem/HumanIntelligence/components/pursueContent.vue"; import pursueContent from "@/views/backOfficeSystem/HumanIntelligence/components/pursueContent.vue";
import * as MOSTY from "@/components/MyComponents/index"; import * as MOSTY from "@/components/MyComponents/index";
@ -258,18 +259,25 @@ const getxxcjSelectListBc = (id, lx) => {
// 处理标签删除 // 处理标签删除
const handleDeleteTag = (tag) => { const handleDeleteTag = (tag) => {
proxy.$confirm("确定要删除吗?", "警告", { type: "warning" }).then(() => { proxy.$confirm("确定要删除吗?", "警告", { type: "warning" }).then(() => {
const userName = getItem('USERNAME')
if(userName == tag.bcrxm){
xxcjDeletesBc({ ids: [tag.id] }).then(res => { xxcjDeletesBc({ ids: [tag.id] }).then(res => {
ElMessage({ ElMessage({
message: '删除成功', message: '删除成功',
type: 'success', type: 'success',
showClose: true,
})
getxxcjSelectListBc(msgeDat.value.id, '01')
getxxcjSelectListBc(msgeDat.value.id, '02')
})
}else{
proxy.$message({
message: '您不是该数据的创建人,不能删除',
type: 'warning',
showClose: true, showClose: true,
}) })
getxxcjSelectListBc(msgeDat.value.id, '01') }
getxxcjSelectListBc(msgeDat.value.id, '02')
})
}) })
} }
@ -278,10 +286,19 @@ const pursueShow = ref(false)
const dataVals = ref([]) const dataVals = ref([])
const processtitle = ref() const processtitle = ref()
const openPursue = (title, data) => { const openPursue = (title, data) => {
console.log(title, data); const userName = getItem('USERNAME')
pursueShow.value = true if (userName == data.bcrxm) {
processtitle.value = title pursueShow.value = true
dataVals.value = data processtitle.value = title
dataVals.value = data
} else {
proxy.$message({
message: '您不是该数据的创建人,不能进行操作',
type: 'warning',
showClose: true,
})
}
} }
defineExpose({ init }); defineExpose({ init });
</script> </script>

View File

@ -230,6 +230,16 @@ const cnMsg = (item) => {
} }
// 回退 // 回退
const rollbackNewspapers = (item) => { const rollbackNewspapers = (item) => {
if (item.lczt == '04') {
proxy.$message({
message: '已经采纳的信息无法回退',
type: 'warning',
showClose: true,
})
return
}
if (item.lczt == '03') { if (item.lczt == '03') {
proxy.$message({ proxy.$message({
message: '无法回退市局上报信息', message: '无法回退市局上报信息',
@ -264,13 +274,13 @@ const rollbackNewspapers = (item) => {
} }
// 上报 // 上报
const appearNewspapers = (item) => { const appearNewspapers = (item) => {
if ((item.lczt == '01' || item.lczt == '05') && item.qbjb == '00' && qxkz.deptLevel != '01') { if ((item.lczt == '01' || item.lczt == '05'||item.lczt == '02') && item.qbjb == '00' && qxkz.deptLevel != '01') {
proxy.$confirm("确定要上报", "警告", { type: "warning" }).then(() => { proxy.$confirm("确定要上报", "警告", { type: "warning" }).then(() => {
let promes = {} let promes = {}
if (qxkz.deptLevel == '01') { if (qxkz.deptLevel == '02') {
promes = { id: item.id, czzt: '03' } promes = { id: item.id, lczt: '03' }
} else { } else {
promes = { id: item.id, czzt: '02' } promes = { id: item.id, lczt: '02' }
} }
xxcjUpdateCzlc(promes).then(res => { xxcjUpdateCzlc(promes).then(res => {
proxy.$message({ type: "success", message: "上报成功" }); proxy.$message({ type: "success", message: "上报成功" });
@ -279,7 +289,7 @@ const appearNewspapers = (item) => {
}).catch(() => { }); }).catch(() => { });
} else { } else {
proxy.$message({ type: "warning", message: "只能上报提交的情报" }); proxy.$message({ type: "warning", message: "市局无法进行上报" });
} }
} }
// 分组 // 分组
@ -294,8 +304,12 @@ const opneMsg = (item) => {
// 打标签 // 打标签
const customTagShow = ref(false) const customTagShow = ref(false)
const openCustomTag = (item) => { const openCustomTag = (item) => {
customTagShow.value = true if (qxkz.depBool) { customTagShow.value = true
dataList.value = item dataList.value = item }else {
proxy.$message.warning('暂无权限')
}
} }
// 肯定 // 肯定
const affirm = (item) => { const affirm = (item) => {
@ -310,8 +324,13 @@ const affirm = (item) => {
// 配置关注部门 // 配置关注部门
const configurationShow = ref(false) const configurationShow = ref(false)
const FollowUpOnDept = (item) => { const FollowUpOnDept = (item) => {
if (qxkz.depBool) {
configurationShow.value = true configurationShow.value = true
dataList.value = item dataList.value = item
} else {
proxy.$message.warning('暂无权限')
}
} }

View File

@ -72,7 +72,7 @@
<MakeTag v-model="chooseRow" :dataList="dataList" :dict="{ D_BZ_CJLX, D_BZ_QBCZZT, D_GS_XS_LX, D_BZ_BQJB }" <MakeTag v-model="chooseRow" :dataList="dataList" :dict="{ D_BZ_CJLX, D_BZ_QBCZZT, D_GS_XS_LX, D_BZ_BQJB }"
@getList="getList" /> @getList="getList" />
<pursueContent v-model="pursueShow" :dataList="dataList" :title="processtitle" /> <pursueContent v-model="pursueShow" :dataList="dataList" :title="processtitle" />
<Fszl v-model="fszlShow" :itemData="dataList"/> <Fszl v-model="fszlShow" :itemData="dataList" path="/mosty-gsxt/qbcjZhc/sendFqzl" />
<!-- <SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj" <!-- <SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
:tacitly="tacitly" /> --> :tacitly="tacitly" /> -->
</template> </template>
@ -106,9 +106,16 @@ const ids = ref([])
const tableList = ref([]); const tableList = ref([]);
onMounted(() => { onMounted(() => {
const { deptBizType, deptLevel } = getItem('deptId')[0] const { deptBizType, deptLevel } = getItem('deptId')[0]
qxkz.userName = getItem('USERNAME')
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03' const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'
qxkz.deptBizType = deptBizType qxkz.deptBizType = deptBizType
qxkz.deptLevel = Jb qxkz.deptLevel = Jb
if (deptBizType == '23' && Jb == '01') {
qxkz.depBool = true
} else {
qxkz.depBool = false
}
getRouter() getRouter()
tabHeightFn() tabHeightFn()
if (route.query.id) { if (route.query.id) {
@ -127,7 +134,8 @@ const chooseData = (val) => {
} }
const qxkz = reactive({ const qxkz = reactive({
deptBizType: "", deptBizType: "",
deptLevel: "" deptLevel: "",
userName:''
}) })
const list = ref() const list = ref()
const searchConfiger = ref(); const searchConfiger = ref();
@ -179,14 +187,6 @@ const queryFrom = ref({});
const chooseRow = ref(false) const chooseRow = ref(false)
const dataList = ref() const dataList = ref()
// 批量打标
const batchMark = () => {
chooseRow.value = true
dataList.value = tableList.value
}
// 搜索 // 搜索
const onSearch = (val) => { const onSearch = (val) => {
const { lrkssj, zxkssj } = val const { lrkssj, zxkssj } = val
@ -218,8 +218,6 @@ const changeSize = (val) => {
const getList = () => { const getList = () => {
pageData.tableConfiger.loading = true; pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value, qbjb: routerMate.value.qbjbList }; let data = { ...pageData.pageConfiger, ...queryFrom.value, qbjb: routerMate.value.qbjbList };
xxcjSelectPage(data).then(res => { xxcjSelectPage(data).then(res => {
pageData.tableData = res.records || []; pageData.tableData = res.records || [];
pageData.total = res.total; pageData.total = res.total;
@ -273,18 +271,18 @@ const openCheckProcess = (item) => {
} }
// 续报 // 续报
const openCheckProcessXb = (item) => { const openCheckProcessXb = (item) => {
processtitle.value = '信息续报' if (qxkz.userName == item.xssbr) {
processtitle.value = '信息续报'
pursueShow.value = true pursueShow.value = true
dataList.value = item dataList.value = item
} } else {
// 转线索 proxy.$message({
const instQbcjZxs = (item) => { message: '您不是该情报的上报人,不能续报',
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => { type: 'warning',
qbcjZxs({ qbid: item.id }).then(res => { showClose: true,
proxy.$message({ type: "success", message: "转线索成功" });
getList();
}) })
}) }
} }
// 转线索 // 转线索
@ -295,7 +293,6 @@ const FollowUpOnLeads = (row) => {
type: 'warning', type: 'warning',
showClose: true, showClose: true,
}) })
return
} else { } else {
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => { proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => {
xxcjXxzsx({ ids: Array.isArray(row) ? row.join(',') : row.id }).then(res => { xxcjXxzsx({ ids: Array.isArray(row) ? row.join(',') : row.id }).then(res => {
@ -309,8 +306,15 @@ const FollowUpOnLeads = (row) => {
// 转合成 // 转合成
const fszlShow = ref(false) const fszlShow = ref(false)
const openFszl = (item) => { const openFszl = (item) => {
fszlShow.value = true if (!qxkz.depBool) {
dataList.value = item proxy.$message({
message: '权限不足',
type: 'warning',
showClose: true,
})
} else { fszlShow.value = true
dataList.value = item }
} }
</script> </script>

View File

@ -1,5 +1,5 @@
<template> <template>
<el-dialog v-model="modelValue" title="重点人员列表" width="70%" @close="closeDialog" destroy-on-close> <el-dialog :model-value="modelValue" @update:model-value="emit('update:modelValue', $event)" title="重点人员列表" width="70%" @close="closeDialog" destroy-on-close>
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search> <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
<MyTable customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" <MyTable customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger"