From b5d24efeae8a3b141ed39452dc0e42a114430011 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com>
Date: Tue, 10 Jun 2025 16:21:17 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=99=BA=E8=83=BD=E7=94=B5=E8=A1=A8?=
=?UTF-8?q?=E6=B0=B4=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../camera/components/CameraUploadForm.vue | 3 +
.../iot/tq/electricity/electricity.api.ts | 46 ++++
.../iot/tq/electricity/electricity.data.ts | 154 +++++++++++++
src/views/iot/tq/electricity/index.vue | 207 +++++++++++++++++
src/views/iot/tq/water/index.vue | 215 ++++++++++++++++++
src/views/iot/tq/water/water.api.ts | 46 ++++
src/views/iot/tq/water/water.data.ts | 162 +++++++++++++
7 files changed, 833 insertions(+)
create mode 100644 src/views/iot/tq/electricity/electricity.api.ts
create mode 100644 src/views/iot/tq/electricity/electricity.data.ts
create mode 100644 src/views/iot/tq/electricity/index.vue
create mode 100644 src/views/iot/tq/water/index.vue
create mode 100644 src/views/iot/tq/water/water.api.ts
create mode 100644 src/views/iot/tq/water/water.data.ts
diff --git a/src/views/iot/tplink/camera/components/CameraUploadForm.vue b/src/views/iot/tplink/camera/components/CameraUploadForm.vue
index 108ac7a..a0d7c60 100644
--- a/src/views/iot/tplink/camera/components/CameraUploadForm.vue
+++ b/src/views/iot/tplink/camera/components/CameraUploadForm.vue
@@ -173,8 +173,11 @@ import {
if (percentRate.value >= 100) {
clearInterval(timerRef.value);
canUpload.value = true;
+ // uploadStop();
}
}).catch(res=>{
+ clearInterval(timerRef.value);
+ canUpload.value = true;
console.log(res);
});
}
diff --git a/src/views/iot/tq/electricity/electricity.api.ts b/src/views/iot/tq/electricity/electricity.api.ts
new file mode 100644
index 0000000..8ab7c1d
--- /dev/null
+++ b/src/views/iot/tq/electricity/electricity.api.ts
@@ -0,0 +1,46 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+ list = '/iot/tq/electricityMeter/list',
+ eleReset = '/iot/tq/electricityMeter/eleReset',
+ eleControl = '/iot/tq/electricityMeter/eleControl',
+ eleRead = '/iot/tq/electricityMeter/eleRead',
+ getAllMeter = '/iot/tq/common/device/getAllMeter',
+ getAllCollector = '/iot/tq/common/device/getAllCollector',
+}
+
+/**
+ * 电表列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 电表清零
+ * @param params
+ */
+export const eleReset = (params?) => defHttp.get({ url: Api.eleReset, params });
+
+/**
+ * 拉合闸
+ * @param params
+ */
+export const eleControl = (params?) => defHttp.get({ url: Api.eleControl, params });
+
+/**
+ * 抄电表
+ * @param params
+ */
+export const eleRead = (params?) => defHttp.get({ url: Api.eleRead, params });
+
+/**
+ * 获取设备信息
+ * @param params
+ */
+export const getAllMeter = (params?) => defHttp.get({ url: Api.getAllMeter, params });
+
+/**
+ * 采集器设备信息
+ * @param params
+ */
+export const getAllCollector = (params?) => defHttp.get({ url: Api.getAllCollector, params });
diff --git a/src/views/iot/tq/electricity/electricity.data.ts b/src/views/iot/tq/electricity/electricity.data.ts
new file mode 100644
index 0000000..82bda7a
--- /dev/null
+++ b/src/views/iot/tq/electricity/electricity.data.ts
@@ -0,0 +1,154 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '机构',
+ align: "center",
+ dataIndex: 'departName'
+ },
+ {
+ title: '护理单元',
+ align: "center",
+ dataIndex: 'nuName'
+ },
+ {
+ title: '表号',
+ align: "center",
+ dataIndex: 'address'
+ },
+ {
+ title: '采集器号',
+ align: "center",
+ dataIndex: 'cid'
+ },
+ {
+ title: '设备状态',
+ align: "center",
+ dataIndex: 'relayState',
+ customRender:({record})=>{
+ return record.relayState?(record.relayState=='1'?'合闸':'拉闸'):'';
+ },
+ },
+ {
+ title: '在线状态',
+ align: "center",
+ dataIndex: 'online',
+ customRender:({record})=>{
+ return record.online?(record.online=='true'?'在线':'离线'):'';
+ },
+ },
+ {
+ title: '信号强度',
+ align: "center",
+ dataIndex: 'csq',
+ customRender:({record})=>{
+ if(record.csq){
+ if(record.csq < 10){
+ return '低';
+ }else if(record.csq > 20){
+ return '高';
+ }else{
+ return '中';
+ }
+ }else{
+ return '';
+ }
+ }
+ },
+ {
+ title: '用电量KWH',
+ align: "center",
+ dataIndex: 'eleValue'
+ },
+ {
+ title: '上次抄表时间',
+ align: "center",
+ dataIndex: 'readTime'
+ },
+ {
+ title: '上次上线时间',
+ align: "center",
+ dataIndex: 'connectTime'
+ },
+ {
+ title: '上次掉线时间',
+ align: "center",
+ dataIndex: 'disconnectTime'
+ },
+ {
+ title: '描述',
+ align: "center",
+ dataIndex: 'remark'
+ },
+];
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: '机构',
+ field: 'deviceStatus',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择机构',
+ dictCode: 'sys_depart,depart_name,id,org_category = 1 order by depart_name asc',
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '护理单元',
+ field: 'deviceStatus',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择护理单元',
+ dictCode: 'nu_base_info,nu_name,id,del_flag = 0 order by nu_name asc',
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '表号',
+ field: 'address',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+ {
+ label: '设备状态',
+ field: 'relayState',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择状态',
+ options: [
+ { label: '合闸', value: '1' },
+ { label: '拉闸', value: '0' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '在线状态',
+ field: 'online',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择状态',
+ options: [
+ { label: '在线', value: 'true' },
+ { label: '离线', value: 'false' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '信号强度',
+ field: 'csq',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择强度',
+ options: [
+ { label: '高', value: '1' },
+ { label: '中', value: '2' },
+ { label: '低', value: '3' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+];
diff --git a/src/views/iot/tq/electricity/index.vue b/src/views/iot/tq/electricity/index.vue
new file mode 100644
index 0000000..e145190
--- /dev/null
+++ b/src/views/iot/tq/electricity/index.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+ 同步设备
+ 同步采集器
+
+
+
+ {{record.address}}
+
+
+
+ 合闸
+
+
+ 拉闸
+
+
+
+
+ 在线
+
+
+ 离线
+
+
+
+
+ 高
+
+
+ 低
+
+
+ 中
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/water/index.vue b/src/views/iot/tq/water/index.vue
new file mode 100644
index 0000000..fbcce82
--- /dev/null
+++ b/src/views/iot/tq/water/index.vue
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+ 同步设备
+ 同步采集器
+
+
+
+ {{record.address}}
+
+
+
+ 开阀
+
+
+ 关阀
+
+
+
+
+
+ 在线
+
+
+ 离线
+
+
+
+
+ 高
+
+
+ 低
+
+
+ 中
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/water/water.api.ts b/src/views/iot/tq/water/water.api.ts
new file mode 100644
index 0000000..fcb3020
--- /dev/null
+++ b/src/views/iot/tq/water/water.api.ts
@@ -0,0 +1,46 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+ list = '/iot/tq/waterMeter/list',
+ waterReset = '/iot/tq/waterMeter/waterReset',
+ waterControl = '/iot/tq/waterMeter/waterControl',
+ waterRead = '/iot/tq/waterMeter/waterRead',
+ getAllMeter = '/iot/tq/common/device/getAllMeter',
+ getAllCollector = '/iot/tq/common/device/getAllCollector',
+}
+
+/**
+ * 电表列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 水表清零
+ * @param params
+ */
+export const waterReset = (params?) => defHttp.get({ url: Api.waterReset, params });
+
+/**
+ * 开关闸
+ * @param params
+ */
+export const waterControl = (params?) => defHttp.get({ url: Api.waterControl, params });
+
+/**
+ * 抄电表
+ * @param params
+ */
+export const waterRead = (params?) => defHttp.get({ url: Api.waterRead, params });
+
+/**
+ * 获取设备信息
+ * @param params
+ */
+export const getAllMeter = (params?) => defHttp.get({ url: Api.getAllMeter, params });
+
+/**
+ * 采集器设备信息
+ * @param params
+ */
+export const getAllCollector = (params?) => defHttp.get({ url: Api.getAllCollector, params });
diff --git a/src/views/iot/tq/water/water.data.ts b/src/views/iot/tq/water/water.data.ts
new file mode 100644
index 0000000..a87d91c
--- /dev/null
+++ b/src/views/iot/tq/water/water.data.ts
@@ -0,0 +1,162 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '机构',
+ align: "center",
+ dataIndex: 'departName'
+ },
+ {
+ title: '护理单元',
+ align: "center",
+ dataIndex: 'nuName'
+ },
+ {
+ title: '表号',
+ align: "center",
+ dataIndex: 'address'
+ },
+ {
+ title: '采集器号',
+ align: "center",
+ dataIndex: 'cid'
+ },
+ {
+ title: '设备状态',
+ align: "center",
+ dataIndex: 'relayState',
+ customRender:({record})=>{
+ return record.relayState?(record.relayState=='1'?'合闸':'拉闸'):'';
+ },
+ },
+ // {
+ // title: '电池状态',
+ // align: "center",
+ // dataIndex: 'batteryState',
+ // customRender:({record})=>{
+ // return record.batteryState?(record.batteryState=='0'?'正常':'低电'):'';
+ // },
+ // },
+ {
+ title: '在线状态',
+ align: "center",
+ dataIndex: 'online',
+ customRender:({record})=>{
+ return record.online?(record.online=='true'?'在线':'离线'):'';
+ },
+ },
+ {
+ title: '信号强度',
+ align: "center",
+ dataIndex: 'csq',
+ customRender:({record})=>{
+ if(record.csq){
+ if(record.csq < 10){
+ return '低';
+ }else if(record.csq > 20){
+ return '高';
+ }else{
+ return '中';
+ }
+ }else{
+ return '';
+ }
+ }
+ },
+ {
+ title: '用水量m³',
+ align: "center",
+ dataIndex: 'waterValue'
+ },
+ {
+ title: '上次抄表时间',
+ align: "center",
+ dataIndex: 'readTime'
+ },
+ {
+ title: '上次上线时间',
+ align: "center",
+ dataIndex: 'connectTime'
+ },
+ {
+ title: '上次掉线时间',
+ align: "center",
+ dataIndex: 'disconnectTime'
+ },
+ {
+ title: '描述',
+ align: "center",
+ dataIndex: 'remark'
+ },
+];
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: '机构',
+ field: 'deviceStatus',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择机构',
+ dictCode: 'sys_depart,depart_name,id,org_category = 1 order by depart_name asc',
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '护理单元',
+ field: 'deviceStatus',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择护理单元',
+ dictCode: 'nu_base_info,nu_name,id,del_flag = 0 order by nu_name asc',
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '表号',
+ field: 'address',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+ {
+ label: '设备状态',
+ field: 'relayState',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择状态',
+ options: [
+ { label: '合闸', value: '1' },
+ { label: '拉闸', value: '0' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '在线状态',
+ field: 'online',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择状态',
+ options: [
+ { label: '在线', value: 'true' },
+ { label: '离线', value: 'false' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+ {
+ label: '信号强度',
+ field: 'csq',
+ component: 'JDictSelectTag',
+ componentProps: {
+ placeholder: '请选择强度',
+ options: [
+ { label: '高', value: '1' },
+ { label: '中', value: '2' },
+ { label: '低', value: '3' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+];
From fc25437dc3344d25b030a4cfd015a34cfa2b4bca Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Wed, 11 Jun 2025 11:17:12 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=91=E5=AE=9A?=
=?UTF-8?q?=E6=9C=BA=E6=9E=84=E6=8A=A4=E7=90=86=E5=8D=95=E5=85=83=E6=9F=A5?=
=?UTF-8?q?=E7=9C=8B=E6=97=A5=E5=BF=97=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../NuEmployeesAdvisoryInfo.api.ts | 72 ++++
.../NuEmployeesAdvisoryInfo.data.ts | 248 +++++++++++++
.../NuEmployeesAdvisoryInfoList.vue | 257 ++++++++++++++
.../NuEmployeesAdvisoryInfoForm.vue | 330 ++++++++++++++++++
.../NuEmployeesAdvisoryInfoModal.vue | 77 ++++
.../iot/tq/electricity/apilog/ApiLogList.vue | 92 +++++
.../iot/tq/electricity/apilog/ApiLogModal.vue | 66 ++++
src/views/iot/tq/electricity/index.vue | 67 +++-
.../NuIotTqApiRequestLog.api.ts | 72 ++++
.../NuIotTqApiRequestLog.data.ts | 72 ++++
.../NuIotTqApiRequestLogList.vue | 250 +++++++++++++
.../components/NuIotTqApiRequestLogForm.vue | 200 +++++++++++
.../components/NuIotTqApiRequestLogModal.vue | 77 ++++
.../utils/departUtils/DepartUtils.api.ts | 72 ++++
.../utils/departUtils/DepartUtils.data.ts | 60 ++++
.../utils/departUtils/DepartUtilsList.vue | 181 ++++++++++
.../utils/departUtils/DepartUtilsModal.vue | 66 ++++
src/views/utils/nuUtils/HldyUtils.api.ts | 15 +
src/views/utils/nuUtils/HldyUtils.data.ts | 55 +++
src/views/utils/nuUtils/HldyUtilsList.vue | 174 +++++++++
src/views/utils/nuUtils/HldyUtilsModal.vue | 66 ++++
21 files changed, 2567 insertions(+), 2 deletions(-)
create mode 100644 src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.api.ts
create mode 100644 src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.data.ts
create mode 100644 src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfoList.vue
create mode 100644 src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoForm.vue
create mode 100644 src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoModal.vue
create mode 100644 src/views/iot/tq/electricity/apilog/ApiLogList.vue
create mode 100644 src/views/iot/tq/electricity/apilog/ApiLogModal.vue
create mode 100644 src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.api.ts
create mode 100644 src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.data.ts
create mode 100644 src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLogList.vue
create mode 100644 src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogForm.vue
create mode 100644 src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogModal.vue
create mode 100644 src/views/utils/departUtils/DepartUtils.api.ts
create mode 100644 src/views/utils/departUtils/DepartUtils.data.ts
create mode 100644 src/views/utils/departUtils/DepartUtilsList.vue
create mode 100644 src/views/utils/departUtils/DepartUtilsModal.vue
create mode 100644 src/views/utils/nuUtils/HldyUtils.api.ts
create mode 100644 src/views/utils/nuUtils/HldyUtils.data.ts
create mode 100644 src/views/utils/nuUtils/HldyUtilsList.vue
create mode 100644 src/views/utils/nuUtils/HldyUtilsModal.vue
diff --git a/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.api.ts b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.api.ts
new file mode 100644
index 0000000..b4a33a6
--- /dev/null
+++ b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/list',
+ save='/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/add',
+ edit='/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/edit',
+ deleteOne = '/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/delete',
+ deleteBatch = '/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/deleteBatch',
+ importExcel = '/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/importExcel',
+ exportXls = '/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param 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();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.data.ts b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.data.ts
new file mode 100644
index 0000000..dc6d2b0
--- /dev/null
+++ b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfo.data.ts
@@ -0,0 +1,248 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+import {JVxeTypes, JVxeColumn, JVxeTableInstance} from '/@/components/jeecg/JVxeTable/types'
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '联系电话',
+ align: "center",
+ dataIndex: 'tel'
+ },
+ {
+ title: '状态',
+ align: "center",
+ dataIndex: 'status',
+ },
+ {
+ title: '审核备注',
+ align: "center",
+ dataIndex: 'content',
+ defaultHidden: true,
+ },
+ {
+ title: '机构是否入驻',
+ align: "center",
+ dataIndex: 'izEntry'
+ },
+ {
+ title: '咨询人姓名',
+ align: "center",
+ dataIndex: 'name'
+ },
+ {
+ title: '性别',
+ align: "center",
+ dataIndex: 'sex'
+ },
+ {
+ title: '民族',
+ align: "center",
+ dataIndex: 'national',
+ defaultHidden: true,
+ },
+ {
+ title: '出生日期',
+ align: "center",
+ dataIndex: 'birthDate',
+ customRender:({text}) =>{
+ text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text);
+ return text;
+ },
+ defaultHidden: true,
+ },
+ {
+ title: '住址',
+ align: "center",
+ dataIndex: 'idCardAddress',
+ defaultHidden: true,
+ },
+ {
+ title: '身份证号',
+ align: "center",
+ dataIndex: 'idCard'
+ },
+ {
+ title: '签发机关',
+ align: "center",
+ dataIndex: 'issuingAuthority',
+ defaultHidden: true,
+ },
+ {
+ title: '有效开始日期',
+ align: "center",
+ dataIndex: 'startTime',
+ customRender:({text}) =>{
+ text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text);
+ return text;
+ },
+ defaultHidden: true,
+ },
+ {
+ title: '有效结束日期',
+ align: "center",
+ dataIndex: 'endTime',
+ customRender:({text}) =>{
+ text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text);
+ return text;
+ },
+ defaultHidden: true,
+ },
+ {
+ title: '身份证正面',
+ align: "center",
+ dataIndex: 'cardZmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '身份证反面',
+ align: "center",
+ dataIndex: 'cardFmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '婚否',
+ align: "center",
+ dataIndex: 'maritalStatus',
+ defaultHidden: true,
+ },
+ {
+ title: '身高',
+ align: "center",
+ dataIndex: 'height',
+ defaultHidden: true,
+ },
+ {
+ title: '体重',
+ align: "center",
+ dataIndex: 'weight',
+ defaultHidden: true,
+ },
+ {
+ title: '健康状况',
+ align: "center",
+ dataIndex: 'healthStatus'
+ },
+ {
+ title: '政治面貌',
+ align: "center",
+ dataIndex: 'politicalAppearance',
+ defaultHidden: true,
+ },
+ {
+ title: '紧急联系人姓名',
+ align: "center",
+ dataIndex: 'contactName'
+ },
+ {
+ title: '紧急联系人电话',
+ align: "center",
+ dataIndex: 'contactTel'
+ },
+ {
+ title: '紧急联系人与本人关系',
+ align: "center",
+ dataIndex: 'contactRelationship',
+ defaultHidden: true,
+ },
+ {
+ title: '户口性质',
+ align: "center",
+ dataIndex: 'hukouType',
+ defaultHidden: true,
+ },
+ {
+ title: '银行卡正面',
+ align: "center",
+ dataIndex: 'bankZmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '银行卡反面',
+ align: "center",
+ dataIndex: 'bankFmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '开户行',
+ align: "center",
+ dataIndex: 'openingBank',
+ defaultHidden: true,
+ },
+ {
+ title: '银行卡号',
+ align: "center",
+ dataIndex: 'bankCard',
+ defaultHidden: true,
+ },
+ {
+ title: '健康证正面',
+ align: "center",
+ dataIndex: 'healthZmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '健康证反面',
+ align: "center",
+ dataIndex: 'healthFmPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '资质证(可多张)',
+ align: "center",
+ dataIndex: 'qualificationPath',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+ {
+ title: '无犯罪正面',
+ align: "center",
+ dataIndex: 'noCrimeCertificate',
+ customRender: render.renderImage,
+ defaultHidden: true,
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ tel: {title: '联系电话',order: 0,view: 'text', type: 'string',},
+ status: {title: '状态',order: 1,view: 'text', type: 'string',},
+ content: {title: '审核备注',order: 2,view: 'text', type: 'string',},
+ izEntry: {title: '机构是否入驻',order: 3,view: 'text', type: 'string',},
+ name: {title: '咨询人姓名',order: 4,view: 'text', type: 'string',},
+ sex: {title: '性别',order: 5,view: 'text', type: 'string',},
+ national: {title: '民族',order: 6,view: 'text', type: 'string',},
+ birthDate: {title: '出生日期',order: 7,view: 'date', type: 'string',},
+ idCardAddress: {title: '住址',order: 8,view: 'text', type: 'string',},
+ idCard: {title: '身份证号',order: 9,view: 'text', type: 'string',},
+ issuingAuthority: {title: '签发机关',order: 10,view: 'text', type: 'string',},
+ startTime: {title: '有效开始日期',order: 11,view: 'date', type: 'string',},
+ endTime: {title: '有效结束日期',order: 12,view: 'date', type: 'string',},
+ cardZmPath: {title: '身份证正面',order: 13,view: 'image', type: 'string',},
+ cardFmPath: {title: '身份证反面',order: 14,view: 'image', type: 'string',},
+ maritalStatus: {title: '婚否',order: 15,view: 'text', type: 'string',},
+ height: {title: '身高',order: 16,view: 'text', type: 'string',},
+ weight: {title: '体重',order: 17,view: 'text', type: 'string',},
+ healthStatus: {title: '健康状况',order: 18,view: 'text', type: 'string',},
+ politicalAppearance: {title: '政治面貌',order: 19,view: 'text', type: 'string',},
+ contactName: {title: '紧急联系人姓名',order: 20,view: 'text', type: 'string',},
+ contactTel: {title: '紧急联系人电话',order: 21,view: 'text', type: 'string',},
+ contactRelationship: {title: '紧急联系人与本人关系',order: 22,view: 'text', type: 'string',},
+ hukouType: {title: '户口性质',order: 23,view: 'text', type: 'string',},
+ bankZmPath: {title: '银行卡正面',order: 24,view: 'image', type: 'string',},
+ bankFmPath: {title: '银行卡反面',order: 25,view: 'image', type: 'string',},
+ openingBank: {title: '开户行',order: 26,view: 'text', type: 'string',},
+ bankCard: {title: '银行卡号',order: 27,view: 'text', type: 'string',},
+ healthZmPath: {title: '健康证正面',order: 28,view: 'image', type: 'string',},
+ healthFmPath: {title: '健康证反面',order: 29,view: 'image', type: 'string',},
+ qualificationPath: {title: '资质证(可多张)',order: 30,view: 'image', type: 'string',},
+ noCrimeCertificate: {title: '无犯罪正面',order: 31,view: 'image', type: 'string',},
+};
diff --git a/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfoList.vue b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfoList.vue
new file mode 100644
index 0000000..336cb5b
--- /dev/null
+++ b/src/views/biz/nuEmployeesAdvisoryInfo/NuEmployeesAdvisoryInfoList.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoForm.vue b/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoForm.vue
new file mode 100644
index 0000000..787d952
--- /dev/null
+++ b/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoForm.vue
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoModal.vue b/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoModal.vue
new file mode 100644
index 0000000..a591fcf
--- /dev/null
+++ b/src/views/biz/nuEmployeesAdvisoryInfo/components/NuEmployeesAdvisoryInfoModal.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/electricity/apilog/ApiLogList.vue b/src/views/iot/tq/electricity/apilog/ApiLogList.vue
new file mode 100644
index 0000000..c000e8e
--- /dev/null
+++ b/src/views/iot/tq/electricity/apilog/ApiLogList.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/electricity/apilog/ApiLogModal.vue b/src/views/iot/tq/electricity/apilog/ApiLogModal.vue
new file mode 100644
index 0000000..1a198b7
--- /dev/null
+++ b/src/views/iot/tq/electricity/apilog/ApiLogModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/electricity/index.vue b/src/views/iot/tq/electricity/index.vue
index e145190..91c31d2 100644
--- a/src/views/iot/tq/electricity/index.vue
+++ b/src/views/iot/tq/electricity/index.vue
@@ -11,6 +11,14 @@
{{record.address}}
+
+ 未配置
+ {{record.departName}}
+
+
+ 未配置
+ {{record.nuName}}
+
合闸
@@ -44,6 +52,9 @@
+
+
+
@@ -57,7 +68,15 @@
import { columns, searchFormSchema } from './electricity.data';
import {useModal} from "@/components/Modal";
+ import DepartUtilsList from "@/views/utils/departUtils/DepartUtilsModal.vue";
+ import HldyUtilsModal from "@/views/utils/nuUtils/HldyUtilsModal.vue";
+ import ApiLogModal from "@/views/iot/tq/electricity/apilog/ApiLogModal.vue";
+import { defHttp } from '/@/utils/http/axios';
+
const queryParam = reactive({});
+ const departUtilsModal = ref();
+ const apiLogModal = ref();
+ const hldyUtilsModal = ref();
//注册model
const [registerModal, {openModal}] = useModal();
//注册table数据
@@ -79,7 +98,7 @@
],
},
actionColumn: {
- width: 200,
+ width: 240,
fixed:'right'
},
beforeFetch: (params) => {
@@ -97,6 +116,28 @@
(selectedRowKeys.value = []) && reload();
}
+ function handleParams(params){
+ console.log("🚀 ~ handleParams ~ params:", params)
+ defHttp.post({
+ url: "/iot/tq/electricityMeter/edit",
+ params:params.value
+ }).then(res=>{
+ console.log("🚀 ~ getTableAction ~ res:", res)
+ })
+ }
+
+
+ function handleHldyParams(params){
+ console.log("🚀 ~ handleParams ~ params:", params)
+ defHttp.post({
+ url: "/iot/tq/electricityMeter/edit",
+ params:params.value
+ }).then(res=>{
+ console.log("🚀 ~ getTableAction ~ res:", res)
+ })
+ }
+
+
/**
* 操作栏
*/
@@ -121,10 +162,18 @@
confirm: handleReset.bind(null, record),
placement: 'topLeft',
},
- }
+ },
]
}
+/**
+ * 配置机构信息
+ */
+ function handlePzjg(record: Recordable){
+ departUtilsModal.value.disableSubmit = false;
+ departUtilsModal.value.edit(record);
+ }
+
// 抄电表
async function handleRead(record: Recordable) {
const params = {
@@ -200,8 +249,22 @@
reload();
}
+ /**
+ * 查看api日志
+ */
function showApiLog(record){
console.log(record);
+ apiLogModal.value.disableSubmit = true;
+ apiLogModal.value.showApiLog(record);
+ }
+ /**
+ * 配置护理单元
+ */
+ function handlePzhldy(record){
+ console.log("🚀 ~ handlePzhldy ~ record:", record)
+ hldyUtilsModal.value.disableSubmit = true;
+ hldyUtilsModal.value.edit(record);
+
}
diff --git a/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.api.ts b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.api.ts
new file mode 100644
index 0000000..66086fb
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/nuIotTqApiRequestLog/nuIotTqApiRequestLog/list',
+ save='/nuIotTqApiRequestLog/nuIotTqApiRequestLog/add',
+ edit='/nuIotTqApiRequestLog/nuIotTqApiRequestLog/edit',
+ deleteOne = '/nuIotTqApiRequestLog/nuIotTqApiRequestLog/delete',
+ deleteBatch = '/nuIotTqApiRequestLog/nuIotTqApiRequestLog/deleteBatch',
+ importExcel = '/nuIotTqApiRequestLog/nuIotTqApiRequestLog/importExcel',
+ exportXls = '/nuIotTqApiRequestLog/nuIotTqApiRequestLog/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param 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();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.data.ts b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.data.ts
new file mode 100644
index 0000000..0c6787a
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLog.data.ts
@@ -0,0 +1,72 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '表号',
+ align: "center",
+ dataIndex: 'address'
+ },
+ {
+ title: '类型',
+ align: "center",
+ dataIndex: 'type_dictText'
+ },
+ {
+ title: '请求时的值',
+ align: "center",
+ dataIndex: 'requestValue'
+ },
+ {
+ title: '请求时间',
+ align: "center",
+ dataIndex: 'requestTime'
+ },
+ {
+ title: '请求状态',
+ align: "center",
+ dataIndex: 'requestStatus_dictText'
+ },
+ {
+ title: '请求描述',
+ align: "center",
+ dataIndex: 'requestRemark'
+ },
+ {
+ title: '反馈值',
+ align: "center",
+ dataIndex: 'resolveValue'
+ },
+ {
+ title: '反馈时间',
+ align: "center",
+ dataIndex: 'resolveTime'
+ },
+ {
+ title: '反馈状态',
+ align: "center",
+ dataIndex: 'resolveStatus_dictText'
+ },
+ {
+ title: '反馈描述',
+ align: "center",
+ dataIndex: 'resolveRemark'
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ address: {title: '表号',order: 0,view: 'text', type: 'string',},
+ type: {title: '类型',order: 1,view: 'list', type: 'string',dictCode: 'dbsb_type',},
+ requestValue: {title: '请求时的值',order: 2,view: 'text', type: 'string',},
+ requestTime: {title: '请求时间',order: 3,view: 'text', type: 'string',},
+ requestStatus: {title: '请求状态',order: 4,view: 'list', type: 'string',dictCode: '',},
+ requestRemark: {title: '请求描述',order: 5,view: 'text', type: 'string',},
+ resolveValue: {title: '反馈值',order: 6,view: 'text', type: 'string',},
+ resolveTime: {title: '反馈时间',order: 7,view: 'text', type: 'string',},
+ resolveStatus: {title: '反馈状态',order: 8,view: 'list', type: 'string',dictCode: 'dbsb_status',},
+ resolveRemark: {title: '反馈描述',order: 9,view: 'text', type: 'string',},
+};
diff --git a/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLogList.vue b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLogList.vue
new file mode 100644
index 0000000..464a5fe
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLogList.vue
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogForm.vue b/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogForm.vue
new file mode 100644
index 0000000..4fe0075
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogForm.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogModal.vue b/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogModal.vue
new file mode 100644
index 0000000..200466a
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqApiRequestLog/components/NuIotTqApiRequestLogModal.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/utils/departUtils/DepartUtils.api.ts b/src/views/utils/departUtils/DepartUtils.api.ts
new file mode 100644
index 0000000..a13534d
--- /dev/null
+++ b/src/views/utils/departUtils/DepartUtils.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/sys/sysDepart/getDepartServerUrl',
+ save='/sys/sysDepart/add',
+ edit='/sys/sysDepart/edit',
+ deleteOne = '/sys/sysDepart/delete',
+ deleteBatch = '/sys/sysDepart/deleteBatch',
+ importExcel = '/sys/sysDepart/importExcel',
+ exportXls = '/sys/sysDepart/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param 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();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/utils/departUtils/DepartUtils.data.ts b/src/views/utils/departUtils/DepartUtils.data.ts
new file mode 100644
index 0000000..7c8600e
--- /dev/null
+++ b/src/views/utils/departUtils/DepartUtils.data.ts
@@ -0,0 +1,60 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '机构/部门名称',
+ align: "center",
+ dataIndex: 'departName'
+ },
+ {
+ title: '机构编码',
+ align: "center",
+ dataIndex: 'orgCode'
+ },
+ {
+ title: '运营开始时间',
+ align: "center",
+ dataIndex: 'operationStartTime'
+ },
+ {
+ title: '运营到期时间',
+ align: "center",
+ dataIndex: 'operationEndTime'
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ parentId: {title: '父机构ID',order: 0,view: 'text', type: 'string',},
+ departName: {title: '机构/部门名称',order: 1,view: 'text', type: 'string',},
+ departNameEn: {title: '英文名',order: 2,view: 'text', type: 'string',},
+ departNameAbbr: {title: '缩写',order: 3,view: 'text', type: 'string',},
+ departOrder: {title: '排序',order: 4,view: 'number', type: 'number',},
+ description: {title: '描述',order: 5,view: 'text', type: 'string',},
+ orgCategory: {title: '机构类别 1机构,2区域',order: 6,view: 'text', type: 'string',},
+ orgType: {title: '机构类型 1一级部门 2子部门',order: 7,view: 'text', type: 'string',},
+ orgCode: {title: '机构编码',order: 8,view: 'text', type: 'string',},
+ platType: {title: '机构对应平台类型 是否是试验机构(数据字典iz_test_site) ',order: 9,view: 'text', type: 'string',},
+ operationStartTime: {title: '运营开始时间',order: 10,view: 'datetime', type: 'string',},
+ operationEndTime: {title: '运营到期时间',order: 11,view: 'datetime', type: 'string',},
+ contractStartTime: {title: '合同开始时间',order: 12,view: 'datetime', type: 'string',},
+ contractEndTime: {title: '合同到期时间',order: 13,view: 'datetime', type: 'string',},
+ mobile: {title: '手机号',order: 14,view: 'text', type: 'string',},
+ fax: {title: '传真',order: 15,view: 'text', type: 'string',},
+ address: {title: '地址',order: 16,view: 'text', type: 'string',},
+ memo: {title: '备注',order: 17,view: 'text', type: 'string',},
+ status: {title: '状态(1启用,0不启用)',order: 18,view: 'text', type: 'string',},
+ qywxIdentifier: {title: '对接企业微信的ID',order: 20,view: 'text', type: 'string',},
+ dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',},
+ tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',},
+ izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',},
+ serverUrl: {title: '服务器后台接口地址',order: 24,view: 'text', type: 'string',},
+ picUrl: {title: '机构图片',order: 25,view: 'text', type: 'string',},
+ province: {title: '省份 sys_category.id',order: 26,view: 'text', type: 'string',},
+ city: {title: '城市 sys_category.id',order: 27,view: 'text', type: 'string',},
+ district: {title: '区域 sys_category.id',order: 28,view: 'text', type: 'string',},
+};
diff --git a/src/views/utils/departUtils/DepartUtilsList.vue b/src/views/utils/departUtils/DepartUtilsList.vue
new file mode 100644
index 0000000..e9efbf0
--- /dev/null
+++ b/src/views/utils/departUtils/DepartUtilsList.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/utils/departUtils/DepartUtilsModal.vue b/src/views/utils/departUtils/DepartUtilsModal.vue
new file mode 100644
index 0000000..46972ba
--- /dev/null
+++ b/src/views/utils/departUtils/DepartUtilsModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/utils/nuUtils/HldyUtils.api.ts b/src/views/utils/nuUtils/HldyUtils.api.ts
new file mode 100644
index 0000000..877293c
--- /dev/null
+++ b/src/views/utils/nuUtils/HldyUtils.api.ts
@@ -0,0 +1,15 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/iot/cameraInfo/getNuBaseList',
+}
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
diff --git a/src/views/utils/nuUtils/HldyUtils.data.ts b/src/views/utils/nuUtils/HldyUtils.data.ts
new file mode 100644
index 0000000..d96fdd0
--- /dev/null
+++ b/src/views/utils/nuUtils/HldyUtils.data.ts
@@ -0,0 +1,55 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '护理单元名称',
+ align: "center",
+ dataIndex: 'nuName'
+ },
+ {
+ title: '编码',
+ align: "center",
+ dataIndex: 'code'
+ },
+ {
+ title: '创建时间',
+ align: "center",
+ dataIndex: 'createTime'
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ parentId: {title: '父机构ID',order: 0,view: 'text', type: 'string',},
+ departName: {title: '机构/部门名称',order: 1,view: 'text', type: 'string',},
+ departNameEn: {title: '英文名',order: 2,view: 'text', type: 'string',},
+ departNameAbbr: {title: '缩写',order: 3,view: 'text', type: 'string',},
+ departOrder: {title: '排序',order: 4,view: 'number', type: 'number',},
+ description: {title: '描述',order: 5,view: 'text', type: 'string',},
+ orgCategory: {title: '机构类别 1机构,2区域',order: 6,view: 'text', type: 'string',},
+ orgType: {title: '机构类型 1一级部门 2子部门',order: 7,view: 'text', type: 'string',},
+ orgCode: {title: '机构编码',order: 8,view: 'text', type: 'string',},
+ platType: {title: '机构对应平台类型 是否是试验机构(数据字典iz_test_site) ',order: 9,view: 'text', type: 'string',},
+ operationStartTime: {title: '运营开始时间',order: 10,view: 'datetime', type: 'string',},
+ operationEndTime: {title: '运营到期时间',order: 11,view: 'datetime', type: 'string',},
+ contractStartTime: {title: '合同开始时间',order: 12,view: 'datetime', type: 'string',},
+ contractEndTime: {title: '合同到期时间',order: 13,view: 'datetime', type: 'string',},
+ mobile: {title: '手机号',order: 14,view: 'text', type: 'string',},
+ fax: {title: '传真',order: 15,view: 'text', type: 'string',},
+ address: {title: '地址',order: 16,view: 'text', type: 'string',},
+ memo: {title: '备注',order: 17,view: 'text', type: 'string',},
+ status: {title: '状态(1启用,0不启用)',order: 18,view: 'text', type: 'string',},
+ qywxIdentifier: {title: '对接企业微信的ID',order: 20,view: 'text', type: 'string',},
+ dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',},
+ tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',},
+ izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',},
+ serverUrl: {title: '服务器后台接口地址',order: 24,view: 'text', type: 'string',},
+ picUrl: {title: '机构图片',order: 25,view: 'text', type: 'string',},
+ province: {title: '省份 sys_category.id',order: 26,view: 'text', type: 'string',},
+ city: {title: '城市 sys_category.id',order: 27,view: 'text', type: 'string',},
+ district: {title: '区域 sys_category.id',order: 28,view: 'text', type: 'string',},
+};
diff --git a/src/views/utils/nuUtils/HldyUtilsList.vue b/src/views/utils/nuUtils/HldyUtilsList.vue
new file mode 100644
index 0000000..2c54c64
--- /dev/null
+++ b/src/views/utils/nuUtils/HldyUtilsList.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/utils/nuUtils/HldyUtilsModal.vue b/src/views/utils/nuUtils/HldyUtilsModal.vue
new file mode 100644
index 0000000..751ad0d
--- /dev/null
+++ b/src/views/utils/nuUtils/HldyUtilsModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
From f5474a28a3a8f6407ece4e7fdc9cac93659b7ea3 Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Thu, 12 Jun 2025 13:59:03 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=B5=E8=83=BD?=
=?UTF-8?q?=E8=A1=A8=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD=E5=8F=8A=E5=AF=B9?=
=?UTF-8?q?=E5=BA=94=E7=9A=84=E5=90=8C=E6=AD=A5=E6=97=A5=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/iot/tq/electricity/index.vue | 16 +-
.../NuIotTqElectricitySyncLog.api.ts | 72 +++++++
.../NuIotTqElectricitySyncLog.data.ts | 68 +++++++
.../NuIotTqElectricitySyncLogList.vue | 169 ++++++++++++++++
.../NuIotTqElectricitySyncLogListModal.vue | 66 +++++++
.../NuIotTqElectricitySyncLogForm.vue | 187 ++++++++++++++++++
.../NuIotTqElectricitySyncLogModal.vue | 77 ++++++++
7 files changed, 653 insertions(+), 2 deletions(-)
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.api.ts
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.data.ts
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogList.vue
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogListModal.vue
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogForm.vue
create mode 100644 src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogModal.vue
diff --git a/src/views/iot/tq/electricity/index.vue b/src/views/iot/tq/electricity/index.vue
index 91c31d2..e406f65 100644
--- a/src/views/iot/tq/electricity/index.vue
+++ b/src/views/iot/tq/electricity/index.vue
@@ -55,6 +55,7 @@
+
@@ -71,11 +72,13 @@
import DepartUtilsList from "@/views/utils/departUtils/DepartUtilsModal.vue";
import HldyUtilsModal from "@/views/utils/nuUtils/HldyUtilsModal.vue";
import ApiLogModal from "@/views/iot/tq/electricity/apilog/ApiLogModal.vue";
+ import NuIotTqElectricitySyncLogListModal from "/@/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogListModal.vue";
import { defHttp } from '/@/utils/http/axios';
const queryParam = reactive({});
const departUtilsModal = ref();
const apiLogModal = ref();
+ const syncLogModal = ref();
const hldyUtilsModal = ref();
//注册model
const [registerModal, {openModal}] = useModal();
@@ -116,6 +119,7 @@ import { defHttp } from '/@/utils/http/axios';
(selectedRowKeys.value = []) && reload();
}
+ //机构回调
function handleParams(params){
console.log("🚀 ~ handleParams ~ params:", params)
defHttp.post({
@@ -126,7 +130,7 @@ import { defHttp } from '/@/utils/http/axios';
})
}
-
+ //护理单元回调
function handleHldyParams(params){
console.log("🚀 ~ handleParams ~ params:", params)
defHttp.post({
@@ -136,7 +140,11 @@ import { defHttp } from '/@/utils/http/axios';
console.log("🚀 ~ getTableAction ~ res:", res)
})
}
-
+ //同步
+ function handleSync(record: Recordable){
+ syncLogModal.value.disableSubmit = true;
+ syncLogModal.value.init(record);
+ }
/**
* 操作栏
@@ -163,6 +171,10 @@ import { defHttp } from '/@/utils/http/axios';
placement: 'topLeft',
},
},
+ {
+ label: '同步',
+ onClick: handleSync.bind(null, record),
+ },
]
}
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.api.ts b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.api.ts
new file mode 100644
index 0000000..ec2b2f8
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/list',
+ save='/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/add',
+ edit='/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/edit',
+ deleteOne = '/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/delete',
+ deleteBatch = '/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/deleteBatch',
+ importExcel = '/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/importExcel',
+ exportXls = '/nuIotTqElectricitySyncLog/nuIotTqElectricitySyncLog/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param 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();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.data.ts b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.data.ts
new file mode 100644
index 0000000..92b0c18
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLog.data.ts
@@ -0,0 +1,68 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '同步时间',
+ align: "center",
+ dataIndex: 'createTime'
+ },
+ {
+ title: '同步类型',
+ align: "center",
+ dataIndex: 'syncType'
+ },
+ {
+ title: '原机构名称',
+ align: "center",
+ dataIndex: 'orgName'
+ },
+ {
+ title: '原机构编码',
+ align: "center",
+ dataIndex: 'orgCode',
+ defaultHidden: true
+ },
+ {
+ title: '新机构名称',
+ align: "center",
+ dataIndex: 'newOrgName'
+ },
+ {
+ title: '新机构编码',
+ align: "center",
+ dataIndex: 'newOrgCode',
+ defaultHidden: true
+ },
+ {
+ title: '状态',
+ align: "center",
+ dataIndex: 'status'
+ },
+ {
+ title: '备注',
+ align: "center",
+ dataIndex: 'content'
+ },
+ {
+ title: '服务类型',
+ align: "center",
+ dataIndex: 'serverType'
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ mainName: {title: '主表名称',order: 0,view: 'text', type: 'string',},
+ syncType: {title: '同步类型',order: 1,view: 'text', type: 'string',},
+ orgName: {title: '原机构名称',order: 2,view: 'text', type: 'string',},
+ orgCode: {title: '原机构编码',order: 3,view: 'text', type: 'string',},
+ newOrgName: {title: '新机构名称',order: 4,view: 'text', type: 'string',},
+ newOrgCode: {title: '新机构编码',order: 5,view: 'text', type: 'string',},
+ status: {title: '状态',order: 6,view: 'text', type: 'string',},
+ content: {title: '备注',order: 7,view: 'text', type: 'string',},
+ serverType: {title: '服务类型',order: 8,view: 'text', type: 'string',},
+};
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogList.vue b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogList.vue
new file mode 100644
index 0000000..93b8612
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogList.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+ 同步
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogListModal.vue b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogListModal.vue
new file mode 100644
index 0000000..131b9a4
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/NuIotTqElectricitySyncLogListModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogForm.vue b/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogForm.vue
new file mode 100644
index 0000000..8606a52
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogForm.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogModal.vue b/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogModal.vue
new file mode 100644
index 0000000..7d1c8ec
--- /dev/null
+++ b/src/views/iot/tq/nuIotTqElectricitySyncLog/components/NuIotTqElectricitySyncLogModal.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+