From afc498fdbec28979ab87be1fb8de7ea259885470 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Thu, 12 Feb 2026 13:26:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/admin/workorder/WorkOrder.api.ts | 26 +- src/views/admin/workorder/WorkOrderList.vue | 35 +- .../workorder/components/DataSourceForm.vue | 316 ++++++++++++++++++ .../workorder/components/DataSourceModal.vue | 87 +++++ .../workorder/components/WorkOrderFankui.vue | 40 ++- .../datasource/GdglDataSourceModal.vue | 119 +++++++ 6 files changed, 601 insertions(+), 22 deletions(-) create mode 100644 src/views/admin/workorder/components/DataSourceForm.vue create mode 100644 src/views/admin/workorder/components/DataSourceModal.vue create mode 100644 src/views/monitor/datasource/GdglDataSourceModal.vue diff --git a/src/views/admin/workorder/WorkOrder.api.ts b/src/views/admin/workorder/WorkOrder.api.ts index 54b257c..332ff31 100644 --- a/src/views/admin/workorder/WorkOrder.api.ts +++ b/src/views/admin/workorder/WorkOrder.api.ts @@ -6,11 +6,14 @@ const { createConfirm } = useMessage(); enum Api { list = '/workorder/workOrder/list', save='/workorder/workOrder/add', + saveSjygl='/sys/dataSource/add', edit='/workorder/workOrder/edit', + updateMqById='/workorder/workOrder/updateMqById', deleteOne = '/workorder/workOrder/delete', deleteBatch = '/workorder/workOrder/deleteBatch', importExcel = '/workorder/workOrder/importExcel', exportXls = '/workorder/workOrder/exportXls', + testConnection = '/online/cgreport/api/testConnection', } /** @@ -78,4 +81,25 @@ export const saveOrUpdate = (params, isUpdate) => { */ export const edit = (params) => { return defHttp.post({ url: Api.edit, params }, { isTransformResponse: false }); -} \ No newline at end of file +} +export const updateMqById = (params) => { + return defHttp.post({ url: Api.updateMqById, params }, { isTransformResponse: false }); +} +/** + * 保存数据源信息 + * @param params + */ +export const saveSjygl = (params) => { + return defHttp.post({ url: Api.saveSjygl, params }, { isTransformResponse: false }); +} + + + + +/** + * 测试连接 + * @param params + */ +export const testConnection = (params) => { + return defHttp.post({ url: Api.testConnection, params }); +}; \ No newline at end of file diff --git a/src/views/admin/workorder/WorkOrderList.vue b/src/views/admin/workorder/WorkOrderList.vue index 3162887..b9495cb 100644 --- a/src/views/admin/workorder/WorkOrderList.vue +++ b/src/views/admin/workorder/WorkOrderList.vue @@ -66,6 +66,9 @@ + + + @@ -81,8 +84,13 @@ import { useUserStore } from '/@/store/modules/user'; import JInput from "/@/components/Form/src/jeecg/components/JInput.vue"; import { useMessage } from '/@/hooks/web/useMessage'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; +import GdglDataSourceModal from './components/DataSourceModal.vue'; +import {useDrawer} from "@/components/Drawer"; + + const formRef = ref(); +const registerDrawer = ref(); const queryParam = reactive({}); const toggleSearchStatus = ref(false); const registerModal = ref(); @@ -129,21 +137,13 @@ function handleSuperQuery(params) { }); searchQuery(); } - /** - * 新增事件 + * 数据源管理 */ -function handleAdd() { - registerModal.value.disableSubmit = false; - registerModal.value.add(); -} - -/** - * 编辑事件 - */ -function handleEdit(record: Recordable) { - registerModal.value.disableSubmit = false; - registerModal.value.edit(record); +function handleSjygl(record){ + console.log("🚀 ~ handleSjygl ~ record:", record) + registerDrawer.value.add(record); + registerDrawer.value.disableSubmit = false; } /** @@ -182,10 +182,15 @@ function getTableAction(record) { label: '机构详情', onClick: handleOrgDetail.bind(null, record) }, + { + label: '数据源管理', + onClick: handleSjygl.bind(null, record), + ifShow: record.status == '0' + }, { label: '反馈', onClick: handleQueren.bind(null, record), - ifShow: record.status == '0' + ifShow: record.status == '1' }, ]; } @@ -194,6 +199,8 @@ function getTableAction(record) { * 接收 */ function handleQueren(record) { + record.accountNo = record.orgTel; + record.passwordText = "123456"; registerModal.value.disableSubmit = false; registerModal.value.orgFankui(record); } diff --git a/src/views/admin/workorder/components/DataSourceForm.vue b/src/views/admin/workorder/components/DataSourceForm.vue new file mode 100644 index 0000000..7511d43 --- /dev/null +++ b/src/views/admin/workorder/components/DataSourceForm.vue @@ -0,0 +1,316 @@ + + + + + diff --git a/src/views/admin/workorder/components/DataSourceModal.vue b/src/views/admin/workorder/components/DataSourceModal.vue new file mode 100644 index 0000000..3393087 --- /dev/null +++ b/src/views/admin/workorder/components/DataSourceModal.vue @@ -0,0 +1,87 @@ + + + + + + diff --git a/src/views/admin/workorder/components/WorkOrderFankui.vue b/src/views/admin/workorder/components/WorkOrderFankui.vue index bedf469..ee31af4 100644 --- a/src/views/admin/workorder/components/WorkOrderFankui.vue +++ b/src/views/admin/workorder/components/WorkOrderFankui.vue @@ -55,10 +55,21 @@ - - + + + + + + + + + + + + @@ -66,6 +77,14 @@ + + + + + + @@ -78,7 +97,7 @@ import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted import { defHttp } from '/@/utils/http/axios'; import { useMessage } from '/@/hooks/web/useMessage'; import { getValueType } from '/@/utils'; -import { saveOrUpdate } from '../WorkOrder.api'; +import { updateMqById } from '../WorkOrder.api'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; @@ -116,6 +135,9 @@ const formData = reactive>({ handleBy: '', replyFile: '', replyContent: '', + netUrl: '', + accountNo: '', + passwordText: '', }); const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 5 } }); @@ -123,7 +145,10 @@ const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 16 } }); const confirmLoading = ref(false); //表单验证 const validatorRules = reactive({ - replyContent: [{ required: true, message: '请输入反馈内容' },], + // replyContent: [{ required: true, message: '请输入反馈内容' },], + netUrl: [{ required: true, message: '请输入访问地址' },], + accountNo: [{ required: true, message: '请输入账号' },], + passwordText: [{ required: true, message: '请输入密码' },], }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); @@ -153,6 +178,7 @@ function open(record) { tmpData[key] = record[key] } }) + //赋值 Object.assign(formData, tmpData); }); @@ -196,7 +222,7 @@ async function submitForm() { model.handleBy = userStore.getUserInfo.realname; model.status = '3'; - await saveOrUpdate(model, isUpdate.value) + await updateMqById(model, isUpdate.value) .then((res) => { if (res.success) { createMessage.success(res.message); diff --git a/src/views/monitor/datasource/GdglDataSourceModal.vue b/src/views/monitor/datasource/GdglDataSourceModal.vue new file mode 100644 index 0000000..7bbc6fc --- /dev/null +++ b/src/views/monitor/datasource/GdglDataSourceModal.vue @@ -0,0 +1,119 @@ + +