From d937a1578e77d4b098490515cbb2f17aa0ef3f15 Mon Sep 17 00:00:00 2001
From: wsm <2746563060@qq.com>
Date: Thu, 30 Jul 2026 17:39:51 +0800
Subject: [PATCH] =?UTF-8?q?feat(fixcontact):=20=E6=96=B0=E5=A2=9E=E5=AE=9A?=
=?UTF-8?q?=E7=82=B9=E8=81=94=E7=B3=BB=E5=8D=95=E5=89=8D=E7=AB=AF=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
列表页含展开反馈记录子表,表单使用原生 Ant Design Vue 模式,
选人组件使用 DeptRoleUserSelectDropDown 按部门角色过滤。
---
.../bg/fixcontact/FixedContact20260730.api.ts | 75 ++
.../fixcontact/FixedContact20260730.data.ts | 143 ++++
.../fixcontact/FixedContact20260730List.vue | 688 ++++++++++++++++++
.../FixedContact20260730BPMFeedbackModal.vue | 210 ++++++
.../FixedContact20260730BPMForm.vue | 660 +++++++++++++++++
.../FixedContact20260730FeedbackForm.vue | 194 +++++
.../FixedContact20260730FeedbackModal.vue | 59 ++
.../components/FixedContact20260730Form.vue | 298 ++++++++
.../components/FixedContact20260730Modal.vue | 64 ++
9 files changed, 2391 insertions(+)
create mode 100644 src/views/bg/fixcontact/FixedContact20260730.api.ts
create mode 100644 src/views/bg/fixcontact/FixedContact20260730.data.ts
create mode 100644 src/views/bg/fixcontact/FixedContact20260730List.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730FeedbackForm.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730FeedbackModal.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730Form.vue
create mode 100644 src/views/bg/fixcontact/components/FixedContact20260730Modal.vue
diff --git a/src/views/bg/fixcontact/FixedContact20260730.api.ts b/src/views/bg/fixcontact/FixedContact20260730.api.ts
new file mode 100644
index 0000000..892c81e
--- /dev/null
+++ b/src/views/bg/fixcontact/FixedContact20260730.api.ts
@@ -0,0 +1,75 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from '/@/hooks/web/useMessage';
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/bg/fixcontact/fixedContact20260730/list',
+ save = '/bg/fixcontact/fixedContact20260730/add',
+ edit = '/bg/fixcontact/fixedContact20260730/edit',
+ deleteOne = '/bg/fixcontact/fixedContact20260730/delete',
+ deleteBatch = '/bg/fixcontact/fixedContact20260730/deleteBatch',
+ importExcel = '/bg/fixcontact/fixedContact20260730/importExcel',
+ exportXls = '/bg/fixcontact/fixedContact20260730/exportXls',
+ queryById = '/bg/fixcontact/fixedContact20260730/queryById',
+ fixedContactFeedbackList = '/bg/fixcontact/fixedContact20260730/queryFixedContactFeedback20260730ByMainId',
+}
+
+export const getExportUrl = Api.exportXls;
+export const getImportUrl = Api.importExcel;
+
+export const list = (params) =>
+ defHttp.get({ url: Api.list, params });
+
+export const deleteOne = (params, handleSuccess) => {
+ return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => {
+ handleSuccess();
+ });
+};
+
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => {
+ handleSuccess();
+ });
+ },
+ });
+};
+
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+};
+
+export const queryById = (id) =>
+ defHttp.get({ url: Api.queryById, params: { id } });
+
+export const fixedContactFeedbackList = (params) => {
+ if (params['id']) {
+ return defHttp.get({ url: Api.fixedContactFeedbackList, params });
+ }
+ return Promise.resolve([]);
+};
+
+const BpmApi = {
+ saveBpmForm: '/bg/fixcontact/fixedContact20260730/saveBpmForm',
+ setBpmVariableLocal: '/act/process/setBpmVariableLocal',
+};
+
+export const saveBpmForm = (params) => {
+ return defHttp.post({ url: BpmApi.saveBpmForm, params }, { isTransformResponse: false });
+};
+
+export const setBpmVariableLocal = (params) => {
+ return defHttp.post({ url: BpmApi.setBpmVariableLocal, params }, { isTransformResponse: false });
+};
+
+export const withDrawFixContact = (params) => {
+ return defHttp.post({ url: '/bg/fixcontact/fixedContact20260730/withDrawFixContact', params }, { joinParamsToUrl: true, isTransformResponse: false });
+};
diff --git a/src/views/bg/fixcontact/FixedContact20260730.data.ts b/src/views/bg/fixcontact/FixedContact20260730.data.ts
new file mode 100644
index 0000000..2a8d73d
--- /dev/null
+++ b/src/views/bg/fixcontact/FixedContact20260730.data.ts
@@ -0,0 +1,143 @@
+import { BasicColumn } from '/@/components/Table';
+
+export const columns: BasicColumn[] = [
+ {
+ title: '序号',
+ align: 'center',
+ dataIndex: 'seqNo',
+ width: '80px',
+ },
+ {
+ title: '表单编号',
+ align: 'center',
+ dataIndex: 'formNo',
+ width: '160px',
+ },
+ {
+ title: '定点联系所领导',
+ align: 'center',
+ dataIndex: 'contactLeader_dictText',
+ width: '120px',
+ },
+ {
+ title: '联系单位(部门)',
+ align: 'center',
+ dataIndex: 'contactDept_dictText',
+ width: '160px',
+ },
+ {
+ title: '联系时间',
+ align: 'center',
+ dataIndex: 'contactTime',
+ width: '110px',
+ customRender: ({ text }) => {
+ text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
+ return text;
+ },
+ },
+ {
+ title: '座谈地点',
+ align: 'center',
+ dataIndex: 'meetingPlace',
+ width: '160px',
+ },
+ {
+ title: '相关分管所领导',
+ align: 'center',
+ dataIndex: 'relatedLeader_dictText',
+ width: '120px',
+ },
+ {
+ title: '申请人',
+ align: 'center',
+ dataIndex: 'applicant_dictText',
+ width: '100px',
+ },
+ {
+ title: '主办部门',
+ align: 'center',
+ dataIndex: 'hostDept_dictText',
+ width: '120px',
+ },
+ {
+ title: '协办部门',
+ align: 'center',
+ dataIndex: 'coDept_dictText',
+ width: '120px',
+ },
+ {
+ title: '督办次数',
+ align: 'center',
+ dataIndex: 'superviseCount',
+ width: '80px',
+ },
+];
+
+export const fixedContactFeedbackColumns: BasicColumn[] = [
+ {
+ title: '计划完成时间',
+ align: 'center',
+ dataIndex: 'planFinishTime',
+ width: 120,
+ customRender: ({ text }) => {
+ text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
+ return text;
+ },
+ },
+ {
+ title: '计划完成情况',
+ align: 'center',
+ dataIndex: 'planFinishStatus',
+ width: 160,
+ },
+ {
+ title: '处理意见、承办情况',
+ align: 'center',
+ dataIndex: 'handleOpinion',
+ width: 200,
+ },
+ {
+ title: '办结情况',
+ align: 'center',
+ dataIndex: 'finishStatus',
+ width: 160,
+ },
+ {
+ title: '实际完成时间',
+ align: 'center',
+ dataIndex: 'actualFinishTime',
+ width: 120,
+ customRender: ({ text }) => {
+ text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
+ return text;
+ },
+ },
+ {
+ title: '实际完成情况',
+ align: 'center',
+ dataIndex: 'actualFinishStatus',
+ width: 160,
+ },
+ {
+ title: '反馈人',
+ align: 'center',
+ dataIndex: 'feedbackUser_dictText',
+ width: 110,
+ },
+ {
+ title: '反馈部门',
+ align: 'center',
+ dataIndex: 'feedbackDept_dictText',
+ width: 150,
+ },
+];
+
+export const superQuerySchema = {
+ formNo: { title: '表单编号', order: 0, view: 'text', type: 'string' },
+ contactLeader: { title: '定点联系所领导', order: 1, view: 'sel_user', type: 'string' },
+ contactTime: { title: '联系时间', order: 2, view: 'date', type: 'string' },
+ relatedLeader: { title: '相关分管所领导', order: 3, view: 'sel_user', type: 'string' },
+ applicant: { title: '申请人', order: 4, view: 'sel_user', type: 'string' },
+ seqNo: { title: '序号', order: 5, view: 'text', type: 'string' },
+ meetingPlace: { title: '座谈地点', order: 6, view: 'text', type: 'string' },
+};
diff --git a/src/views/bg/fixcontact/FixedContact20260730List.vue b/src/views/bg/fixcontact/FixedContact20260730List.vue
new file mode 100644
index 0000000..9cc4ad2
--- /dev/null
+++ b/src/views/bg/fixcontact/FixedContact20260730List.vue
@@ -0,0 +1,688 @@
+
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+ 流程操作
+
+
+ 表单操作
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
+
+
+
反馈记录
+
+ 加载中
+
+
+ 共 {{ getFeedbackCount(record) }} 条
+
+
+
当前定点联系单的反馈办理记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue b/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue
new file mode 100644
index 0000000..3638666
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue b/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue
new file mode 100644
index 0000000..ade3dc3
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue
@@ -0,0 +1,660 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730FeedbackForm.vue b/src/views/bg/fixcontact/components/FixedContact20260730FeedbackForm.vue
new file mode 100644
index 0000000..06ee785
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730FeedbackForm.vue
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730FeedbackModal.vue b/src/views/bg/fixcontact/components/FixedContact20260730FeedbackModal.vue
new file mode 100644
index 0000000..fd2ba11
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730FeedbackModal.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730Form.vue b/src/views/bg/fixcontact/components/FixedContact20260730Form.vue
new file mode 100644
index 0000000..ef93599
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730Form.vue
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 是
+ 否
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bg/fixcontact/components/FixedContact20260730Modal.vue b/src/views/bg/fixcontact/components/FixedContact20260730Modal.vue
new file mode 100644
index 0000000..7ef80b5
--- /dev/null
+++ b/src/views/bg/fixcontact/components/FixedContact20260730Modal.vue
@@ -0,0 +1,64 @@
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+