This commit is contained in:
lcw
2025-09-29 18:11:07 +08:00
parent ffdbb04675
commit 93c711dca6
86 changed files with 395 additions and 338 deletions

View File

@ -101,7 +101,7 @@ const onComfirm = (val) => {
tbGsxtZdryXsbxSaveOrUpdateXsbx(params).then(res => {
gettbZdryClxxSelectPage()
proxy.$message({
message: '关联车辆添加成功',
message: '现实表现添加成功',
type: 'success'
})
})

View File

@ -17,7 +17,7 @@
<el-input v-model="ruleForm.detentionCenterRecords[i].str" type="textarea"
class="detentionFacilityInput" placeholder="请输入拘留所记录" />
</el-form-item>
<div style="width: 100px;">
<div style="width: 100px;" v-if="showBut">
<el-button type="primary" v-if="ruleForm.detentionCenterRecords.length != 1"
@click="decreaseRecord(i, '拘留所')"></el-button>
<el-button type="primary" @click="addRecord(i, '拘留所')"
@ -35,7 +35,7 @@
<el-input v-model="ruleForm.prison[i].str" type="textarea" class="detentionFacilityInput"
placeholder="请输入拘留所记录" />
</el-form-item>
<div style="width: 100px;">
<div style="width: 100px;" v-if="showBut">
<el-button type="primary" v-if="ruleForm.prison.length != 1"
@click="decreaseRecord(i, '看守所')"></el-button>
<el-button type="primary" @click="addRecord(i, '看守所')"

View File

@ -3,7 +3,6 @@
<div class="headClass" style="">
<h3>案件信息</h3>
<el-button @click="AddPore" type="primary" v-if="showBut">新增</el-button>
</div>
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"

View File

@ -15,25 +15,16 @@
</template>
<template #ryLxdh>
<div class="phone-input-container">
<div class="inputGroup" v-for="(item,index) in listQuery.ryLxdh" :key="index">
<div class="inputGroup" v-for="(item, index) in listQuery.ryLxdh" :key="index">
<el-input v-model="listQuery.ryLxdh[index]" class="group" placeholder="请输入电话号码" />
<div class="flex align-center but">
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码" v-if=" listQuery.ryLxdh.length-1 ==index"/>
<div class="flex align-center but" v-if="showBut">
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码"
v-if="listQuery.ryLxdh.length - 1 == index" />
<el-button type="success" :icon="Minus" circle @click="removePhone(index)" title="删除电话号码" />
</div>
</div>
</div>
</template>
<!-- <template #tags>
<div style="display: flex; align-items: center;">
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">
选择标签
</el-button>
<div v-if="roleIds.length > 0" style="margin-left: 10px; color: #606266;">
已选择 {{ roleIds.length }} 个标签
</div>
</div>
</template> -->
</FormMessage>
</div>
@ -44,14 +35,14 @@
<script setup>
import * as rule from "@/utils/rules.js";
import * as MOSTY from "@/components/MyComponents/index";
import { Plus ,Minus} from "@element-plus/icons-vue";
import { Plus, Minus } from "@element-plus/icons-vue";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
import { ref, reactive, onMounted, getCurrentInstance, watch } from "vue";
import { tbGsxtZdryUpdate } from "@/api/zdr.js";
const { proxy } = getCurrentInstance();
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRY_RYLX,D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', "D_ZDRY_RYLX",'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRY_RYLX, D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', "D_ZDRY_RYLX", 'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
const props = defineProps({
dataList: {
type: Object,
@ -80,7 +71,7 @@ const rules = reactive({
zdrYjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }],
rylx: [{ required: true, message: "请选择人员类型", trigger: "change" }]
});
const listQuery = ref({ryLxdh:[""]}); //表单
const listQuery = ref({ ryLxdh: [""] }); //表单
const chooseMarksVisible = ref(false); // 控制标签选择弹窗显示
const roleIds = ref([]); // 已选择的标签ID
const formData = ref([
@ -149,7 +140,7 @@ watch(() => props.dataList, (val) => {
listQuery.value = deepClone(val);
// 处理照片数据
listQuery.value.ryzp = val.ryzp == null || val.ryzp == '' ? [] : [val.ryzp];
listQuery.value.zdrSjjz = val.zdrSjjz == null || val.zdrSjjz == '' ? [] :JSON.parse(val.zdrSjjz);
listQuery.value.zdrSjjz = val.zdrSjjz == null || val.zdrSjjz == '' ? [] : JSON.parse(val.zdrSjjz);
// 处理标签ID数据确保数据回显
if (val.tagIds && Array.isArray(val.tagIds) && val.tagIds.length > 0) {
roleIds.value = [...val.tagIds];
@ -163,18 +154,23 @@ watch(() => props.dataList, (val) => {
// 提交
const submit = () => {
loading.value = true
gettbGsxtZdryUpdate()
gettbGsxtZdryUpdate()
};
//
const gettbGsxtZdryUpdate = () => {
const promes = {
...listQuery.value,
ryzp: listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : "",
ryLxdh: listQuery.value.ryLxdh,
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
}
tbGsxtZdryUpdate(promes).then((res) => {
elform.value.submit((data) => {
tbGsxtZdryUpdate(promes).then((res) => {
listQuery.value.ryzp = []
proxy.$message({
message: '更新成功',
@ -185,6 +181,10 @@ const gettbGsxtZdryUpdate = () => {
}).finally(() => {
loading.value = false
});
})
}
// 添加电话号码
const addPhone = () => {
@ -198,8 +198,8 @@ const addPhone = () => {
// 删除电话号码
const removePhone = (index) => {
if (listQuery.value.ryLxdh .length > 1) {
listQuery.value.ryLxdh .splice(index, 1);
if (listQuery.value.ryLxdh.length > 1) {
listQuery.value.ryLxdh.splice(index, 1);
} else {
// 清空输入但保留输入框
listQuery.value.ryLxdh[0] = '';
@ -210,37 +210,39 @@ const removePhone = (index) => {
const throwData = () => {
return new Promise((resolve, reject) => {
if (elform.value && elform.value.validate) {
elform.value.validate((valid) => {
if (valid) {
// 过滤掉空的电话号码
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
if (validPhones.length === 0) {
reject(new Error('请至少输入一个有效的联系电话'));
return;
}
resolve({
...listQuery.value,
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
ryLxdh: validPhones,
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
});
} else {
reject(new Error('表单验证失败,请检查输入信息'));
elform.value.submit((data) => {
// 过滤掉空的电话号码
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
if (validPhones.length === 0) {
proxy.$message.warning('请至少输入一个有效的联系电话');
reject(new Error('请至少输入一个有效的联系电话'));
return;
}
});
resolve({
...listQuery.value,
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
ryLxdh: validPhones,
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
});
})
} else {
// 如果没有验证方法,直接返回数据
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
if (validPhones.length === 0) {
reject(new Error('请至少输入一个有效的联系电话'));
return;
}
resolve({
...listQuery.value,
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
ryLxdh: validPhones,
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
});
elform.value.submit((data) => {
// 如果没有验证方法,直接返回数据
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
if (validPhones.length === 0) {
proxy.$message.warning('请至少输入一个有效的联系电话');
reject(new Error('请至少输入一个有效的联系电话'));
return;
}
resolve({
...listQuery.value,
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
ryLxdh: validPhones,
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
});
})
}
});
};
@ -313,23 +315,25 @@ h3 {
padding: 0;
}
.inputGroup{
margin-left: 10px;
width: 100%;
max-width: 400px;
display: flex;
align-items: center;
margin-bottom: 10px;
.group{
width: 250px;
margin-right: 10px;
}
.but{
display: flex;
gap: 5px;
}
.inputGroup {
margin-left: 10px;
width: 100%;
max-width: 400px;
display: flex;
align-items: center;
margin-bottom: 10px;
.group {
width: 250px;
margin-right: 10px;
}
.but {
display: flex;
gap: 5px;
}
}
::v-deep .el-button--primary {
background-color: #409eff !important;
border-color: #409eff !important;
@ -339,5 +343,4 @@ h3 {
background-color: #67c23a !important;
border-color: #67c23a !important;
}
</style>

View File

@ -92,7 +92,8 @@ const pageData = reactive({
const zdqtUpdate = (val) => {
const params = {
id: listData.value.id,
bqList: pageData.tableData
bqList: pageData.tableData,
rySfzh: listData.value.rySfzh,
}
tbGsxtZdryUpdate(params).then(res => {
proxy.$message({

View File

@ -53,7 +53,6 @@ const addUpd = ref(true)
watch(() => props.dataList, (val) => {
if (val) {
listData.value = val
console.log(listData.value, 'listData.value')
gettbZdryClxxSelectPage()
}
}, { deep: true })
@ -98,6 +97,7 @@ const pageData = reactive({
// 修改数据接口
const dataModel = ref()
const addMarks = (val) => {
const params = {
...val,
zdrid: listData.value.id,