diff --git a/index.html b/index.html index 76edf62..6da137c 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,10 @@ - + - + <%= title %> @@ -170,13 +167,14 @@ - + + diff --git a/package.json b/package.json index e78910e..3f8cfc9 100644 --- a/package.json +++ b/package.json @@ -21,18 +21,19 @@ "husky:install": "husky install" }, "dependencies": { - "@jeecg/online": "3.7.1-RC", - "@iconify/iconify": "^3.1.1", "@ant-design/colors": "^7.2.0", "@ant-design/icons-vue": "^7.0.1", + "@iconify/iconify": "^3.1.1", + "@jeecg/online": "3.7.1-RC", + "@tinymce/tinymce-vue": "4.0.7", + "@traptitech/markdown-it-katex": "^3.6.0", + "@vant/area-data": "^1.5.2", "@vue/shared": "^3.5.13", "@vueuse/core": "^10.11.1", - "@tinymce/tinymce-vue": "4.0.7", "@zxcvbn-ts/core": "^3.0.4", "ant-design-vue": "^4.2.6", "axios": "^1.7.9", "china-area-data": "^5.0.1", - "@vant/area-data": "^1.5.2", "clipboard": "^2.0.11", "codemirror": "^5.65.18", "cron-parser": "^4.9.0", @@ -43,14 +44,13 @@ "echarts": "^5.6.0", "emoji-mart-vue-fast": "^15.0.3", "enquire.js": "^2.1.6", + "event-source-polyfill": "^1.0.31", + "highlight.js": "^11.11.1", "intro.js": "^7.2.0", "lodash-es": "^4.17.21", "lodash.get": "^4.4.2", "markdown-it": "^14.1.0", "markdown-it-link-attributes": "^4.0.1", - "event-source-polyfill": "^1.0.31", - "highlight.js": "^11.11.1", - "@traptitech/markdown-it-katex": "^3.6.0", "md5": "^2.3.0", "mockjs": "^1.1.0", "nprogress": "^0.2.0", @@ -69,6 +69,7 @@ "vue-cropperjs": "^5.0.0", "vue-i18n": "^9.14.2", "vue-infinite-scroll": "^2.0.2", + "vue-jsonp": "^2.1.0", "vue-print-nb-jeecg": "^1.0.12", "vue-router": "^4.5.0", "vue-types": "^5.1.3", @@ -83,6 +84,7 @@ "@commitlint/config-conventional": "^18.6.3", "@iconify/json": "^2.2.292", "@purge-icons/generated": "^0.10.0", + "@rys-fe/vite-plugin-theme": "^0.8.6", "@types/codemirror": "^5.60.15", "@types/crypto-js": "^4.2.2", "@types/fs-extra": "^11.0.4", @@ -104,11 +106,13 @@ "@vue/compiler-sfc": "^3.5.13", "@vue/test-utils": "^2.4.6", "autoprefixer": "^10.4.20", + "big.js": "^6.2.2", "commitizen": "^4.3.1", "conventional-changelog-cli": "^4.1.0", "cross-env": "^7.0.3", "cz-git": "^1.11.0", "czg": "^1.11.0", + "dingtalk-jsapi": "^3.0.42", "dotenv": "^16.4.7", "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", @@ -144,6 +148,7 @@ "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "typescript": "^4.9.5", + "unocss": "^0.58.9", "vite": "^6.0.7", "vite-plugin-compression": "^0.5.1", "vite-plugin-html": "^3.2.2", @@ -152,15 +157,11 @@ "vite-plugin-optimize-persist": "^0.1.2", "vite-plugin-package-config": "^0.1.1", "vite-plugin-purge-icons": "^0.10.0", - "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-qiankun": "^1.0.15", - "@rys-fe/vite-plugin-theme": "^0.8.6", + "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-vue-setup-extend-plus": "^0.1.0", - "unocss": "^0.58.9", "vue-eslint-parser": "^9.4.3", - "vue-tsc": "^1.8.27", - "dingtalk-jsapi": "^3.0.42", - "big.js": "^6.2.2" + "vue-tsc": "^1.8.27" }, "repository": { "type": "git", diff --git a/src/components/TencentMap/TencentMap.vue b/src/components/TencentMap/TencentMap.vue new file mode 100644 index 0000000..6e0d2e0 --- /dev/null +++ b/src/components/TencentMap/TencentMap.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/components/terminal/Terminal.vue b/src/components/terminal/Terminal.vue index ea8ca22..f731f82 100644 --- a/src/components/terminal/Terminal.vue +++ b/src/components/terminal/Terminal.vue @@ -1,54 +1,43 @@ \ No newline at end of file diff --git a/src/views/biz/orgapplyinfo/OrgApplyInfoList.vue b/src/views/biz/orgapplyinfo/OrgApplyInfoList.vue index ca34739..feebbee 100644 --- a/src/views/biz/orgapplyinfo/OrgApplyInfoList.vue +++ b/src/views/biz/orgapplyinfo/OrgApplyInfoList.vue @@ -110,11 +110,11 @@ const labelCol = reactive({ xs: 24, sm: 4, xl: 6, - xxl: 4 + xxl: 5 }); const wrapperCol = reactive({ xs: 24, - sm: 20, + sm: 19, }); // 高级查询配置 diff --git a/src/views/biz/orgapplyinfo/components/OrgApplyInfoForm.vue b/src/views/biz/orgapplyinfo/components/OrgApplyInfoForm.vue index 37d8fdb..1bdaddb 100644 --- a/src/views/biz/orgapplyinfo/components/OrgApplyInfoForm.vue +++ b/src/views/biz/orgapplyinfo/components/OrgApplyInfoForm.vue @@ -155,6 +155,12 @@ + + + {{ formData.orgProvince_dictText + formData.orgCity_dictText + formData.orgDistrict_dictText + }} + + @@ -195,6 +201,9 @@ + @@ -207,6 +216,7 @@ import { getValueType } from '/@/utils'; import { saveOrUpdate } from '../OrgApplyInfo.api'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; +import TencentMap from '/@/components/TencentMap/TencentMap.vue'; const props = defineProps({ formDisabled: { type: Boolean, default: false }, @@ -243,13 +253,21 @@ const formData = reactive>({ comCreditCode: '', comLegalPerson: '', orgAddress: '', - orgCoordinate: '', + orgCoordinateLo: '', + orgCoordinateLa: '', orgLeader: '', orgLeaderPhone: '', orgBuildingNumber: '', orgPropertyType: '', orgBuildingArea: undefined, + orgProvince: '', + orgCity: '', + orgDistrict: '', + orgProvince_dictText: '', + orgCity_dictText: '', + orgDistrict_dictText: '', }); +const tempNullVal = ref('') const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 5 } }); const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 16 } }); diff --git a/src/views/iot/tplink/camera/components/CameraBlockForm.vue b/src/views/iot/tplink/camera/components/CameraBlockForm.vue index d505200..063494b 100644 --- a/src/views/iot/tplink/camera/components/CameraBlockForm.vue +++ b/src/views/iot/tplink/camera/components/CameraBlockForm.vue @@ -24,7 +24,7 @@ 灵敏度 - + diff --git a/src/views/iot/tplink/camera/components/CameraCommonForm.vue b/src/views/iot/tplink/camera/components/CameraCommonForm.vue index 44ecaa0..f2d40c9 100644 --- a/src/views/iot/tplink/camera/components/CameraCommonForm.vue +++ b/src/views/iot/tplink/camera/components/CameraCommonForm.vue @@ -12,7 +12,7 @@ -
+
@@ -46,10 +46,12 @@ 亮度
- + - + @@ -59,10 +61,12 @@ 对比度 - + - + @@ -72,10 +76,12 @@ 饱和度 - + - + @@ -85,10 +91,12 @@ 锐度 - + - + @@ -98,21 +106,24 @@ 宽动态 - - 关闭 - 开启 - + + 关闭 + 开启 + - + - + - + @@ -127,7 +138,8 @@ 照明模式 - + 白光照明 红外照明 移动侦测全彩 @@ -135,7 +147,7 @@ - + 防红外过曝 @@ -149,16 +161,18 @@ - + 防过曝等级 - + - + @@ -176,16 +190,18 @@ - + 白光等级 - + - + @@ -205,238 +221,237 @@ import { onMounted, watch, } from 'vue'; - import { defHttp } from '/@/utils/http/axios'; - import { useMessage } from '/@/hooks/web/useMessage'; - import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; - import { getValueType } from '/@/utils'; - import { Form } from 'ant-design-vue'; - import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; - import { - getImageCommon, - setImageCommon, - configRecovery, - getPreviewUrl, - } from "../camera.api"; +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; +import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; +import { getValueType } from '/@/utils'; +import { Form } from 'ant-design-vue'; +import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; +import { + getImageCommon, + setImageCommon, + configRecovery, + getPreviewUrl, +} from "../camera.api"; - const props = defineProps({ - data: { type: Object, default: () => ({}) }, +const props = defineProps({ + data: { type: Object, default: () => ({}) }, +}); +const formRef = ref(); +const useForm = Form.useForm; +const formData = reactive>({ + deviceIndex: '',//设备索引 + streamType: 0,//码流类型 0 代表主码流,1 代码子码流 + //视频预览参数 + url: '',//预览通道对应的URL + backupUrl: '',//备选URL,当流媒体服务器存在内外网IP配置时,该字段不为null + wsUrl: '',//用于建立ws连接传输视频帧信息 + wssUrl: '',//用于建立wss接传输视频帧信息 + + chroma: "0", //色度 + luma: "0", //亮度 + sharpness: "0", //锐度 + saturation: "0", //饱和度 + contrast: "0", //对比度 + wd_gain: "0", //宽动态度 + smartir_level: "0",//防过曝等级 + wide_dynamic: "off", //宽动态 "off"//关闭 "on"//开启 + smartir: "auto_ir",//防红外过曝:"auto_ir_ae" //自动-增强模式 "auto_ir" //自动-标准模式 "manual"//手动——防过曝等级 + smartwtl: "auto_wtl",//白光强度:"auto_wtl_ae" //智能白光-柔和 ;"auto_wtl" //智能白光-标准 ; "manual" //手动——出现白光等级 + smartwtl_digital_level: "0",//白光等级 + + flip_type: "center",//画面镜像旋转: "off"//关闭 "left_and_right"//左右 "up_and_down"//上下 "center"//中心 + night_vision_mode: "md_night_vision",//照明模式:"wtl_night_vision"//白光照明 ;"inf_night_vision"//红外照明 ; "md_night_vision"//移动侦测全彩——出现白光强度 + +}); +const player = ref(); +const { createMessage } = useMessage(); +const labelCol = ref({ xs: { span: 24 }, sm: { span: 8 } }); +const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 16 } }); +const confirmLoading = ref(false); + +/** + * 恢复默认 + */ +function restoreDefault() { + if (formData.deviceIndex == '') { + return + } + confirmLoading.value = true; + configRecovery({ "deviceIndex": formData.deviceIndex }).then(res => { + confirmLoading.value = false; + getCommon(formData.deviceIndex); + getSwitch(formData.deviceIndex); }); - const formRef = ref(); - const useForm = Form.useForm; - const formData = reactive>({ - deviceIndex: '',//设备索引 - streamType: 0,//码流类型 0 代表主码流,1 代码子码流 - //视频预览参数 - url: '',//预览通道对应的URL - backupUrl: '',//备选URL,当流媒体服务器存在内外网IP配置时,该字段不为null - wsUrl: '',//用于建立ws连接传输视频帧信息 - wssUrl: '',//用于建立wss接传输视频帧信息 - - chroma: "0", //色度 - luma: "0", //亮度 - sharpness: "0", //锐度 - saturation: "0", //饱和度 - contrast: "0", //对比度 - wd_gain: "0", //宽动态度 - smartir_level: "0",//防过曝等级 - wide_dynamic: "off", //宽动态 "off"//关闭 "on"//开启 - smartir: "auto_ir",//防红外过曝:"auto_ir_ae" //自动-增强模式 "auto_ir" //自动-标准模式 "manual"//手动——防过曝等级 - smartwtl: "auto_wtl",//白光强度:"auto_wtl_ae" //智能白光-柔和 ;"auto_wtl" //智能白光-标准 ; "manual" //手动——出现白光等级 - smartwtl_digital_level: "0",//白光等级 - - flip_type: "center",//画面镜像旋转: "off"//关闭 "left_and_right"//左右 "up_and_down"//上下 "center"//中心 - night_vision_mode: "md_night_vision",//照明模式:"wtl_night_vision"//白光照明 ;"inf_night_vision"//红外照明 ; "md_night_vision"//移动侦测全彩——出现白光强度 +} +/** + * 播放 + */ +async function preview(deviceIndex, streamType, url) { + if (deviceIndex == null) { + return + } + if (url != '') { + return + } + await getPreviewUrl({ "deviceIndex": deviceIndex, "streamType": streamType }).then(res => { + formData.url = res.url; + formData.backupUrl = res.backupUrl; + formData.wsUrl = res.wsUrl; + formData.wssUrl = res.wssUrl; + confirmLoading.value = false; }); - const player = ref(); - const { createMessage } = useMessage(); - const labelCol = ref({ xs: { span: 24 }, sm: { span: 8 } }); - const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 16 } }); - const confirmLoading = ref(false); - - /** - * 恢复默认 - */ - function restoreDefault(){ - if(formData.deviceIndex==''){ - return + const TumsPlayer = window['tums-player'].default; + player.value = new TumsPlayer('video-container', { + type: "rtsp", // 协议类型,rtsp + url: formData.url, // 取流地址, getPreviewUrl接口获取 + // url: formData.backupUrl, // 取流地址, getPreviewUrl接口获取 + socket: formData.wssUrl, // websocket地址, getPreviewUrl接口获取 + pluginPath: '/static', // 当sdk资源不在根路径下时,需配置pluginPath + }); + let isPlaying = player.value.isPlaying(); + if (!isPlaying) { + if (player.value.isInit) { + player.value.start(); + } else { + player.value.play(); } - confirmLoading.value=true; - configRecovery({"deviceIndex":formData.deviceIndex}).then(res=>{ - confirmLoading.value=false; + } +} + +/** + * 销毁 + */ +function destroy(player) { + if (player) { + player.value.destroy().then(() => { + }); // 销毁 + } +} + +/** + * 获取画面通用信息 + */ +function getCommon(deviceIndex) { + if (deviceIndex == null) { + return + } + getImageCommon({ + "deviceIndex": deviceIndex, + "type": "common" + }).then(res => { + formData.chroma = res.chroma; //色度 + formData.luma = res.luma; //亮度 + formData.sharpness = res.sharpness; //锐度 + formData.saturation = res.saturation; //饱和度 + formData.contrast = res.contrast; //对比度 + formData.wd_gain = res.wd_gain; //宽动态度 + formData.smartir_level = res.smartir_level; //防过曝等级 + formData.wide_dynamic = res.wide_dynamic; //宽动态 "off"//关闭 "on"//开启 + formData.smartir = res.smartir; //防红外过曝:"auto_ir_ae" //自动-增强模式 "auto_ir" //自动-标准模式 "manual"//手动——防过曝等级 + formData.smartwtl = res.smartwtl; //白光强度:"auto_wtl_ae" //智能白光-柔和 ;"auto_wtl" //智能白光-标准 ; "manual" //手动——出现白光等级 + formData.smartwtl_digital_level = res.smartwtl_digital_level; //白光等级 + }); +} + +/** + * 获取照明设置信息 + */ +function getSwitch(deviceIndex) { + if (deviceIndex == null) { + return + } + getImageCommon({ + "deviceIndex": deviceIndex, + "type": "switch" + }).then(res => { + formData.flip_type = res.flip_type; //画面镜像翻转 + formData.night_vision_mode = res.night_vision_mode; //照明模式 + }); +} + +/** + * 设置画面信息 + * @param paramKey + * @param paramValue + */ +function setCommon(paramKey, paramValue) { + setImageCommon({ + "deviceIndex": formData.deviceIndex, + "type": formData.deviceIndex, + paramKey: paramValue + }).then(res => { }); +} + +/** + * 设置照明设置信息 + * @param paramObj + * @param type + */ +function setCommonSwitch(paramObj, type) { + setImageCommon({ + "deviceIndex": formData.deviceIndex, + "type": type, + "param": paramObj + }).then(res => { }); +} + +/** + * 更改画面信息 + * @param attr + * @param value + */ +function changeCommon(attr, value) { + let param = {}; + param[attr] = value; + setCommonSwitch(param, "common"); +} + +/** + * 更改照明设置信息 + * @param attr + * @param value + */ +function changeSwitch(attr, value) { + let param = {}; + param[attr] = value; + setCommonSwitch(param, "switch"); +} + +onMounted(() => { + watch( + () => props.data, + async () => { + formData.deviceIndex = props.data.deviceIndex; getCommon(formData.deviceIndex); getSwitch(formData.deviceIndex); - }); - } - - /** - * 播放 - */ - async function preview(deviceIndex,streamType,url) { - if(deviceIndex==null){ - return - } - if (url!=''){ - return - } - await getPreviewUrl({"deviceIndex":deviceIndex,"streamType":streamType}).then(res=>{ - formData.url = res.url; - formData.backupUrl = res.backupUrl; - formData.wsUrl = res.wsUrl; - formData.wssUrl = res.wssUrl; - confirmLoading.value=false; - }); - const TumsPlayer = window['tums-player'].default; - player.value = new TumsPlayer('video-container', { - type: "rtsp", // 协议类型,rtsp - url: formData.url, // 取流地址, getPreviewUrl接口获取 - // url: formData.backupUrl, // 取流地址, getPreviewUrl接口获取 - socket: formData.wssUrl, // websocket地址, getPreviewUrl接口获取 - pluginPath: '/static', // 当sdk资源不在根路径下时,需配置pluginPath - }); - let isPlaying = player.value.isPlaying(); - if (!isPlaying) { - if (player.value.isInit) { - player.value.start(); - } else { - player.value.play(); - } - } - } - - /** - * 销毁 - */ - function destroy(player){ - if (player){ - player.value.destroy().then(() => { - }); // 销毁 - } - } - - /** - * 获取画面通用信息 - */ - function getCommon(deviceIndex){ - if(deviceIndex==null){ - return - } - getImageCommon({ - "deviceIndex": deviceIndex, - "type": "common" - }).then(res=>{ - formData.chroma = res.chroma; //色度 - formData.luma = res.luma; //亮度 - formData.sharpness = res.sharpness; //锐度 - formData.saturation = res.saturation; //饱和度 - formData.contrast = res.contrast; //对比度 - formData.wd_gain = res.wd_gain; //宽动态度 - formData.smartir_level = res.smartir_level; //防过曝等级 - formData.wide_dynamic = res.wide_dynamic; //宽动态 "off"//关闭 "on"//开启 - formData.smartir = res.smartir; //防红外过曝:"auto_ir_ae" //自动-增强模式 "auto_ir" //自动-标准模式 "manual"//手动——防过曝等级 - formData.smartwtl = res.smartwtl; //白光强度:"auto_wtl_ae" //智能白光-柔和 ;"auto_wtl" //智能白光-标准 ; "manual" //手动——出现白光等级 - formData.smartwtl_digital_level = res.smartwtl_digital_level; //白光等级 - }); - } - - /** - * 获取照明设置信息 - */ - function getSwitch(deviceIndex){ - if(deviceIndex==null){ - return - } - getImageCommon({ - "deviceIndex": deviceIndex, - "type": "switch" - }).then(res=>{ - formData.flip_type = res.flip_type; //画面镜像翻转 - formData.night_vision_mode = res.night_vision_mode; //照明模式 - }); - } - - /** - * 设置画面信息 - * @param paramKey - * @param paramValue - */ - function setCommon(paramKey, paramValue){ - setImageCommon({ - "deviceIndex": formData.deviceIndex, - "type": formData.deviceIndex, - paramKey: paramValue - }).then(res=>{ }); - } - - /** - * 设置照明设置信息 - * @param paramObj - * @param type - */ - function setCommonSwitch(paramObj,type){ - setImageCommon({ - "deviceIndex": formData.deviceIndex, - "type": type, - "param": paramObj - }).then(res=>{ }); - } - - /** - * 更改画面信息 - * @param attr - * @param value - */ - function changeCommon(attr,value){ - let param = {}; - param[attr] = value; - setCommonSwitch(param,"common"); - } - - /** - * 更改照明设置信息 - * @param attr - * @param value - */ - function changeSwitch(attr,value){ - let param = {}; - param[attr] = value; - setCommonSwitch(param,"switch"); - } - - onMounted(() => { - watch( - () => props.data, - async () => { - formData.deviceIndex = props.data.deviceIndex; - getCommon(formData.deviceIndex); - getSwitch(formData.deviceIndex); - preview(formData.deviceIndex,formData.streamType,formData.url); - }, - { deep: true, immediate: true } - ); - }); + preview(formData.deviceIndex, formData.streamType, formData.url); + }, + { deep: true, immediate: true } + ); +}); diff --git a/src/views/synchronization/directive/index2.vue b/src/views/synchronization/directive/index2.vue index dcde33e..885cfba 100644 --- a/src/views/synchronization/directive/index2.vue +++ b/src/views/synchronization/directive/index2.vue @@ -168,7 +168,7 @@ const labelCol = reactive({ xs: 24, sm: 4, xl: 6, - xxl: 4 + xxl: 5 }); const wrapperCol = reactive({ xs: 24,