diff --git a/package.json b/package.json index 36392bc2..ffd51198 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "event-source-polyfill": "^1.0.31", "global": "^4.4.0", "jetlinks-store": "^0.0.3", - "jetlinks-ui-components": "^1.0.27", + "jetlinks-ui-components": "^1.0.28", "js-cookie": "^3.0.1", "jsencrypt": "^3.3.2", "less": "^4.1.3", diff --git a/public/images/access/collector-gateway.png b/public/images/access/collector-gateway.png new file mode 100644 index 00000000..1dd93186 Binary files /dev/null and b/public/images/access/collector-gateway.png differ diff --git a/public/images/cloud/dueros-doc.jpg b/public/images/cloud/dueros-doc.jpg index 4911a481..26be44a0 100644 Binary files a/public/images/cloud/dueros-doc.jpg and b/public/images/cloud/dueros-doc.jpg differ diff --git a/public/images/cloud/dueros-doc1.png b/public/images/cloud/dueros-doc1.png index 8ca60e11..e64be4d4 100644 Binary files a/public/images/cloud/dueros-doc1.png and b/public/images/cloud/dueros-doc1.png differ diff --git a/public/images/home/home-view/comprehensive-active.png b/public/images/home/home-view/comprehensive-active.png index 40fed6eb..df4a06bd 100644 Binary files a/public/images/home/home-view/comprehensive-active.png and b/public/images/home/home-view/comprehensive-active.png differ diff --git a/public/images/home/home-view/comprehensive.png b/public/images/home/home-view/comprehensive.png index f43dcf56..97f5b267 100644 Binary files a/public/images/home/home-view/comprehensive.png and b/public/images/home/home-view/comprehensive.png differ diff --git a/public/images/home/home-view/device-active.png b/public/images/home/home-view/device-active.png index 20f6e922..6bf1c1b5 100644 Binary files a/public/images/home/home-view/device-active.png and b/public/images/home/home-view/device-active.png differ diff --git a/public/images/home/home-view/device.png b/public/images/home/home-view/device.png index 7dd611e7..fe96dea4 100644 Binary files a/public/images/home/home-view/device.png and b/public/images/home/home-view/device.png differ diff --git a/public/images/home/home-view/ops-active.png b/public/images/home/home-view/ops-active.png index 5dc0fbfb..ffa8ec83 100644 Binary files a/public/images/home/home-view/ops-active.png and b/public/images/home/home-view/ops-active.png differ diff --git a/public/images/home/home-view/ops.png b/public/images/home/home-view/ops.png index fc20c1da..d2525516 100644 Binary files a/public/images/home/home-view/ops.png and b/public/images/home/home-view/ops.png differ diff --git a/public/images/network/01.png b/public/images/network/01.png index 9ec5cdc8..3b0aff60 100644 Binary files a/public/images/network/01.png and b/public/images/network/01.png differ diff --git a/public/images/network/02.jpg b/public/images/network/02.jpg index 950b64d7..c5d9fa40 100644 Binary files a/public/images/network/02.jpg and b/public/images/network/02.jpg differ diff --git a/public/images/network/03.png b/public/images/network/03.png index a9e8e8d3..e99a06dd 100644 Binary files a/public/images/network/03.png and b/public/images/network/03.png differ diff --git a/public/images/network/04.jpg b/public/images/network/04.jpg index 8b04c2eb..bdb603e7 100644 Binary files a/public/images/network/04.jpg and b/public/images/network/04.jpg differ diff --git a/public/images/network/05-Ctwing.png b/public/images/network/05-Ctwing.png new file mode 100644 index 00000000..937eb8a6 Binary files /dev/null and b/public/images/network/05-Ctwing.png differ diff --git a/public/images/network/05.jpg b/public/images/network/05.jpeg similarity index 100% rename from public/images/network/05.jpg rename to public/images/network/05.jpeg diff --git a/public/images/network/06-Ctwing.png b/public/images/network/06-Ctwing.png new file mode 100644 index 00000000..f39213e1 Binary files /dev/null and b/public/images/network/06-Ctwing.png differ diff --git a/public/images/network/06.jpg b/public/images/network/06.jpg deleted file mode 100644 index e5a2f45a..00000000 Binary files a/public/images/network/06.jpg and /dev/null differ diff --git a/public/images/network/06.png b/public/images/network/06.png new file mode 100644 index 00000000..20273d4b Binary files /dev/null and b/public/images/network/06.png differ diff --git a/public/images/network/07.jpeg b/public/images/network/07.jpeg new file mode 100644 index 00000000..d2171fc7 Binary files /dev/null and b/public/images/network/07.jpeg differ diff --git a/public/images/network/08.png b/public/images/network/08.png new file mode 100644 index 00000000..4aca7215 Binary files /dev/null and b/public/images/network/08.png differ diff --git a/public/images/network/09.png b/public/images/network/09.png new file mode 100644 index 00000000..10dbccfe Binary files /dev/null and b/public/images/network/09.png differ diff --git a/public/images/network/OneNet.jpg b/public/images/network/OneNet.jpg deleted file mode 100644 index 528d0669..00000000 Binary files a/public/images/network/OneNet.jpg and /dev/null differ diff --git a/src/api/account/center.ts b/src/api/account/center.ts index 46e410e6..5fa615d8 100644 --- a/src/api/account/center.ts +++ b/src/api/account/center.ts @@ -10,7 +10,7 @@ export const updateMeInfo_api = (data:object) => server.put(`/user/detail`,data) // 修改登录用户密码 export const updateMepsd_api = (data:object) => server.put(`/user/passwd`,data); // 第三方账号解绑 -export const unBind_api = (appId: string) => server.request.post(`/application/sso/${appId}/unbind/me`); +export const unBind_api = (appId: string) => server.post(`/application/sso/${appId}/unbind/me`); /** * 校验字段合法性 * @param type 类型 diff --git a/src/api/data-collect/channel.ts b/src/api/data-collect/channel.ts index f255032e..f8ec066c 100644 --- a/src/api/data-collect/channel.ts +++ b/src/api/data-collect/channel.ts @@ -11,7 +11,7 @@ export const save = (data: any) => server.post(`/data-collect/channel`, data); export const update = (id: string, data: any) => server.put(`/data-collect/channel/${id}`, data); -export const getProviders = () => server.get(`/gateway/device/providers`); +export const getProviders = () => server.get(`/data-collect/channel/providers`); export const queryOptionsList = (type: string) => server.get(`/data-collect/opc/${type}`); diff --git a/src/api/data-collect/collector.ts b/src/api/data-collect/collector.ts index 53304ef6..8ab956f5 100644 --- a/src/api/data-collect/collector.ts +++ b/src/api/data-collect/collector.ts @@ -61,3 +61,6 @@ export const scanOpcUAList = (data: any) => export const queryTypeList = () => server.get(`/data-collect/opc/data-types`); +export const getProviders = () => server.get('/data-collect/channel/gateway/codec/providers') + +export const getStates = () => server.get('/dictionary/running-state/items') \ No newline at end of file diff --git a/src/api/device/product.ts b/src/api/device/product.ts index d0228def..de7e0256 100644 --- a/src/api/device/product.ts +++ b/src/api/device/product.ts @@ -106,7 +106,7 @@ export const addProduct = (data:any) => server.post('/device-product',data) * @param data * @returns */ -export const editProduct = (data: any) => server.patch('/device-product', data) +export const editProduct = (data: any) => server.put(`/device-product/${data.id}`, data) /** * 删除产品 diff --git a/src/api/media/channel.ts b/src/api/media/channel.ts index 06b80f65..a24cd0e4 100644 --- a/src/api/media/channel.ts +++ b/src/api/media/channel.ts @@ -67,4 +67,7 @@ export default { // 播放云端回放 playbackStart: (recordId: string) => server.get(`/media/record/${recordId}.mp4`), + + // 设备预置位相关接口 + opFunction: (deviceId: string, functionId: string, data?: any) => server.post(`/device/invoked/${deviceId}/function/${functionId}`, data) } \ No newline at end of file diff --git a/src/components/FRuleEditor-copy/Operator/index.vue b/src/components/FRuleEditor-copy/Operator/index.vue index 9522a139..0ad74e01 100644 --- a/src/components/FRuleEditor-copy/Operator/index.vue +++ b/src/components/FRuleEditor-copy/Operator/index.vue @@ -3,7 +3,9 @@
+ :tree-data="data" + :showLine="{ showLeafIcon: false }" + :show-icon="true">
@@ -61,7 +61,8 @@ import { arrayReverse, typeDataLine, areaStyleJvm, - defulteParamsData, + colorJvm, + defaultParamsData } from './tool.ts'; import { DataType } from '../typings'; import ServerList from './ServerList.vue' @@ -98,7 +99,7 @@ const pickerTimeChange = () => { const getJVMEcharts = async (val: any) => { loading.value = true; - const res: any = await dashboard(defulteParamsData('jvm', val)); + const res: any = await dashboard(defaultParamsData('jvm', val)); if (res.success) { const _jvmOptions = {}; const _jvmXAxis = new Set(); @@ -142,7 +143,7 @@ const setOptions = (optionsData: any, key: string) => ({ type: 'line', smooth: true, symbol: 'none', - areaStyle: areaStyleJvm, + // areaStyle: areaStyleJvm(_index), }); const handleJVMOptions = (optionsData: any, xAxis: any) => { const dataKeys = Object.keys(optionsData); @@ -184,7 +185,7 @@ const echartsOptions = computed(() => { end: data.value.type !== 'hour' ? 10 : 100, }, ], - color: ['#60DFC7'], + color: colorJvm, series: series } }) diff --git a/src/views/link/DashBoard/components/Network.vue b/src/views/link/DashBoard/components/Network.vue index ab9de9e3..bb6c1893 100644 --- a/src/views/link/DashBoard/components/Network.vue +++ b/src/views/link/DashBoard/components/Network.vue @@ -7,7 +7,7 @@ 上行 @@ -73,6 +73,7 @@ import { getTimeByType, typeDataLine, areaStyle, + colorNetwork, networkParams, arrayReverse, } from './tool.ts'; import dayjs from 'dayjs'; @@ -108,7 +109,9 @@ const pickerTimeChange = (value: any) => { data.value.time.type = undefined; getNetworkEcharts(data.value); }; - +const changeType = (value:any) =>{ + getNetworkEcharts(data.value); +} const getNetworkEcharts = async (val: any) => { loading.value = true; const resp: any = await dashboard(networkParams(val)); @@ -168,7 +171,7 @@ const setOptions = (data: any, key: string) => ({ name: key, type: 'line', smooth: true, - areaStyle, + // areaStyle, }); const handleNetworkOptions = (optionsData: any, xAxis: any) => { @@ -205,7 +208,7 @@ const echartsOptions = computed(() => { trigger: 'axis', formatter: (_value: any) => networkValueRender(_value[0]), }, - color: ['#979AFF'], + color: colorNetwork, series: series }; }) @@ -214,6 +217,7 @@ watch( () => data.value.time.type, (value) => { if (value === undefined) return; + console.log(value); const date = getTimeByType(value); data.value.time.time = [dayjs(date), dayjs(new Date())]; diff --git a/src/views/link/DashBoard/components/ServerList.vue b/src/views/link/DashBoard/components/ServerList.vue index 80bc72bb..d2655b2e 100644 --- a/src/views/link/DashBoard/components/ServerList.vue +++ b/src/views/link/DashBoard/components/ServerList.vue @@ -4,10 +4,10 @@
- +
@@ -26,7 +26,7 @@ const props = defineProps({ default: () => [] }, color: { - type: String, + type: [String, Array], default: '#979AFF' } }) diff --git a/src/views/link/DashBoard/components/tool.ts b/src/views/link/DashBoard/components/tool.ts index 4bcbac31..83602698 100644 --- a/src/views/link/DashBoard/components/tool.ts +++ b/src/views/link/DashBoard/components/tool.ts @@ -104,7 +104,7 @@ export const networkParams = (val: any) => { }, ]; }; -export const defulteParamsData = (group: any, val: any) => [ +export const defaultParamsData = (group: any, val: any) => [ { dashboard: 'systemMonitor', object: 'stats', @@ -119,6 +119,10 @@ export const defulteParamsData = (group: any, val: any) => [ }, ]; +export const colorNetwork = ['#FF7D00', '#FFC300', '#37E2E2', '#165DFF', '#722ED1'] +export const colorCpu = ['#313CA9', '#21CCFF', '#249EFF', '#86DF6C', '#979AFF'] +export const colorJvm = ['#246EFF', '#00B2FF', '#81E2FF', '#2CAB40', '#8D4EDA'] + export const areaStyle = { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { diff --git a/src/views/media/Device/Channel/Live/Preset.vue b/src/views/media/Device/Channel/Live/Preset.vue new file mode 100644 index 00000000..323fab90 --- /dev/null +++ b/src/views/media/Device/Channel/Live/Preset.vue @@ -0,0 +1,203 @@ + + + \ No newline at end of file diff --git a/src/views/media/Device/Channel/Live/Share.vue b/src/views/media/Device/Channel/Live/Share.vue new file mode 100644 index 00000000..416e1537 --- /dev/null +++ b/src/views/media/Device/Channel/Live/Share.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/src/views/media/Device/Channel/Live/index.less b/src/views/media/Device/Channel/Live/index.less index e8e0b3f6..b2e2221e 100644 --- a/src/views/media/Device/Channel/Live/index.less +++ b/src/views/media/Device/Channel/Live/index.less @@ -1,22 +1,21 @@ .media-live { display: flex; - .live-player-tools { - flex-basis: 230px; + // .live-player-tools { + // flex-basis: 300px; - .direction-item { - font-size: 30px !important; - } + // .direction-item { + // font-size: 30px !important; + // } - .zoom-item { - font-size: 20px !important; - } - } + // .zoom-item { + // font-size: 20px !important; + // } + // } .media-live-video { position: relative; - flex-grow: 1; - width: 0; + flex: 1; .media-tool { position: absolute; @@ -50,9 +49,20 @@ } } } + + .media-live-actions { + width: 300px; + margin-left: 10px; + + .actions-tool { + padding: 0 40px 5px 40px; + } + } } .media-live-tool { display: flex; - margin-top: 24px; + margin-bottom: 24px; + justify-content: space-between; + align-items: center; } diff --git a/src/views/media/Device/Channel/Live/index.vue b/src/views/media/Device/Channel/Live/index.vue index 27d292e1..b9e0aa5b 100644 --- a/src/views/media/Device/Channel/Live/index.vue +++ b/src/views/media/Device/Channel/Live/index.vue @@ -3,49 +3,82 @@ + +
+ + MP4 + FLV + HLS + +
+ 分享视频 +
+
-
-
- diff --git a/src/views/media/Device/Channel/Share/index.vue b/src/views/media/Device/Channel/Share/index.vue new file mode 100644 index 00000000..11d43227 --- /dev/null +++ b/src/views/media/Device/Channel/Share/index.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/src/views/media/Device/Channel/Tree/index.vue b/src/views/media/Device/Channel/Tree/index.vue index 5cf04f0c..827ce9ee 100644 --- a/src/views/media/Device/Channel/Tree/index.vue +++ b/src/views/media/Device/Channel/Tree/index.vue @@ -21,6 +21,8 @@ } }" :fieldNames="{ key: 'id', title: 'name' }" + :showLine="{ showLeafIcon: false }" + :show-icon="true" />
diff --git a/src/views/media/Device/Channel/index.vue b/src/views/media/Device/Channel/index.vue index 5eb49648..06666e25 100644 --- a/src/views/media/Device/Channel/index.vue +++ b/src/views/media/Device/Channel/index.vue @@ -130,7 +130,7 @@ :channelData="channelData" @submit="listRef.reload()" /> - + diff --git a/src/views/notice/Config/SyncUser/index.vue b/src/views/notice/Config/SyncUser/index.vue index e7b91266..efcc42d1 100644 --- a/src/views/notice/Config/SyncUser/index.vue +++ b/src/views/notice/Config/SyncUser/index.vue @@ -30,6 +30,8 @@ :fieldNames="{ title: 'name', key: 'id' }" :selectedKeys="[deptId]" @select="onTreeSelect" + :showLine="{ showLeafIcon: false }" + :show-icon="true" > diff --git a/src/views/oauth/index.vue b/src/views/oauth/index.vue index 53b71bb6..7a4430a6 100644 --- a/src/views/oauth/index.vue +++ b/src/views/oauth/index.vue @@ -151,13 +151,14 @@ const changeAccount = () => { const getLoginUser = async (data?: any) => { if (getToken()) { // 未登录 const res = await getMe_api() + console.log(params.value, data) if (res.success) { - userName.value = res.result?.user.name + userName.value = res.result?.user?.name isLogin.value = true getApplication(data?.client_id || params.value.client_id) - if (data?.internal === 'true' || internal.value === 'true') { // 是否走oauth2 + // if (data?.internal === 'true' || internal.value === 'true') { // 是否走oauth2 goOAuth2Fn(data) - } + // } } else if (res.status === 401) { setTimeout(() => { spinning.value = false @@ -177,16 +178,19 @@ const getLoginUser = async (data?: any) => { } } -const getQueryVariable = (variable: any) => { - const query = window.location.search.substring(1); - const vars = query.split('&'); +const getQueryVariable = (): Map => { + const index = window.location.href.indexOf('?') + const paramsUrl = window.location.href.substr(index + 1) + const paramsArr = paramsUrl.split('#')?.[0] || '' + + const vars = paramsArr.split('&'); + const maps = new Map() for (let i = 0; i < vars.length; i++) { const pair = vars[i].split('='); - if (pair[0] === variable) { - return pair[1]; - } + const [key, value] = pair + maps.set(key, value) } - return ''; + return maps; } const doLogin = () => { @@ -209,32 +213,36 @@ const doLogin = () => { const initPage = async () => { let redirectUrl // 获取url中的配置信息 + const paramsIndex = location.hash.indexOf('?') + const _params = getQueryVariable() const items = { - client_id: getQueryVariable('client_id'), - state: getQueryVariable('state'), - redirect_uri: decodeURIComponent(getQueryVariable('redirect_uri')), - response_type: getQueryVariable('response_type'), - scope: getQueryVariable('scope'), + client_id: _params.get('client_id'), + state: _params.get('state'), + redirect_uri: decodeURIComponent(_params.get('redirect_uri')!), + response_type: _params.get('response_type'), + scope: _params.get('scope'), } - const item = getQueryVariable('internal'); + const item = _params.get('internal'); if (items.redirect_uri) { const origin = items.redirect_uri.split('/').slice(0, 3) const url = `${origin.join('/')}${items.redirect_uri?.split('redirect=')[1]}` // redirectUrl = `${items.redirect_uri?.split('redirect_uri=')[0]}?redirect=${url}` redirectUrl = items.redirect_uri } - // 获取用户信息 - getLoginUser({ - ...items, - internal: getQueryVariable('internal'), - redirect_uri: redirectUrl, - }) + console.log(params) internal.value = item params.value = { ...items, redirect_uri: redirectUrl, } + console.log(params.value) + // 获取用户信息 + getLoginUser({ + ...items, + internal: _params.get('internal'), + redirect_uri: redirectUrl, + }) } const getSettingDetail = () => { diff --git a/src/views/rule-engine/Scene/Save/components/DropdownButton/DropdownButton.vue b/src/views/rule-engine/Scene/Save/components/DropdownButton/DropdownButton.vue index 4f00510e..11055f19 100644 --- a/src/views/rule-engine/Scene/Save/components/DropdownButton/DropdownButton.vue +++ b/src/views/rule-engine/Scene/Save/components/DropdownButton/DropdownButton.vue @@ -38,6 +38,8 @@ :height='450' :virtual='true' @select='treeSelect' + :showLine="{ showLeafIcon: false }" + :show-icon="true" >