From 85391dc1a2458202bdf0fb7a5394022aa17b9126 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期日, 31 七月 2022 15:05:48 +0800 Subject: [PATCH] 完善系统oem配置 --- src/pages/ai/index/detail.vue | 669 +++++++++++++++------------------- src/pages/login/index/App.vue | 198 ++++----- src/pages/vindicate/views/sysInfo.vue | 232 +++++------ public/apps/loginData/login.json | 4 4 files changed, 493 insertions(+), 610 deletions(-) diff --git a/public/apps/loginData/login.json b/public/apps/loginData/login.json index da292da..8dcfe38 100644 --- a/public/apps/loginData/login.json +++ b/public/apps/loginData/login.json @@ -1,5 +1,7 @@ { "title_firstLine": "Smart AI", "title_secondLine": "浜哄伐鏅鸿兘鎿嶄綔绯荤粺", - "website": "www.smartai.com" + "website": "www.smartai.com", + "product_name": "Smart AIOS", + "copyright": "Copyright 漏 鍖椾含璐濇�濈鎶�鏈湁闄愬叕鍙�" } \ No newline at end of file diff --git a/src/pages/ai/index/detail.vue b/src/pages/ai/index/detail.vue index 65ae2e3..e084b65 100644 --- a/src/pages/ai/index/detail.vue +++ b/src/pages/ai/index/detail.vue @@ -8,33 +8,14 @@ <div class="right-info"> <div class="right-info-1"> <span class="name">{{ productDetail.productName }}</span> - <el-tag type="info" size="mini" color="#fff">{{ - isSDKDetail ? "绠楁硶" : "搴旂敤" - }}</el-tag> + <el-tag type="info" size="mini" color="#fff">{{ isSDKDetail ? "绠楁硶" : "搴旂敤" }}</el-tag> </div> <div class="right-info-2"> - <el-button - size="mini" - round - class="update-btn" - @click="upgradeSDKinWin" - v-if="productDetail.isUpgrade" + <el-button size="mini" round class="update-btn" @click="upgradeSDKinWin" v-if="productDetail.isUpgrade" >鏇存柊</el-button > - <el-button - size="mini" - round - v-if="!isSDKDetail && isActive" - @click="openApp" - >鎵撳紑</el-button - > - <el-button - size="mini" - round - v-if="isActive && !isDefaultApp" - @click="unloadSDKinWin" - >鍗歌浇</el-button - > + <el-button size="mini" round v-if="!isSDKDetail && isActive" @click="openApp">鎵撳紑</el-button> + <el-button size="mini" round v-if="isActive && !isDefaultApp" @click="unloadSDKinWin">鍗歌浇</el-button> <el-button size="mini" round @@ -95,11 +76,7 @@ <div class="detail-mid"> <div class="mid-left"> <div class="mid-title">{{ isSDKDetail ? "搴旂敤鍦烘櫙" : "鍔熻兘鐗圭偣" }}</div> - <div - v-for="(item, index) in productDetail.funcInfo" - :key="index" - class="desc-item" - > + <div v-for="(item, index) in productDetail.funcInfo" :key="index" class="desc-item"> <div class="title">{{ item.title }}</div> <div class="desc">{{ item.desc }}</div> </div> @@ -109,29 +86,11 @@ trigger="click" :autoplay="false" indicator-position="none" - :arrow=" - productDetail.pics !== undefined - ? productDetail.pics.length > 1 - ? 'always' - : 'never' - : 'never' - " + :arrow="productDetail.pics !== undefined ? (productDetail.pics.length > 1 ? 'always' : 'never') : 'never'" > - <el-carousel-item - v-for="(item, index) in productDetail.pics" - :key="index" - > - <img - v-if="item.type != 'video'" - :src="item.url" - class="cursor-pointer" - preview - /> - <video - v-if="item.type == 'video'" - :src="'/httpImage/' + item.url" - controls - ></video> + <el-carousel-item v-for="(item, index) in productDetail.pics" :key="index"> + <img v-if="item.type != 'video'" :src="item.url" class="cursor-pointer" preview /> + <video v-if="item.type == 'video'" :src="'/httpImage/' + item.url" controls></video> </el-carousel-item> </el-carousel> </div> @@ -140,20 +99,11 @@ <div class="rec-title">{{ isSDKDetail ? "鎺ㄨ崘绠楁硶" : "鎺ㄨ崘搴旂敤" }}</div> <div class="rec-items"> - <div - class="rec-item" - v-for="(item, index) in otherProducts" - :key="index" - @click="checkInWindow(item)" - > + <div class="rec-item" v-for="(item, index) in otherProducts" :key="index" @click="checkInWindow(item)"> <div class="icon-img"> <img v-if="item.iconBlob" - :src=" - item.iconBlob.indexOf(',') > 0 - ? item.iconBlob - : `data:image/png;base64,${item.iconBlob}` - " + :src="item.iconBlob.indexOf(',') > 0 ? item.iconBlob : `data:image/png;base64,${item.iconBlob}`" alt /> </div> @@ -164,24 +114,13 @@ <div class="desc-2">鐗堟湰 {{ item.productVersion || "2.0.0" }}</div> </div> <div class="right-btn"> - <el-button - size="small" - type="primary" - round - @click="checkInWindow(item)" - >鏌ョ湅</el-button - > + <el-button size="small" type="primary" round @click="checkInWindow(item)">鏌ョ湅</el-button> </div> </div> </div> </div> - <el-dialog - :visible.sync="showActivateSuccess" - title="婵�娲绘垚鍔燂紒" - width="30%" - class="active-Dial" - > + <el-dialog :visible.sync="showActivateSuccess" title="婵�娲绘垚鍔燂紒" width="30%" class="active-Dial"> <div class="dialog-active"> <ul class="desc"> <li> @@ -214,13 +153,7 @@ </div> </template> <script> -import { - findAllSdk, - downloadSdk, - installSdk, - getInstallInfo, - removeSdk, -} from "./api"; +import { findAllSdk, downloadSdk, installSdk, getInstallInfo, removeSdk } from "./api" import { getApps, installApp, @@ -229,26 +162,23 @@ getUnActivedSdk, actPageAlg, getUnActivedApp, - actApp, -} from "@/api/app"; -import { getUrlKey } from "@/api/utils"; + actApp +} from "@/api/app" +import { getUrlKey } from "@/api/utils" export default { components: {}, computed: { updateNum() { - return this.hasNewVersionApp.length + this.hasNewVersionSdk.length; + return this.hasNewVersionApp.length + this.hasNewVersionSdk.length }, isAdmin() { - if ( - sessionStorage.getItem("userInfo") && - sessionStorage.getItem("userInfo") !== "" - ) { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; - return loginName === "superadmin" || loginName === "basic"; + if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") { + let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username + return loginName === "superadmin" || loginName === "basic" } - return false; - }, + return false + } }, data() { return { @@ -282,7 +212,7 @@ setting: "", expireTime: "", licence: "", - devIds: "", + devIds: "" }, installedApps: [], storeApps: [], @@ -302,169 +232,167 @@ forwardDisable: true, showInputCode: false, needToUpgradeInWin: false, - showInstallNotActive: false, - }; + showInstallNotActive: false + } }, props: { detailType: { - type: String, + type: String }, detailProductID: { - type: String, + type: String }, detailPrice: {}, - isSdk: {}, + isSdk: {} }, directives: { focus: { - inserted: function (el) { - el.querySelector("input").focus(); - }, - }, + inserted: function(el) { + el.querySelector("input").focus() + } + } }, mounted() { - this.getDetail(); - // this.autoRefreshAppAndSdkState(); + this.getDetail() + this.autoRefreshAppAndSdkState() // this.getUnActivedList(); // this.getUnActivedAppList(); - this.showBackBtn(); - this.addBackListener(); + this.showBackBtn() + this.addBackListener() }, beforeDestroy() { - this.autoRefresh = false; - this.hiddenBackBtn(); + this.autoRefresh = false + this.hiddenBackBtn() }, methods: { getDetail(id) { getAppDetail({ id: id || this.detailProductID }) .then((res) => { if (res.success) { - this.productDetail = res.data.detail; - this.otherProducts = res.data.randoms; + this.productDetail = res.data.detail + this.otherProducts = res.data.randoms - this.isSDKDetail = this.productDetail.productTypeName == "SDK"; - this.isDefaultApp = this.productDetail.productBaseId.length < 10; + this.isSDKDetail = this.productDetail.productTypeName == "SDK" + this.isDefaultApp = this.productDetail.productBaseId.length < 10 } else { - this.$message.error(res.msg); + this.$message.error(res.msg) } }) .catch((err) => { - this.$message.error(err.msg); - }); - this.isActive = this.detailType == "active"; - this.showInstallNotActive = this.detailType == "activeNotInstall"; + this.$message.error(err.msg) + }) + this.isActive = this.detailType == "active" + this.showInstallNotActive = this.detailType == "activeNotInstall" }, goback() { - this.productDetail = {}; - this.$emit("goback"); + this.productDetail = {} + this.$emit("goback") }, isShow(authority) { - return ( - this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 - ); + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 }, closeDial() { - this.productDetailVisible = false; - this.productDetail = {}; - this.otherProducts = []; + this.productDetailVisible = false + this.productDetail = {} + this.otherProducts = [] }, resetStack() { - this.forwardStack = []; - this.backStack = []; - this.backDisable = true; - this.forwardDisable = true; + this.forwardStack = [] + this.backStack = [] + this.backDisable = true + this.forwardDisable = true }, checkInWindow(item) { getAppDetail({ id: item.id }).then((res) => { - this.productDetail = res.data.detail; - this.productDetail.iconBlob = item.iconBlob; - this.actId = this.productDetail.productBaseId; - this.isSDKDetail = this.productDetail.productTypeName == "SDK"; - this.isDefaultApp = this.productDetail.productBaseId.length < 10; + this.productDetail = res.data.detail + this.productDetail.iconBlob = item.iconBlob + this.actId = this.productDetail.productBaseId + this.isSDKDetail = this.productDetail.productTypeName == "SDK" + this.isDefaultApp = this.productDetail.productBaseId.length < 10 - this.otherProducts = res.data.randoms; - }); + this.otherProducts = res.data.randoms + }) }, checkIsDefOrNot(id) { if (id.length > 10) { - this.isDefaultApp = false; + this.isDefaultApp = false } else { - this.isDefaultApp = true; + this.isDefaultApp = true } }, backwards() { if (this.backStack.length == 0) { - this.backDisable = true; - return; + this.backDisable = true + return } - this.forwardStack.push([this.productDetail, this.otherProducts]); - let item = this.backStack.pop(); - this.productDetail = item[0]; - this.checkIsDefOrNot(this.productDetail.productBaseId); - this.otherProducts = item[1]; - this.forwardDisable = false; + this.forwardStack.push([this.productDetail, this.otherProducts]) + let item = this.backStack.pop() + this.productDetail = item[0] + this.checkIsDefOrNot(this.productDetail.productBaseId) + this.otherProducts = item[1] + this.forwardDisable = false if (this.backStack.length == 0) { - this.backDisable = true; + this.backDisable = true } }, forwards() { if (this.forwardStack.length == 0) { - this.forwardDisable = true; - return; + this.forwardDisable = true + return } - this.backStack.push([this.productDetail, this.otherProducts]); - this.backDisable = false; - let item = this.forwardStack.pop(); + this.backStack.push([this.productDetail, this.otherProducts]) + this.backDisable = false + let item = this.forwardStack.pop() - this.productDetail = item[0]; - this.otherProducts = item[1]; + this.productDetail = item[0] + this.otherProducts = item[1] if (this.forwardStack.length == 0) { - this.forwardDisable = true; + this.forwardDisable = true } }, //绂荤嚎瀹夎 offlineInstall() { - this.installDialogVisible = false; - this.isInstall = true; + this.installDialogVisible = false + this.isInstall = true //瀹夎 installSdk(this.installFile) .then((res) => { if (res.success) { - this.isInstall = false; + this.isInstall = false this.$message({ type: "success", - message: '瀹夎鎴愬姛,灏嗚烦杞嚦"宸叉縺娲�"涓煡鐪�', - }); + message: '瀹夎鎴愬姛,灏嗚烦杞嚦"宸叉縺娲�"涓煡鐪�' + }) setTimeout(() => { - this.getAllSdk(); + this.getAllSdk() window.parent.postMessage( { - msg: "AppUpdate", + msg: "AppUpdate" }, "*" - ); - this.activeName = "myAlgorithm"; - }, 3000); + ) + this.activeName = "myAlgorithm" + }, 3000) } }) .catch((e) => { - console.log(e); - this.isInstall = false; + console.log(e) + this.isInstall = false this.$message({ type: "error", - message: e.msg, - }); - }); + message: e.msg + }) + }) }, downloadApp(app, action) { if (action == "upgrade") { - app.upgradeLoading = true; + app.upgradeLoading = true } else { - app.installLoading = true; + app.installLoading = true } - let _this = this; + let _this = this installApp({ path: app.id }) .then((res) => { @@ -472,21 +400,21 @@ _this.$notify({ title: "鎴愬姛", message: "瀹夎搴旂敤鎴愬姛", - type: "success", - }); + type: "success" + }) setTimeout(() => { if (action == "upgrade") { - app.upgradeLoading = false; + app.upgradeLoading = false } else { - app.installLoading = false; + app.installLoading = false } window.parent.postMessage( { - msg: "AppUpdate", + msg: "AppUpdate" }, "*" - ); - }, 3000); + ) + }, 3000) } else { } }) @@ -494,94 +422,91 @@ _this.$notify({ title: "瀹夎澶辫触", message: e.data, - type: "warning", - }); + type: "warning" + }) if (action == "upgrade") { - app.upgradeLoading = false; + app.upgradeLoading = false } else { - app.installLoading = false; + app.installLoading = false } - }); + }) // 寮�鍚嚜鍔ㄥ埛鏂� - this.appUpgreading = true; + this.appUpgreading = true }, async getAllApps() { let iArry = [], sArry = [], - nArry = []; - let rsp = await getApps(); + nArry = [] + let rsp = await getApps() if (rsp && rsp.success) { // 閬嶅巻app鐨勮繃绋嬮噸缃� - this.appUpgreading = false; + this.appUpgreading = false rsp.data.forEach((item) => { - let obj = Object.assign( - { unloadLoading: false, upgradeLoading: false }, - item - ); + let obj = Object.assign({ unloadLoading: false, upgradeLoading: false }, item) if (obj.progressMsg !== "" && obj.progressMsg !== "宸插畨瑁�") { - obj.upgradeLoading = true; - this.appUpgreading = true; + obj.upgradeLoading = true + this.appUpgreading = true } if (obj.upgradeDone) { this.$notify({ type: "success", - message: 1 ? "绠楁硶瀹夎鎴愬姛" : "绠楁硶鍗囩骇鎴愬姛", - }); + message: 1 ? "绠楁硶瀹夎鎴愬姛" : "绠楁硶鍗囩骇鎴愬姛" + }) } - item.installed ? iArry.push(obj) : sArry.push(obj); - item.isUpgrade && nArry.push(obj); - }); + item.installed ? iArry.push(obj) : sArry.push(obj) + item.isUpgrade && nArry.push(obj) + }) } - this.installedApps = iArry; - this.storeApps = sArry; - this.hasNewVersionApp = nArry; + this.installedApps = iArry + this.storeApps = sArry + this.hasNewVersionApp = nArry }, unLoad(app) { - let _this = this; + let _this = this this.$confirm("纭畾瑕佸嵏杞借搴旂敤鍚�?", "鎻愮ず") .then(() => { - _this.productDetailVisible = false; - app.unloadLoading = true; + _this.productDetailVisible = false + app.unloadLoading = true removeApp({ appId: app.id }) .then((res) => { if (res && res.success) { - app.unloadLoading = false; - this.$emit("flushApp"); + app.unloadLoading = false + this.$emit("flushApp") window.parent.postMessage( { - msg: "AppUpdate", + msg: "AppUpdate" }, "*" - ); + ) _this.$notify({ title: "鎴愬姛", message: "鍗歌浇搴旂敤鎴愬姛", - type: "success", - }); - this.goback(); + type: "success" + }) + this.goback() } }) .catch((e) => { - app.unloadLoading = false; - }); + app.unloadLoading = false + }) }) - .catch((e) => {}); + .catch((e) => {}) }, actSdkOrApp(item, type = "sdk") { - this.checkDetail(item, "inactive"); - this.actType = type; - this.actId = item.id; - this.actStep = 0; - this.activeCode = ""; - this.activedSdkOrApp = this.newActInfo(); + this.checkDetail(item, "inactive") + this.actType = type + this.actId = item.id + this.actStep = 0 + this.activeCode = "" + this.activedSdkOrApp = this.newActInfo() }, cancelActivate() { - this.showInputCode = false; - this.activeCode = ""; + this.showInputCode = false + this.activeCode = "" }, newActInfo() { return { @@ -590,324 +515,321 @@ setting: "", expireTime: "", licence: "", - devIds: "", - }; + devIds: "" + } }, getUnActivedList() { getUnActivedSdk().then((res) => { if (res.code == 200) { - this.unActivedSDKList = res.data; + this.unActivedSDKList = res.data } - }); + }) }, getUnActivedAppList() { getUnActivedApp().then((res) => { if (res.code == 200) { - this.unActivedAppList = res.data; + this.unActivedAppList = res.data } - }); + }) }, actived() { - let _this = this; + let _this = this if (this.activeCode.trim() == "") { this.$notify({ type: "error", - message: "婵�娲荤爜涓嶈兘涓虹┖", - }); - return; + message: "婵�娲荤爜涓嶈兘涓虹┖" + }) + return } if (this.isSdk) { //婵�娲荤畻娉� actPageAlg(this.detailProductID, this.activeCode) .then((res) => { if (res.data.isSuccess) { - this.productDetailVisible = false; - _this.activedSdkOrApp = res.data.successMsg; - this.showActivateSuccess = true; - _this.actStep++; - _this.getUnActivedList(); - _this.getAllSdk(); + this.productDetailVisible = false + _this.activedSdkOrApp = res.data.successMsg + this.showActivateSuccess = true + _this.actStep++ + _this.getUnActivedList() + _this.getAllSdk() } else { _this.$notify({ type: "error", - message: res.data.failMsg.failMsg, - }); + message: res.data.failMsg.failMsg + }) } }) .catch((e) => { this.$notify({ type: "error", - message: e.msg, - }); - }); + message: e.msg + }) + }) } else { //婵�娲诲簲鐢� actApp(this.detailProductID, this.activeCode) .then((res) => { if (res.data.isSuccess) { - this.productDetailVisible = false; - _this.activedSdkOrApp = res.data.successMsg; - this.showActivateSuccess = true; - _this.actStep++; - _this.getUnActivedAppList(); - _this.getAllApps(); + this.productDetailVisible = false + _this.activedSdkOrApp = res.data.successMsg + this.showActivateSuccess = true + _this.actStep++ + _this.getUnActivedAppList() + _this.getAllApps() } else { _this.$notify({ type: "error", - message: res.data.failMsg.failMsg, - }); + message: res.data.failMsg.failMsg + }) } }) .catch((e) => { this.$notify({ type: "error", - message: e.msg, - }); - }); + message: e.msg + }) + }) } }, checkMyAlgorith() { - this.showActivateSuccess = false; - this.goback(); - this.activeName = "宸叉縺娲�"; + this.showActivateSuccess = false + this.goback() + this.activeName = "宸叉縺娲�" }, onFileUpload(file) { - this.patchFile = { ...file }; - this.fileAdded = true; - const h = this.$createElement; + this.patchFile = { ...file } + this.fileAdded = true + const h = this.$createElement //涓婁紶瀹屾垚鑾峰彇瀹夎淇℃伅 - let _this = this; + let _this = this getInstallInfo(file) .then((res) => { - _this.installFile = file; + _this.installFile = file if (res.success) { - _this.installDialogVisible = true; + _this.installDialogVisible = true if (res.data.apps.length > 0) { _this.installAppPackage = { appId: res.data.apps[0].appId, version: res.data.apps[0].version, productName: res.data.productName, - installContent: res.data.apps[0].installContent, - }; + installContent: res.data.apps[0].installContent + } } if (res.data.sdks.length > 0) { _this.installSdkPackage = { appId: res.data.sdks[0].sdkId, version: res.data.sdks[0].version, productName: res.data.productName, - installContent: res.data.sdks[0].installContent, - }; + installContent: res.data.sdks[0].installContent + } } } else { this.$message({ type: "error", - message: res.msg, - }); + message: res.msg + }) } }) .catch((e) => { this.$message({ type: "error", - message: e.msg, - }); - }); + message: e.msg + }) + }) }, openApp() { - window.parent.postMessage( - { msg: "toOpenApp?" + this.productDetail.productBaseId }, - "*" - ); + window.parent.postMessage({ msg: "toOpenApp?" + this.productDetail.productBaseId }, "*") }, onFileAdded(f) { - this.patchUpdateStatus = ""; + this.patchUpdateStatus = "" }, async getAllSdk() { - let installedList = []; - let unInstalledList = []; - let hasNewVersionList = []; - let res = await findAllSdk(); + let installedList = [] + let unInstalledList = [] + let hasNewVersionList = [] + let res = await findAllSdk() if (res && res.success) { - this.sdkUpgreading = false; + this.sdkUpgreading = false res.data.forEach((item) => { - let obj = Object.assign( - { unloadLoading: false, upgradeLoading: false }, - item - ); + let obj = Object.assign({ unloadLoading: false, upgradeLoading: false }, item) if (obj.progressMsg !== "" && obj.progressMsg !== "宸插畨瑁�") { - obj.upgradeLoading = true; - this.sdkUpgreading = true; + obj.upgradeLoading = true + this.sdkUpgreading = true } //绠楁硶杞欢 宸插畨瑁呭叾涓寘鍚緟鍗囩骇 鏈畨瑁� - item.installed ? installedList.push(obj) : unInstalledList.push(obj); - item.isUpgrade ? hasNewVersionList.push(obj) : null; - }); + item.installed ? installedList.push(obj) : unInstalledList.push(obj) + item.isUpgrade ? hasNewVersionList.push(obj) : null + }) } - this.installedList = installedList; - this.notInstalledList = unInstalledList; - this.toUpdateArr = this.installedList.slice(0, 4); - this.hasNewVersionSdk = hasNewVersionList; + this.installedList = installedList + this.notInstalledList = unInstalledList + this.toUpdateArr = this.installedList.slice(0, 4) + this.hasNewVersionSdk = hasNewVersionList }, unloadSDKinWin() { - let appToUnload; - let sdkToUnload; + let appToUnload + let sdkToUnload if (this.productDetail.productTypeName == "搴旂敤") { appToUnload = this.installedApps.find((item) => { - return item.id == this.productDetail.productBaseId; - }); - this.unLoad(appToUnload); + return item.id == this.productDetail.productBaseId + }) + this.unLoad(appToUnload) } else { sdkToUnload = this.installedList.find((item) => { - return item.id == this.productDetail.productBaseId; - }); - this.unLoadSdk(sdkToUnload); + return item.id == this.productDetail.productBaseId + }) + this.unLoadSdk(sdkToUnload) } }, //鍗歌浇绠楁硶 unLoadSdk(sdk) { - let _this = this; + let _this = this this.$confirm("纭畾瑕佸嵏杞借绠楁硶鍚�?", "鎻愮ず") .then(() => { - _this.productDetailVisible = false; - sdk.unloadLoading = true; + _this.productDetailVisible = false + sdk.unloadLoading = true removeSdk({ sdkId: sdk.id }) .then((res) => { if (res && res.success) { - sdk.unloadLoading = false; - this.$notify.success("鍗歌浇瀹屾垚"); + sdk.unloadLoading = false + this.$notify.success("鍗歌浇瀹屾垚") // _this.getAllSdk(); - this.$emit("flushSdk"); - window.parent.postMessage({ msg: "AppUpdate" }, "*"); - this.goback(); + this.$emit("flushSdk") + window.parent.postMessage({ msg: "AppUpdate" }, "*") + this.goback() } }) .catch((e) => { - sdk.unloadLoading = false; - }); + console.log(e) + sdk.unloadLoading = false + }) }) - .catch((e) => {}); + .catch((e) => { + console.log("鍙栨秷", e) + }) }, upgradeSDKinWin() { - this.isUpgrading = !this.isUpgrading; + this.isUpgrading = !this.isUpgrading if (this.productDetail.productTypeName == "搴旂敤") { installApp({ path: this.productDetail.productBaseId }) .then((res) => { if (res && res.success) { - this.$notify.success("鍗囩骇瀹屾垚"); - this.needToUpgradeInWin = false; - this.productDetail.isUpgrade = false; - this.isUpgrading = !this.isUpgrading; + this.$notify.success("鍗囩骇瀹屾垚") + this.needToUpgradeInWin = false + this.productDetail.isUpgrade = false + this.isUpgrading = !this.isUpgrading } }) .catch((e) => { - this.$notify.error("鍗囩骇澶辫触"); - this.isUpgrading = !this.isUpgrading; - }); + this.$notify.error("鍗囩骇澶辫触") + this.isUpgrading = !this.isUpgrading + }) // 寮�鍚嚜鍔ㄥ埛鏂� - this.appUpgreading = true; + this.appUpgreading = true } else { downloadSdk({ path: this.productDetail.productBaseId }) .then((res) => { - this.needToUpgradeInWin = false; - this.productDetail.isUpgrade = false; - this.isUpgrading = !this.isUpgrading; - this.$notify.success("鍗囩骇瀹屾垚"); + this.needToUpgradeInWin = false + this.productDetail.isUpgrade = false + this.isUpgrading = !this.isUpgrading + this.$notify.success("鍗囩骇瀹屾垚") }) .catch((err) => { - this.$notify.error("鍗囩骇澶辫触"); - this.isUpgrading = !this.isUpgrading; - }); - this.sdkUpgreading = true; + this.$notify.error("鍗囩骇澶辫触") + this.isUpgrading = !this.isUpgrading + }) + this.sdkUpgreading = true } }, downloadSdkInSide() { - this.downloadItem = this.productDetail.productBaseId; - this.isUpgrading = true; + this.downloadItem = this.productDetail.productBaseId + this.isUpgrading = true downloadSdk({ path: this.productDetail.productBaseId }) .then((rsp) => { - this.productDetailVisible = false; - this.downloadItem = ""; - this.$notify.success("绠楁硶宸插畨瑁�"); - this.isUpgrading = false; + this.productDetailVisible = false + this.downloadItem = "" + this.$notify.success("绠楁硶宸插畨瑁�") + this.isUpgrading = false }) .catch((err) => { - this.$notify.warning(err.data); - this.downloadItem = ""; - this.isUpgrading = false; - }); + this.$notify.warning(err.data) + this.downloadItem = "" + this.isUpgrading = false + }) // 寮�鍚嚜鍔ㄥ埛鏂� - this.sdkUpgreading = true; + this.sdkUpgreading = true }, donwload(item, typ) { - item.upgradeLoading = true; - this.downloadItem = item.id; + item.upgradeLoading = true + this.downloadItem = item.id downloadSdk({ path: item.id }) .then((rsp) => { - item.upgradeLoading = false; - this.downloadItem = ""; + item.upgradeLoading = false + this.downloadItem = "" window.parent.postMessage( { - msg: "AppUpdate", + msg: "AppUpdate" }, "*" - ); + ) }) .catch((err) => { this.$notify({ type: "warning", - message: err.data, - }); - item.upgradeLoading = false; - this.downloadItem = ""; - }); + message: err.data + }) + item.upgradeLoading = false + this.downloadItem = "" + }) // 寮�鍚嚜鍔ㄥ埛鏂� - this.sdkUpgreading = true; + this.sdkUpgreading = true }, inputBlur(item) { - this.$set(item, "isEdit", false); + this.$set(item, "isEdit", false) }, autoRefreshAppAndSdkState() { - this.getAllApps(); - this.getAllSdk(); + this.getAllApps() + this.getAllSdk() if (!this.autoRefresh) { - return; + return } setTimeout(() => { if (this.appUpgreading) { - this.getAllApps(); + this.getAllApps() } if (this.sdkUpgreading) { - this.getAllSdk(); + this.getAllSdk() } - }, 1000); + }, 1000) }, showBackBtn() { window.parent.postMessage( { - msg: "showBack", + msg: "showBack" }, "*" - ); + ) }, hiddenBackBtn() { window.parent.postMessage( { - msg: "hiddenBack", + msg: "hiddenBack" }, "*" - ); + ) }, addBackListener() { window.addEventListener("message", (e) => { if (e.data.msg === "杩斿洖搴旂敤涓績") { - this.goback(); + this.goback() } - }); - }, - }, -}; + }) + } + } +} </script> <style lang="scss"> .detail-page { @@ -1193,4 +1115,3 @@ } } </style> - diff --git a/src/pages/login/index/App.vue b/src/pages/login/index/App.vue index e0b2279..aa517d7 100644 --- a/src/pages/login/index/App.vue +++ b/src/pages/login/index/App.vue @@ -59,13 +59,13 @@ </div> --> <div class="login"> <div class="title"> - <div class="en">{{ data.title_firstLine }}</div> - <div class="ch">{{ data.title_secondLine }}</div> + <div class="en">{{ oem.title_firstLine }}</div> + <div class="ch">{{ oem.title_secondLine }}</div> </div> <div class="left_footer"> <img class="logo" src="/apps/loginData/LOGO.png" alt="" /> - <div class="web">{{ data.website }}</div> + <div class="web">{{ oem.website }}</div> </div> <div class="login-form" :style="{ background: backgroundColor }"> @@ -115,17 +115,14 @@ </template> <script> -import { tologin, getLoginUserData, getServerName } from "./api.ts"; -import ParticleNetwork from "./ParticleNetwork"; -import Licence from "@/components/licence"; -import LangSelect from "@/components/langSelect"; -import { getMenuListData } from "@/api/utils"; -import loginData from "../../../../public/apps/loginData/login.json"; +import { tologin, getLoginUserData, getServerName } from "./api.ts" +import { getVasystemInfo } from "@/api/system" +import { getMenuListData } from "@/api/utils" export default { name: "login-pgae", metaInfo: { - title: "鐧诲綍椤�", + title: "鐧诲綍椤�" }, components: { // ParticleNetwork, @@ -139,26 +136,26 @@ { required: true, message: this.$t("placeholder.enterUsername"), - trigger: "change", - }, + trigger: "change" + } ], password: [ { required: true, message: this.$t("placeholder.enterPassword"), - trigger: "change", - }, - ], - }; - }, + trigger: "change" + } + ] + } + } }, data: () => ({ - data: {}, + oem: {}, serverTitle: "", user: { loginName: "", password: "", - rememberMe: false, + rememberMe: false }, nullRule: {}, @@ -167,61 +164,51 @@ currentHeight: 1057, currentWidth: 1920, backgroundColor: "", - backgroundList: [ - "#2A2344", - "#342344", - "#000000", - "#233044", - "#0B252E", - "#150051", - "#110040", - ], + backgroundList: ["#2A2344", "#342344", "#000000", "#233044", "#0B252E", "#150051", "#110040"] }), created() { - this.getServerName(); - this.getScreenHeight(); - this.data = loginData; - this.backgroundColor = - this.backgroundList[ - Math.floor(Math.random() * this.backgroundList.length) - ]; + this.getServerName() + this.getScreenHeight() + this.backgroundColor = this.backgroundList[Math.floor(Math.random() * this.backgroundList.length)] }, mounted() { // 鑷姩鐧诲綍鎺ュ彛 - this.loginRobot(); + this.loginRobot() + + // oem 淇℃伅 + getVasystemInfo().then((rsp) => { + this.oem = rsp + }) }, watch: {}, beforeDestroy() { - window.onresize = null; + window.onresize = null }, methods: { loginRobot() { // 瑙f瀽璺敱鍙傛暟锛屽苟缂撳瓨 - let user = this.getQueryVariable("username"); - let passwd = this.getQueryVariable("password"); + let user = this.getQueryVariable("username") + let passwd = this.getQueryVariable("password") if (user.length && passwd.length) { - sessionStorage.setItem( - "autoLogin", - JSON.stringify({ username: user, passwd: passwd }) - ); + sessionStorage.setItem("autoLogin", JSON.stringify({ username: user, passwd: passwd })) - this.user.loginName = user; - this.user.password = passwd; - this.systemLogin(); - return; + this.user.loginName = user + this.user.password = passwd + this.systemLogin() + return } // 鐧婚檰瓒呮椂鍚庣殑閲嶆柊鐧婚檰 - let sessionInfo = sessionStorage.getItem("autoLogin"); + let sessionInfo = sessionStorage.getItem("autoLogin") if (sessionInfo) { - let authority = JSON.parse(sessionInfo); - this.user.loginName = authority.username; - this.user.password = authority.passwd; - this.systemLogin(); + let authority = JSON.parse(sessionInfo) + this.user.loginName = authority.username + this.user.password = authority.passwd + this.systemLogin() } }, systemLogin() { - this.nullRule = this.rules; + this.nullRule = this.rules this.$nextTick(() => { this.$refs["ruleForm"].validate((valid) => { if (valid) { @@ -229,15 +216,15 @@ lock: true, text: "Loading", spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }); - this.testLogin(); + background: "rgba(0, 0, 0, 0.7)" + }) + this.testLogin() } else { - this.nullRule = {}; + this.nullRule = {} } - }); - this.nullRule = {}; - }); + }) + this.nullRule = {} + }) }, async testLogin() { // location.assign("/view/desktop/") @@ -245,89 +232,84 @@ .then((json) => { const loginedInfo = { access_token: json.token_type + " " + json.access_token, - refresh_token: json.refresh_token, - }; - sessionStorage.setItem("expires_in", json.expires_in); - sessionStorage.setItem("loginedInfo", JSON.stringify(loginedInfo)); - this.loading.close(); - this.getLoginUserData(); + refresh_token: json.refresh_token + } + sessionStorage.setItem("expires_in", json.expires_in) + sessionStorage.setItem("loginedInfo", JSON.stringify(loginedInfo)) + this.loading.close() + this.getLoginUserData() }) .catch((err) => { - this.loading.close(); + this.loading.close() this.$notify({ title: "鎻愮ず", type: "error", - message: err.msg, - }); - this.$refs.pwd.focus(); - }); + message: err.msg + }) + this.$refs.pwd.focus() + }) }, async getLoginUserData() { - let res = await getLoginUserData(); + let res = await getLoginUserData() if (res.success) { - sessionStorage.setItem("userInfo", JSON.stringify(res.data)); - this.$notify.success("鐧诲綍鎴愬姛锛�"); + sessionStorage.setItem("userInfo", JSON.stringify(res.data)) + this.$notify.success("鐧诲綍鎴愬姛锛�") // 鑾峰彇鏉冮檺 - await this.getMenuList(); - location.assign("/view/desktop/"); - return res.data; + await this.getMenuList() + location.assign("/view/desktop/") + return res.data } else { - this.$notify.error("鐧诲綍澶辫触锛�"); + this.$notify.error("鐧诲綍澶辫触锛�") } }, getScreenHeight() { - this.currentHeight = document.documentElement.clientHeight; - this.currentWidth = document.documentElement.clientWidth; + this.currentHeight = document.documentElement.clientHeight + this.currentWidth = document.documentElement.clientWidth window.onresize = () => { - this.currentHeight = document.documentElement.clientHeight; - this.currentWidth = document.documentElement.clientWidth; - this.$forceUpdate(); - }; + this.currentHeight = document.documentElement.clientHeight + this.currentWidth = document.documentElement.clientWidth + this.$forceUpdate() + } }, async getServerName() { - let res = await getServerName(); + let res = await getServerName() if (res && res.success) { - this.serverTitle = res.data.serverName; - window.document.title = res.data.serverName - ? res.data.serverName - : "SmartAI"; - sessionStorage.setItem("title", res.data.serverName); + this.serverTitle = res.data.serverName + window.document.title = res.data.serverName ? res.data.serverName : "SmartAI" + sessionStorage.setItem("title", res.data.serverName) } }, async getMenuList() { - let results = await getMenuListData({}); + let results = await getMenuListData({}) if (results && results.success) { /* 瀛樺偍鏉冮檺 */ - let buttonAuthoritys = results.data; + let buttonAuthoritys = results.data if (results && results.length && this.$route.query.is_login) { - this.$router.replace(results[0].url); + this.$router.replace(results[0].url) } - sessionStorage.setItem( - "buttonAuthoritys", - "," + buttonAuthoritys + "," - ); - sessionStorage.setItem("menuInfo", JSON.stringify(results)); + sessionStorage.setItem("buttonAuthoritys", "," + buttonAuthoritys + ",") + sessionStorage.setItem("menuInfo", JSON.stringify(results)) } else { this.$toast({ type: "error", - message: "鑿滃崟鑾峰彇澶辫触", - }); + message: "鑿滃崟鑾峰彇澶辫触" + }) } }, getQueryVariable(variable) { - var query = window.location.search.substring(1); - var vars = query.split("&"); + var query = window.location.search.substring(1) + var vars = query.split("&") for (var i = 0; i < vars.length; i++) { - var pair = vars[i].split("="); + var pair = vars[i].split("=") if (pair[0] == variable) { - return pair[1]; + return pair[1] } } - return false; - }, - }, -}; + return false + } + } +} </script> <style lang="scss"> html, diff --git a/src/pages/vindicate/views/sysInfo.vue b/src/pages/vindicate/views/sysInfo.vue index 072ad51..901b637 100644 --- a/src/pages/vindicate/views/sysInfo.vue +++ b/src/pages/vindicate/views/sysInfo.vue @@ -4,25 +4,19 @@ <div class="sys-right"> <div class="auto"> <div class="title-bg"> - <div class="title">Smart AIOS</div> - <div class="desc">Copyright 漏 璐濇�濈鎶�鏈湁闄愬叕鍙�</div> + <div class="title">{{ productName }}</div> + <div class="desc">{{ copyright }}</div> </div> <div class="bar" style="background-color: #f2f2f7"> <div class="name">鐗堟湰锛�</div> <div class="desc"> - {{ - serializedNumber == "" ? "SmartAIOS璇曠敤鐗�" : "SmartAIOS姝e紡鐗�" - }} + {{ serializedNumber == "" ? `${productName}璇曠敤鐗坄 : `${productName}姝e紡鐗坄 }} </div> </div> <div class="bar"> <div class="name">婵�娲伙細</div> <div class="right-zone"> - <el-button - type="primary" - size="small" - @click="confirmAgain" - v-if="serializedNumber != ''" + <el-button type="primary" size="small" @click="confirmAgain" v-if="serializedNumber != ''" >瀵煎嚭浜у搧瀵嗛挜</el-button > <div class="desc activation"> @@ -32,7 +26,7 @@ </div> <div class="bar"> <div class="name" style="min-width: 65px">璇锋眰鐮侊細</div> - <div class="desc code" style="font-size: 12px">{{ q }}</div> + <div class="desc code" style="font-size: 12px">{{ queryCode }}</div> </div> <div class="bar"> <div class="name">浜у搧瀵嗛挜锛�</div> @@ -48,17 +42,9 @@ </div> </div> - <el-dialog - title="鍐嶆纭" - :visible.sync="dialogVisible" - custom-class="my-confirm" - > + <el-dialog title="鍐嶆纭" :visible.sync="dialogVisible" custom-class="my-confirm"> <div class="ver"> - <span - class="iconfont" - style="color: orangered; font-size: 40px; margin-bottom: 10px" - ></span - > + <span class="iconfont" style="color: orangered; font-size: 40px; margin-bottom: 10px"></span> <span class="ver-text"> 浜у搧瀵嗛挜瀵煎嚭鍚庯紝绯荤粺澶ч儴鍒嗗姛鑳藉皢鏃犳硶浣跨敤锛岃纭鏄惁缁х画锛� </span> @@ -71,7 +57,7 @@ <ul> <li style="list-style: inside">濡傜郴缁熷凡婵�娲伙紝鍦ㄦ縺娲婚〉闈㈠鍑哄嵆鍙紱</li> <li style="list-style: inside"> - 濡傝澶囨湭婵�娲伙紝鍦⊿martAI婵�娲婚〉闈㈡壂鐮佽幏鍙� + {{ `"濡傝澶囨湭婵�娲伙紝璇峰湪${product_name}婵�娲婚〉闈㈡壂鐮佽幏鍙�"` }} </li> </ul> <!-- <span style="color: #8f949a; font-size: 14px" @@ -80,11 +66,7 @@ </div> <!-- --> <div class="pw"> - <el-input - size="small" - placeholder="璇疯緭鍏ョ鐞嗗憳瀵嗙爜" - v-model="password" - ></el-input> + <el-input size="small" placeholder="璇疯緭鍏ョ鐞嗗憳瀵嗙爜" v-model="password"></el-input> </div> <div class="validate"> <form id="myForm"> @@ -97,15 +79,8 @@ > </el-input> </form> - <el-button size="small" @click="txtbtn" type="primary" - >瀵煎叆鏂囦欢</el-button - > - <input - type="file" - @change="loadTextFromFile" - id="txt" - style="display: none" - /> + <el-button size="small" @click="txtbtn" type="primary">瀵煎叆鏂囦欢</el-button> + <input type="file" @change="loadTextFromFile" id="txt" style="display: none" /> </div> <span slot="footer" class="dialog-footer"> @@ -119,10 +94,11 @@ </template> <script> -import { getSN, cancelAuthorization } from "@/api/system"; +import { getSN, cancelAuthorization, getVasystemInfo } from "@/api/system" + export default { mounted() { - this.refreshSn(); + this.refreshSn() }, data() { return { @@ -130,76 +106,81 @@ expireTime: "", serializedNumber: "", secrectKey: "", - q: "", + queryCode: "", activeState: "宸叉縺娲�", password: "", dialogVisible: false, - }; + productName: "", + copyright: "" + } }, methods: { refreshSn() { getSN().then((res) => { if (res.code == 200) { - this.authorization = res.data.authorization; - this.expireTime = res.data.expireTime; - this.serializedNumber = res.data.sn; - this.q = res.data.q; + this.authorization = res.data.authorization + this.expireTime = res.data.expireTime + this.serializedNumber = res.data.sn + this.queryCode = res.data.q } - }); + }) + + getVasystemInfo().then((rsp) => { + this.productName = rsp.product_name + this.copyright = rsp.copyright + }) }, confirmAgain() { - this.dialogVisible = true; + this.dialogVisible = true }, txtbtn() { - document.getElementById("txt").click(); + document.getElementById("txt").click() }, loadTextFromFile(e) { - const file = e.target.files[0]; - var reader = new FileReader(); //new涓�涓狥ileReader瀹炰緥 - let that = this; - reader.onload = function () { - that.secrectKey = this.result.trim(); - }; - reader.readAsText(file); + const file = e.target.files[0] + var reader = new FileReader() //new涓�涓狥ileReader瀹炰緥 + let that = this + reader.onload = function() { + that.secrectKey = this.result.trim() + } + reader.readAsText(file) }, confirmCancel() { - this.secrectKey = this.secrectKey.trim(); - this.password = this.password.trim(); + this.secrectKey = this.secrectKey.trim() + this.password = this.password.trim() if (this.secrectKey == "" || this.password == "") { - this.$message.warning("璇峰厛濉啓瀵嗙爜鍜岃姹傜爜"); - return; + this.$message.warning("璇峰厛濉啓瀵嗙爜鍜岃姹傜爜") + return } cancelAuthorization({ q: this.secrectKey, passwd: this.password, - down: 1, + down: 1 }).then((res) => { if (res.type == "application/json") { - var reader = new FileReader(); - reader.readAsText(res, "utf-8"); - let that = this; - reader.onload = function () { - var receive_data = JSON.parse(this.result); //杩欎釜灏辨槸瑙f瀽鍑烘潵鐨勬暟鎹� - that.$notify.error(receive_data.msg); - }; - return; + var reader = new FileReader() + reader.readAsText(res, "utf-8") + let that = this + reader.onload = function() { + var receive_data = JSON.parse(this.result) //杩欎釜灏辨槸瑙f瀽鍑烘潵鐨勬暟鎹� + that.$notify.error(receive_data.msg) + } + return } - let url = window.URL.createObjectURL( - new Blob([res], { type: "text/plain" }) - ); - let a = document.createElement("a"); - a.href = url; - a.download = "key.txt"; - a.click(); - window.URL.revokeObjectURL(url); - this.refreshSn(); - window.parent.postMessage({ msg: "checkSN" }, "*"); - this.$notify.success("瀵煎嚭鎴愬姛"); - this.dialogVisible = false; - }); - }, - }, -}; + let url = window.URL.createObjectURL(new Blob([res], { type: "text/plain" })) + let a = document.createElement("a") + a.href = url + a.download = "key.txt" + a.click() + window.URL.revokeObjectURL(url) + this.refreshSn() + window.parent.postMessage({ msg: "checkSN" }, "*") + this.$notify.success("瀵煎嚭鎴愬姛") + this.dialogVisible = false + }) + } + } +} </script> <style lang="scss"> div { @@ -213,8 +194,8 @@ border-left: 4px solid #f2f2f7; .el-dialog { - width: 640px; border-radius: 24px; - + width: 640px; + border-radius: 24px; } .el-dialog__header { @@ -242,38 +223,38 @@ } .el-dialog__footer { padding: 10px 20px 20px; - .btns { - display: flex; - justify-content: right; - .cancel { - width: 140px; - height: 40px; - cursor: pointer; - border-radius: 20px; - line-height: 40px; - font-size: 14px; - color: var(--colorCard); - border-color: var(--colorCard) !important; + .btns { display: flex; - align-items: center; - justify-content: center; - } - .ok { - width: 140px; - height: 40px; - cursor: pointer; - border-radius: 20px; - background-color: var(--colorCard) !important; - border-color: var(--colorCard) !important; - color: #fff; - line-height: 40px; - font-size: 14px; - display: flex; - align-items: center; - justify-content: center; + justify-content: right; + .cancel { + width: 140px; + height: 40px; + cursor: pointer; + border-radius: 20px; + line-height: 40px; + font-size: 14px; + color: var(--colorCard); + border-color: var(--colorCard) !important; + display: flex; + align-items: center; + justify-content: center; + } + .ok { + width: 140px; + height: 40px; + cursor: pointer; + border-radius: 20px; + background-color: var(--colorCard) !important; + border-color: var(--colorCard) !important; + color: #fff; + line-height: 40px; + font-size: 14px; + display: flex; + align-items: center; + justify-content: center; + } } } -} .el-divider--horizontal { margin: 20px 0; } @@ -282,14 +263,14 @@ align-items: baseline; margin-top: 15px; .el-button--small { - font-size: 14px; - border-radius: 3px; - border-radius: 16px; - background-color: var(--colorCard) !important; - border-color: var(--colorCard) !important; - min-width: 120px; padding: 8px 15px; - - } + font-size: 14px; + border-radius: 3px; + border-radius: 16px; + background-color: var(--colorCard) !important; + border-color: var(--colorCard) !important; + min-width: 120px; + padding: 8px 15px; + } } #myForm { display: flex; @@ -356,11 +337,8 @@ box-sizing: border-box; position: relative; padding: 10px 15px 0 10px; - .el-form-item.is-required:not(.is-no-asterisk) - > .el-form-item__label:before, - .el-form-item.is-required:not(.is-no-asterisk) - .el-form-item__label-wrap - > .el-form-item__label:before { + .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before, + .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap > .el-form-item__label:before { display: none; } .el-select { -- Gitblit v1.8.0