Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev-V1.0.1
庄锐波 5 months ago
parent
commit
d18ef285ce
  1. 9
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java
  2. 5
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementCarouselBannerBo.java
  3. 31
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java
  4. 7
      zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js
  5. 19
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnforcementInfoSection.vue
  6. 12
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnterpriseInfoSection.vue
  7. 71
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue
  8. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/src/http/index.js
  9. 182
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue

9
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java

@ -2,6 +2,7 @@ package com.zdxt.enforcementcode.controller.web.supervision;
import java.util.List;
import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
@ -71,11 +72,11 @@ public class EnforcementCarouselBannerController extends BaseController {
/**
* 新增轮播公告信息
*/
@SaCheckPermission("enforcementcode:carouselBanner:add")
//@SaCheckPermission("enforcementcode:carouselBanner:add")
@Log(title = "轮播公告信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody EnforcementCarouselBannerBo bo) {
@SaIgnore
@PostMapping("/add")
public R<Void> add(@RequestBody EnforcementCarouselBannerBo bo) {
return toAjax(enforcementCarouselBannerService.insertByBo(bo));
}

5
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementCarouselBannerBo.java

@ -127,5 +127,10 @@ public class EnforcementCarouselBannerBo extends BaseEntity {
*/
private String remark;
/**
* 附件列表
*/
private List<ZdxtFileBo> fileList;
}

31
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java

@ -1,6 +1,8 @@
package com.zdxt.enforcementcode.service.impl;
import com.zdxt.enforcementcode.domain.bean.EnforcementCarouselBanner;
import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
import com.zdxt.enforcementcode.service.IZdxtFileService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -32,6 +34,7 @@ import java.util.Collection;
public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouselBannerService {
private final EnforcementCarouselBannerMapper baseMapper;
private final IZdxtFileService zdxtFileService;
/**
* 查询轮播公告信息
@ -109,12 +112,40 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse
EnforcementCarouselBanner add = MapstructUtils.convert(bo, EnforcementCarouselBanner.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
//fujian
if (flag) {
bo.setId(add.getId());
// 保存附件信息
if (bo.getFileList() != null && !bo.getFileList().isEmpty()) {
saveAttachmentFiles(bo.getFileList(), add.getId());
}
}
return flag;
}
/**
* 批量保存附件信息
*
* @param fileList 附件列表
* @param businessId 业务ID(普法服务主表ID)
*/
private void saveAttachmentFiles(List<ZdxtFileBo> fileList, String businessId) {
for (ZdxtFileBo fileBo : fileList) {
// 设置业务ID关联
fileBo.setBusinessId(businessId);
// 保存附件
try {
zdxtFileService.insertByBo(fileBo);
log.info("成功保存附件: businessId={}, fileName={}", businessId, fileBo.getFileName());
} catch (Exception e) {
log.error("保存附件失败: businessId={}, fileName={}, error={}",
businessId, fileBo.getFileName(), e.getMessage(), e);
}
}
}
/**
* 修改轮播公告信息
*

7
zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js

@ -61,12 +61,15 @@ export const queryNonRegistrationList = (params, success, error) => _get(baseUrl
// 历史活动详情
export const queryNonRegistrationDetail = (params, success, error) => _get(baseUrl + "/nonRegistration/queryById", params, success, error);
// 非行政执法提交
export const addNonRegistration = (params, success, error) => _post(baseUrl + "/app-enf/nonRegistration/add", params, success, error);
export const queryEnforcementNoticeList = (params, success, error) => _post(baseUrl + "/enforcement/queryList", params, success, error);
export const queryUsersByPage = (params, success, error) => _post(baseUrl + "/system/queryUsersByPage", params, success, error);
export const queryUsersByPage = (params, success, error) => _get(baseUrl + "/system/queryUsersByPage", params, success, error);
// 获取部门列表
export const queryDeptList = (params, success, error) => _post("/app-enf/system/dept", params, success, error);
export const queryDeptList = (params, success, error) => _get("/app-enf/system/dept", params, success, error);
// endregion

19
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnforcementInfoSection.vue

@ -44,9 +44,9 @@
required />
<!-- 执法事项 -->
<van-field v-model="formData.enforcementMatter" name="enforcementMatter" label="执法事项" placeholder="请输入执法事项"
type="textarea" :rules="[{ required: true, message: '请填写执法事项' }]" required rows="3" maxlength="1000"
show-word-limit />
<van-field v-model="formData.lawEnforcementItemText" name="lawEnforcementItemText" label="执法事项"
placeholder="请输入执法事项" type="textarea" :rules="[{ required: true, message: '请填写执法事项' }]" required rows="3"
maxlength="1000" show-word-limit />
<!-- 执法依据 -->
<div class="basis-container">
@ -102,7 +102,8 @@
</van-radio-group>
</template>
</van-field>
</div> <div class="form-hint">本次执法是否为受委托事项</div>
</div>
<div class="form-hint">本次执法是否为受委托事项</div>
<!-- 受委托执法选择"是"时显示的内容 -->
<div v-if="formData.entrustedEnforcement === '1'" class="entrusted-options">
<van-field v-model="formData.entrustedAgency" name="entrustedAgency" label="委托行政机关" placeholder="请选择"
@ -175,13 +176,13 @@ const entrustedEnforcementValue = computed(() => {
const onAfterReadImage = (file) => {
const files = Array.isArray(file) ? file : [file];
files.forEach(f => {
f.status = 'uploading';
f.message = '上传中...';
uploadFile(f, (res) => {
const data = res && res.data ? res.data : res;
const filePath = typeof data === 'string' ? data : (data && (data.url || data.fileUrl || data.path)) || '';
if (filePath) {
f.url = filePath;
f.status = 'done';
}
f.message = '上传成功';
const data = res && res.data ? res.data : res;
f.url = data;
});
});
};

12
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnterpriseInfoSection.vue

@ -11,6 +11,10 @@
<van-field v-model="enterpriseNumber" :readonly="true" name="enterpriseNumber"
label="统一社会信用代码" placeholder="请选择" clearable
:rules="isSignMode ? [{ required: true, message: '请选择统一社会信用代码' }] : []" :required="isSignMode" />
<!-- 企业地址
<van-field v-model="enterpriseAddress" :readonly="true" name="enterpriseAddress"
label="企业地址" placeholder="暂无" clearable /> -->
</div>
</template>
@ -46,6 +50,14 @@ const enterpriseNumber = computed({
}
});
// 计算属性:企业地址(支持双向绑定)
const enterpriseAddress = computed({
get: () => props.enterpriseData?.enterpriseAddress || '',
set: (val) => {
emit('update:enterpriseData', { ...props.enterpriseData, enterpriseAddress: val });
}
});
const handleClick = () => {
emit('open-picker');
};

71
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue

@ -69,7 +69,8 @@
@clear="clearPersonSearch" />
<van-button class="search-btn" type="primary" @click="handlePersonSearch">搜索</van-button>
</div>
<van-list v-model:loading="personLoading" :finished="personFinished" :immediate-check="false" finished-text="没有更多了" @load="loadPersonList" class="person-list">
<van-list v-model:loading="personLoading" :finished="personFinished" :immediate-check="false"
finished-text="没有更多了" @load="loadPersonList" class="person-list">
<div v-for="(person, index) in personList" :key="index" class="person-list-item"
@click="handleSelectPerson(person)">
<div class="person-name">{{ person.userName }}</div>
@ -115,14 +116,15 @@
@clear="clearAgencySearch" />
<van-button class="search-btn" type="primary" @click="handleAgencySearch">搜索</van-button>
</div>
<div class="agency-list">
<van-list v-model:loading="agencyLoading" :finished="agencyFinished" :immediate-check="false"
finished-text="没有更多了" @load="loadAgencyList" class="agency-list">
<div v-for="(item, index) in agencyList" :key="index" class="agency-list-item"
@click="handleSelectAgency(item.name)">
@click="handleSelectAgency(item)">
<van-radio v-model="selectedAgency" :name="item.name" />
<span class="agency-name">{{ item.name }}</span>
</div>
<van-empty v-if="agencyList.length === 0" description="暂无数据" />
</div>
<van-empty v-if="agencyList.length === 0 && !agencyLoading" description="暂无数据" />
</van-list>
</div>
</van-popup>
</div>
@ -166,7 +168,6 @@ const taskSourceOptions = ref([]);
// 加载执法类别字典
const loadCategoryDict = () => {
loadDict('law_enforce_category', (columns) => {
console.log(columns);
categoryOptions.value = columns;
});
};
@ -273,23 +274,21 @@ const initPersonList = () => {
};
const loadPersonList = () => {
if (personLoading.value || personFinished.value) return;
personLoading.value = true;
// 获取已选人员的 userId,用逗号拼接
const selectedIds = props.selectedPersons.map(p => p.id).filter(Boolean);
const notUserId = selectedIds.length > 0 ? selectedIds.join(',') : undefined;
const params = {
pageNum: personPageNum.value,
pageSize: personPageSize.value,
notUserId
notUserId,
userName: personSearchKeyword.value || undefined
};
console.log(params);
queryUsersByPage(params, (res) => {
if (res.code === 200 || res.code === 0) {
const data = res.data || res.rows || [];
const total = res.total || res.count || 0;
if (personPageNum.value === 1) {
personList.value = data;
} else {
@ -401,14 +400,14 @@ const initBasisList = async () => {
basisPageNum.value = 1;
enforcementBasisList.value = [];
basisLoading.value = false;
await nextTick();
loadBasisList();
};
const handleSelectBasis = (basis) => {
// 转换字段名称,确保 name 字段存在
// 转换字段名称,确保 name 和 id 字段存在
emit('selectBasis', {
name: basis.name || basis.lawName || ''
name: basis.name || basis.lawName || '',
id: basis.id || basis.lawId || ''
});
localBasisPopup.value = false;
};
@ -433,25 +432,59 @@ watch(() => props.visible.basis, (val) => {
const agencySearchKeyword = ref('');
const agencyList = ref([]);
const selectedAgency = ref('');
const agencyLoading = ref(false);
const agencyFinished = ref(false);
const agencyPageNum = ref(1);
const agencyPageSize = ref(10);
const initAgencyList = () => {
agencyFinished.value = false;
agencyPageNum.value = 1;
agencyList.value = [];
agencyLoading.value = false;
loadAgencyList();
};
const loadAgencyList = () => {
agencyLoading.value = true;
const params = {
pageNum: agencyPageNum.value,
pageSize: agencyPageSize.value,
deptName: agencySearchKeyword.value || undefined
};
queryDeptList(params, (res) => {
if (res.code === 200 || res.code === 0) {
const data = res.data || res.rows || [];
const total = res.total || res.count || 0;
if (agencyPageNum.value === 1) {
agencyList.value = data.map(item => ({
id: item.deptId || item.id || '',
name: item.deptName || item.name || ''
}));
} else {
agencyList.value = [...agencyList.value, ...data.map(item => ({
id: item.deptId || item.id || '',
name: item.deptName || item.name || ''
}))];
}
if (total <= agencyPageSize.value * agencyPageNum.value) {
agencyFinished.value = true;
} else {
agencyPageNum.value++;
}
} else {
console.error('获取部门列表失败:', res.msg);
agencyList.value = [];
agencyFinished.value = true;
}
agencyLoading.value = false;
}, (err) => {
console.error('获取部门列表接口失败', err);
agencyList.value = [];
agencyLoading.value = false;
agencyFinished.value = true;
});
};
@ -464,9 +497,9 @@ const clearAgencySearch = () => {
initAgencyList();
};
const handleSelectAgency = (name) => {
selectedAgency.value = name;
emit('selectEntrustedAgency', name);
const handleSelectAgency = (item) => {
selectedAgency.value = item.name;
emit('selectEntrustedAgency', { name: item.name, id: item.id || '' });
localEntrustedAgencyPopup.value = false;
};

1
zdxt-web-client/zdxt-efcode-enforcement-app/src/http/index.js

@ -40,6 +40,7 @@ function request(type, url, params, success, error) {
data: params,
};
if (type == "GET") {
console.log(params);
config.params = params;
} else {
config.data = params;

182
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue

@ -77,7 +77,7 @@ import { ref, reactive, computed, onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { showConfirmDialog, showSuccessToast, showToast } from 'vant';
import { loadDict } from '@/util/dictUtil';
import { saveEnfRegistration, submitEnfRegistration } from '@/api/enforcement/index';
import { saveEnfRegistration, submitEnfRegistration, addNonRegistration } from '@/api/enforcement/index';
import EnterpriseInfoSection from '@/components/enforcement/register/EnterpriseInfoSection.vue';
import EnforcementInfoSection from '@/components/enforcement/register/EnforcementInfoSection.vue';
import NonEnforcementInfoSection from '@/components/enforcement/register/NonEnforcementInfoSection.vue';
@ -107,14 +107,36 @@ const formData = reactive({
checkCss: '',
category: '',
taskSource: '',
enforcementMatter: '',
lawEnforcementItemText: '',
enforcementBases: [''],
enforcementBasesIds: [''],
reason: '系统未能有效生成监管码',
enforcementTime: '',
jointEnforcement: 0,
entrustedEnforcement: 0,
jointEnforcement: '0',
entrustedEnforcement: '0',
entrustedAgency: '',
entrustedAgencyId: '',
fileList: [],
attachments: [],
id: '',
unionNo: '',
lawId: '',
lawText: '',
uniteCheck: '',
enforce: '',
enforceReason: '',
lawField: '',
lawFieldText: '',
deptTexts: '',
deptObjs: [],
userObjs: [],
isUnite: 0,
reslut: 0,
remark: '',
subsidiaryer: '',
subsidiaryerId: '',
subsidiaryerText: '',
fileListObj: []
});
// 执法人员
@ -154,14 +176,7 @@ const selectedPersonsList = computed(() => {
// 选项数据(从字典获取)
const categoryOptions = ref([]);
const taskSourceOptions = [
{ text: '年度计划', value: '年度计划' },
{ text: '临时任务', value: '临时任务' },
{ text: '上级交办', value: '上级交办' },
{ text: '群众举报', value: '群众举报' },
];
const checkCategoryOptions = ref([]);
// ========== 事件处理函数 ==========
// 关闭弹窗(保持 reactive 对象的响应式)
@ -211,12 +226,14 @@ const handleOpenBasisPicker = (index) => {
// 添加执法依据
const handleAddBasis = () => {
formData.enforcementBases.push('');
formData.enforcementBasesIds.push('');
};
// 删除执法依据
const handleRemoveBasis = (index) => {
if (formData.enforcementBases.length > 1) {
formData.enforcementBases.splice(index, 1);
formData.enforcementBasesIds.splice(index, 1);
}
};
@ -242,6 +259,7 @@ const handleSelectBasis = (basis) => {
const index = currentEditIndex.value;
if (index >= 0 && index < formData.enforcementBases.length) {
formData.enforcementBases[index] = basis.name;
formData.enforcementBasesIds[index] = basis.id || '';
}
showPopups.basis = false;
};
@ -259,6 +277,7 @@ const handleSelectEnterprise = (enterprise) => {
const handleLinkNotice = (notice) => {
formData.relatedNotice = `${notice.checkItem}`;
formData.checkCss = notice.id;
formData.lawEnforcementItemText = notice.checkItem || '';
showPopups.notice = false;
// showSuccessToast('关联成功');
};
@ -281,8 +300,9 @@ const handleShowEntrustedAgencyPicker = () => {
};
// 选择委托行政机关
const handleSelectEntrustedAgency = (agencyName) => {
formData.entrustedAgency = agencyName;
const handleSelectEntrustedAgency = ({ name, id }) => {
formData.entrustedAgency = name;
formData.entrustedAgencyId = id;
showPopups.entrustedAgency = false;
};
@ -296,54 +316,126 @@ const buildSubmitPayload = () => {
const useCommonStr = sessionStorage.getItem('useCommon');
const useCommon = JSON.parse(useCommonStr) || {};
// 主执法人员
const mainPerson = enforcementPersons.value[0] || {};
const lawEnforcer = mainPerson.name || '';
const lawEnforcerId = mainPerson.id || '';
const lawEnforcerTel = mainPerson.phonenumber || '';
const lawCertificateNumText = mainPerson.name && mainPerson.phonenumber
? `${mainPerson.name} ${mainPerson.phonenumber}`
: '';
const lawEnforcerTwo = additionalPersons.value
.filter(p => p.name)
.map(p => p.name)
// 额外执法人员(多个,逗号拼接)
const validAdditionalPersons = additionalPersons.value.filter(p => p.name);
const lawEnforcerTwo = validAdditionalPersons.map(p => p.name).join(',');
const lawEnforcerIdTwo = validAdditionalPersons.map(p => p.id).join(',');
const lawCertificateNumTwoText = validAdditionalPersons
.filter(p => p.name && p.phonenumber)
.map(p => `${p.name} ${p.phonenumber}`)
.join(',');
const lawEnforcerIdTwo = additionalPersons.value
.filter(p => p.id)
.map(p => p.id)
// 构建 lawEnforcerOther:姓名,证件号,姓名,证件号,...
const lawEnforcerOther = validAdditionalPersons
.filter(p => p.name && p.phonenumber)
.map(p => `${p.name},${p.phonenumber}`)
.join(',');
const lawEnforcerIdOther = validAdditionalPersons.map(p => p.id).join(',');
const lawEnforcerTelOther = validAdditionalPersons.map(p => p.phonenumber || '').join(',');
// 任务来源:数字和中文名称
const lawEnforceCategory = categoryOptions.value.find(item => item.text === formData.category)?.value || '';
const lawEnforceCategoryText = formData.category || '';
// 执法类型:数字和中文名称
const checkCategory = taskSourceOptions.find(item => item.text === formData.taskSource)?.value || '';
const checkCategory = checkCategoryOptions.value.find(item => item.text === formData.taskSource)?.value || '';
const checkCategoryText = formData.taskSource || '';
// 执法依据ID列表
const lawEnforcementBasis = formData.enforcementBasesIds ? formData.enforcementBasesIds.join(',') : '';
// 非行政执法payload
if (isNonEnforcement.value) {
return {
enterpriseName: enterpriseData.value.enterpriseName || '',
enterpriseNumber: enterpriseData.value.enterpriseNumber || '',
oureauDeptName: formData.enforcementUnit || '',
checkCss: formData.checkCss || '',
enterpriseAddress: enterpriseData.value.enterpriseAddress || '',
enforcementTime: formData.enforcementTime || '',
lawEnforcer: lawEnforcer,
lawEnforcerId: lawEnforcerId,
lawEnforcerTel: lawEnforcerTel,
lawEnforcerOther: lawEnforcerOther,
lawEnforcerIdOther: lawEnforcerIdOther,
lawEnforcerTelOther: lawEnforcerTelOther,
bureauDeptId: useCommon.bureauUnitId || '',
bureauDeptName: useCommon.bureauUnitName || '',
creditcode: '',
lawEnforcementType: checkCategory,
lawEnforcementTypeText: checkCategoryText,
lawEnforcementItem: '',
lawEnforcementItemText: formData.lawEnforcementItemText || '',
lawEnforcementBasis: lawEnforcementBasis,
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '',
fileList: buildFileList(),
userId: useCommon.userId || '',
reason: formData.reason || '',
checkCss: formData.checkCss || '0'
};
}
// 行政执法payload
return {
id: formData.id || '',
lawEnforcement: useCommon.deptName || '',
lawEnforcementId: useCommon.deptId || '',
bureauDeptId: useCommon.bureauUnitId || '',
bureauDeptName: useCommon.bureauUnitName || '',
lawEnforcer: lawEnforcer,
lawEnforcerId: lawEnforcerId,
lawCertificateNumText: lawCertificateNumText,
lawEnforcerTwo: lawEnforcerTwo,
lawEnforcerIdTwo: lawEnforcerIdTwo,
lawEnforceCategory: lawEnforceCategory,
lawEnforceCategoryText: lawEnforceCategoryText,
lawCertificateNumTwoText: lawCertificateNumTwoText,
subsidiaryer: formData.subsidiaryer || '',
subsidiaryerId: formData.subsidiaryerId || '',
subsidiaryerText: formData.subsidiaryerText || '',
lawEnforcementItem: '',
lawEnforcementItemText: formData.lawEnforcementItemText || '',
lawEnforcementBasis: lawEnforcementBasis,
reslut: formData.reslut || 0,
remark: formData.remark || '',
enterpriseName: enterpriseData.value.enterpriseName || '',
enterpriseNumber: enterpriseData.value.enterpriseNumber || '',
enterpriseAddress: enterpriseData.value.enterpriseAddress || '',
enforcementTime: formData.enforcementTime || '',
updateTimeFlag: 0,
fileList: buildFileList(),
fileListObj: formData.fileListObj || [],
isSubmit: 0,
unionNo: formData.unionNo || '',
hasUnion: formData.jointEnforcement === '1' ? 1 : 0,
hasAuto: formData.entrustedEnforcement === '1' ? 1 : 0,
lawId: formData.lawId || '',
lawText: formData.lawText || '',
uniteCheck: formData.uniteCheck || '',
enforce: formData.enforce || '',
checkCss: formData.checkCss || '',
enforceReason: formData.enforceReason || '',
lawField: formData.lawField || '',
lawFieldText: formData.lawFieldText || '',
checkCategory: checkCategory,
checkCategoryText: checkCategoryText,
hasUnion: formData.jointEnforcement || 0,
hasAuto: formData.entrustedEnforcement || 0,
lawEnforcement: useCommon.deptName || '',
lawEnforcementId: useCommon.deptId || '',
oureauDeptId: useCommon.bureauUnitId || '',
isRealUnion: formData.jointEnforcement === 1 ? 1 : 0,
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '',
fileList: buildFileList(),
enforcementTime: formData.enforcementTime || '',
enforcementMatter: formData.enforcementMatter || '',
lawEnforceCategory: lawEnforceCategory,
lawEnforceCategoryText: lawEnforceCategoryText,
userId: useCommon.userId || '',
deptTexts: formData.deptTexts || '',
deptObjs: formData.deptObjs || [],
userObjs: formData.userObjs || [],
isUnite: formData.isUnite || 0,
entrustDeptName: formData.entrustedAgency || '',
entrustDeptId: formData.entrustedAgencyId || '',
reason: formData.reason || '',
result: formData.result || '',
remark: formData.remark || ''
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '',
oureauDeptName: formData.enforcementUnit || ''
};
};
@ -376,28 +468,21 @@ const buildFileList = () => {
return (formData.fileList || [])
.filter(img => img && (img.url || img.content))
.map(img => {
return img.url || '';
return img.url || (img.content || '');
})
.filter(Boolean);
};
// 提交表单
const onSubmit = () => {
// 有未上传完的附件则拦截
const uploadingFile = (formData.fileList || []).find(img => img && img.status === 'uploading');
if (uploadingFile) {
showToast('附件上传中,请稍后');
return;
}
showConfirmDialog({
title: '确认提交',
message: '确认提交吗?提交后将无法修改。',
width: '80%',
}).then(() => {
const payload = buildSubmitPayload();
console.log('提交数据:', payload);
submitEnfRegistration(payload, (res) => {
const submitApi = isNonEnforcement.value ? addNonRegistration : submitEnfRegistration;
submitApi(payload, (res) => {
if (res.code === 200 || res.code === 0) {
showSuccessToast('提交成功');
router.push('/enforcement/enforcementList');
@ -468,6 +553,9 @@ onMounted(() => {
categoryOptions.value = columns;
});
loadDict('check_category', (columns) => {
checkCategoryOptions.value = columns;
});
// 设置当前时间
const now = new Date();
formData.enforcementTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}`;

Loading…
Cancel
Save