Commit bbecfbba authored by WuFeiyang's avatar WuFeiyang

添加了cardreader

parent 8f2d40e9
...@@ -5056,10 +5056,9 @@ ...@@ -5056,10 +5056,9 @@
"dev": true "dev": true
}, },
"eventemitter3": { "eventemitter3": {
"version": "3.1.2", "version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.2.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-3.1.2.tgz", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
"integrity": "sha1-LT1I+cNGaY/Og6hdfWZOmFNd9uc=", "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg=="
"dev": true
}, },
"events": { "events": {
"version": "3.0.0", "version": "3.0.0",
...@@ -5560,19 +5559,17 @@ ...@@ -5560,19 +5559,17 @@
} }
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.7.0", "version": "1.9.0",
"resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.7.0.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
"integrity": "sha1-SJ68GY3A5/ZBZ70jsDxMGbV4THY=", "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
"dev": true,
"requires": { "requires": {
"debug": "^3.2.6" "debug": "^3.0.0"
}, },
"dependencies": { "dependencies": {
"debug": { "debug": {
"version": "3.2.6", "version": "3.2.6",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": { "requires": {
"ms": "^2.1.1" "ms": "^2.1.1"
} }
...@@ -7365,26 +7362,64 @@ ...@@ -7365,26 +7362,64 @@
"dev": true "dev": true
}, },
"http-proxy": { "http-proxy": {
"version": "1.17.0", "version": "1.18.0",
"resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
"integrity": "sha1-etOElGWPhGBeL220Q230EPTlvpo=", "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
"dev": true,
"requires": { "requires": {
"eventemitter3": "^3.0.0", "eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0", "follow-redirects": "^1.0.0",
"requires-port": "^1.0.0" "requires-port": "^1.0.0"
} }
}, },
"http-proxy-middleware": { "http-proxy-middleware": {
"version": "0.19.1", "version": "0.20.0",
"resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1562701920015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.20.0.tgz",
"integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", "integrity": "sha512-dNJAk71nEJhPiAczQH9hGvE/MT9kEs+zn2Dh+Hi94PGZe1GluQirC7mw5rdREUtWx6qGS1Gu0bZd4qEAg+REgw==",
"dev": true,
"requires": { "requires": {
"http-proxy": "^1.17.0", "http-proxy": "^1.17.0",
"is-glob": "^4.0.0", "is-glob": "^4.0.1",
"lodash": "^4.17.11", "lodash": "^4.17.14",
"micromatch": "^3.1.10" "micromatch": "^4.0.2"
},
"dependencies": {
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"requires": {
"fill-range": "^7.0.1"
}
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"micromatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"requires": {
"braces": "^3.0.1",
"picomatch": "^2.0.5"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
}
} }
}, },
"http-signature": { "http-signature": {
...@@ -7789,8 +7824,7 @@ ...@@ -7789,8 +7824,7 @@
"is-extglob": { "is-extglob": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
"dev": true
}, },
"is-finite": { "is-finite": {
"version": "1.0.2", "version": "1.0.2",
...@@ -7820,7 +7854,6 @@ ...@@ -7820,7 +7854,6 @@
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
"dev": true,
"requires": { "requires": {
"is-extglob": "^2.1.1" "is-extglob": "^2.1.1"
} }
...@@ -8217,8 +8250,7 @@ ...@@ -8217,8 +8250,7 @@
"lodash": { "lodash": {
"version": "4.17.15", "version": "4.17.15",
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz", "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz",
"integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
"dev": true
}, },
"lodash.defaultsdeep": { "lodash.defaultsdeep": {
"version": "4.6.1", "version": "4.6.1",
...@@ -8786,8 +8818,7 @@ ...@@ -8786,8 +8818,7 @@
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
"dev": true
}, },
"multicast-dns": { "multicast-dns": {
"version": "6.2.3", "version": "6.2.3",
...@@ -9640,6 +9671,11 @@ ...@@ -9640,6 +9671,11 @@
"resolved": "https://registry.npm.taobao.org/pick-by-alias/download/pick-by-alias-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/pick-by-alias/download/pick-by-alias-1.2.0.tgz",
"integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=" "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs="
}, },
"picomatch": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz",
"integrity": "sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw=="
},
"pify": { "pify": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
...@@ -11148,8 +11184,7 @@ ...@@ -11148,8 +11184,7 @@
"requires-port": { "requires-port": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
"dev": true
}, },
"reselect": { "reselect": {
"version": "3.0.1", "version": "3.0.1",
...@@ -13690,6 +13725,11 @@ ...@@ -13690,6 +13725,11 @@
"integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
"dev": true "dev": true
}, },
"vue-wechat-title": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/vue-wechat-title/-/vue-wechat-title-2.0.5.tgz",
"integrity": "sha512-bCfKnJpbquqNY5ygNN7nRgNHGhyinWd277ecVh0Z15Tk8nS69catrvQSJIuRxXUOxoO/4Y32c6IfNbQUA8oh0g=="
},
"vuex": { "vuex": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.1.tgz", "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.1.tgz",
...@@ -13926,6 +13966,18 @@ ...@@ -13926,6 +13966,18 @@
"integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=",
"dev": true "dev": true
}, },
"http-proxy-middleware": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
"integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
"dev": true,
"requires": {
"http-proxy": "^1.17.0",
"is-glob": "^4.0.0",
"lodash": "^4.17.11",
"micromatch": "^3.1.10"
}
},
"is-absolute-url": { "is-absolute-url": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.1.tgz", "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.1.tgz",
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>vue</title> <title></title>
</head> </head>
<body> <body>
......
...@@ -85,6 +85,7 @@ import State from "./components/State/State.vue"; ...@@ -85,6 +85,7 @@ import State from "./components/State/State.vue";
import VarBroadcast from "./components/VarBroadcast/VarBroadcast.vue"; import VarBroadcast from "./components/VarBroadcast/VarBroadcast.vue";
import AutoBroadcast from "./components/AutoBroadcast/AutoBroadcast.vue"; import AutoBroadcast from "./components/AutoBroadcast/AutoBroadcast.vue";
import SlideShow from "./components/SlideShow/SlideShow.vue"; import SlideShow from "./components/SlideShow/SlideShow.vue";
import CardReader from "./components/CardReader/CardReader.vue";
// import Gauge from "./components/Gauge/Gauge.vue"; // import Gauge from "./components/Gauge/Gauge.vue";
//this is the view selecotr class //this is the view selecotr class
...@@ -101,7 +102,8 @@ import SlideShow from "./components/SlideShow/SlideShow.vue"; ...@@ -101,7 +102,8 @@ import SlideShow from "./components/SlideShow/SlideShow.vue";
State, State,
VarBroadcast, VarBroadcast,
AutoBroadcast, AutoBroadcast,
SlideShow SlideShow,
CardReader
} }
}) })
export default class App extends Vue { export default class App extends Vue {
...@@ -121,8 +123,10 @@ export default class App extends Vue { ...@@ -121,8 +123,10 @@ export default class App extends Vue {
"State", "State",
"VarBroadcast", "VarBroadcast",
"AutoBroadcast", "AutoBroadcast",
"SlideShow" "SlideShow",
"CardReader"
]; ];
toggleShowAddWidget(): void { toggleShowAddWidget(): void {
this.isShowAddWidget = !this.isShowAddWidget; this.isShowAddWidget = !this.isShowAddWidget;
...@@ -216,7 +220,7 @@ export default class App extends Vue { ...@@ -216,7 +220,7 @@ export default class App extends Vue {
}); });
} }
PubSub.subscribe("VarBroadcast",(messageName, Args)=>{ PubSub.subscribe("VarBroadcast",(messageName:string, Args:any)=>{
//接收到消息调用全部widget的parentUpdate函数 //接收到消息调用全部widget的parentUpdate函数
for (var widget of this.widgetList) { for (var widget of this.widgetList) {
((this.$refs[widget.ref] as Array<Widget>)[0] as Widget).parentUpdate(Args);} ((this.$refs[widget.ref] as Array<Widget>)[0] as Widget).parentUpdate(Args);}
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<b-row> <b-row>
<b-col> <b-col>
<b-input-group size="lg" prepend="BroadcastName" v-show="isShowPath"> <b-input-group size="lg" prepend="BroadcastName" v-show="isShowPath">
<b-form-input v-model="autoUpdateName" ></b-form-input> <b-form-input v-model="config.data.autoUpdateName" ></b-form-input>
</b-input-group> </b-input-group>
</b-col> </b-col>
</b-row> </b-row>
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<b-row> <b-row>
<b-col> <b-col>
<b-input-group size="lg" prepend="BroadcastValue" v-show="isShowPath"> <b-input-group size="lg" prepend="BroadcastValue" v-show="isShowPath">
<b-form-input v-model="autoUpdateValue"></b-form-input> <b-form-input v-model="config.data.autoUpdateValue"></b-form-input>
<b-input-group-append> <b-input-group-append>
<b-button @click="broadcast" text="Button" variant="primary">Broadcast</b-button> <b-button @click="broadcast" text="Button" variant="primary">Broadcast</b-button>
</b-input-group-append> </b-input-group-append>
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
<b-row> <b-row>
<b-col> <b-col>
<b-input-group size="lg" prepend="DelayTime" v-show="isShowPath" append="ms"> <b-input-group size="lg" prepend="DelayTime" v-show="isShowPath" append="ms">
<b-form-input v-model="delayTime" ></b-form-input> <b-form-input v-model="config.data.delayTime" ></b-form-input>
</b-input-group> </b-input-group>
</b-col> </b-col>
</b-row> </b-row>
...@@ -128,16 +128,16 @@ export default class AutoBroadcast extends Widget { ...@@ -128,16 +128,16 @@ export default class AutoBroadcast extends Widget {
timer?: number; timer?: number;
isShowPath: boolean = false; isShowPath: boolean = false;
isShowParams: boolean = false; isShowParams: boolean = false;
autoUpdateName: string = "";
autoUpdateValue: string ="";
delayTime:number = 0;
config: WidgetConfig = { config: WidgetConfig = {
WidgetComponentName: "AutoBroadcast", WidgetComponentName: "AutoBroadcast",
data: { data: {
url: "", url: "",
displayname:"", displayname:"",
userInputData: "" userInputData: "",
autoUpdateName:"",
autoUpdateValue:"",
delayTime:""
} }
}; };
...@@ -264,10 +264,10 @@ export default class AutoBroadcast extends Widget { ...@@ -264,10 +264,10 @@ export default class AutoBroadcast extends Widget {
broadcast() broadcast()
{ {
if(this.autoUpdateName != "" && this.autoUpdateValue != "") if(this.config.data.autoUpdateName != "" && this.config.data.autoUpdateValue != "")
{ {
var autoUpdateData= new Map<string, string>(); var autoUpdateData= new Map<string, string>();
autoUpdateData.set(this.autoUpdateName,this.autoUpdateValue); autoUpdateData.set(this.config.data.autoUpdateName,this.config.data.autoUpdateValue);
var autoUpdate:UpdatePayload = { var autoUpdate:UpdatePayload = {
action: "AutoBroadcast", action: "AutoBroadcast",
variables: autoUpdateData, variables: autoUpdateData,
...@@ -275,7 +275,7 @@ export default class AutoBroadcast extends Widget { ...@@ -275,7 +275,7 @@ export default class AutoBroadcast extends Widget {
} }
PubSub.publish('VarBroadcast',autoUpdate); PubSub.publish('VarBroadcast',autoUpdate);
this.preStatusValue = this.autoUpdateValue; this.preStatusValue = this.config.data.autoUpdateValue;
} }
} }
...@@ -292,10 +292,10 @@ export default class AutoBroadcast extends Widget { ...@@ -292,10 +292,10 @@ export default class AutoBroadcast extends Widget {
); );
await this.getData(this.pathwithVar); await this.getData(this.pathwithVar);
if(this.autoUpdateName != "" && this.preStatusValue != this.StatusValue) if(this.config.data.autoUpdateName != "" && this.preStatusValue != this.StatusValue)
{ {
var autoUpdateData= new Map<string, string>(); var autoUpdateData= new Map<string, string>();
autoUpdateData.set(this.autoUpdateName,this.StatusValue); autoUpdateData.set(this.config.data.autoUpdateName,this.StatusValue);
var autoUpdate:UpdatePayload = { var autoUpdate:UpdatePayload = {
action: "AutoBroadcast", action: "AutoBroadcast",
variables: autoUpdateData, variables: autoUpdateData,
...@@ -303,8 +303,8 @@ export default class AutoBroadcast extends Widget { ...@@ -303,8 +303,8 @@ export default class AutoBroadcast extends Widget {
} }
setTimeout(() => { setTimeout(() => {
PubSub.publish('VarBroadcast',autoUpdate); PubSub.publish('VarBroadcast',autoUpdate);
this.preStatusValue = this.autoUpdateValue; this.preStatusValue = this.config.data.autoUpdateValue;
}, this.delayTime); }, this.config.data.delayTime);
} }
} }
} }
......
<template>
<b-container class="bv-example-row">
<b-row style="margin-top:10px">
<b-col>
<span style="float:left;" v-show = "!isShowPath" class="largeFont" v-if = "config.data.displayname != ''">{{ config.data.displayname }}</span>
<span style="float:left;" v-show = "!isShowPath" class="largeFont" v-if = "config.data.displayname == ''">{{ config.data.url }}</span>
<b-form-input v-show="isShowPath" v-model="config.data.displayname"></b-form-input>
</b-col>
<b-col>
<b-button @click="showPathConfig" variant="primary" style="float:right">
<span class="glyphicon glyphicon-cog"></span>
</b-button>
</b-col>
</b-row>
<br />
<b-row v-for="(info,index) in StatusValue" :key="index">
<b-col>
<div style="width:100%;overflow:auto;border-style: solid; border-width: 1px;">
<p style="float:left;margin:0px" class="largeFont">{{ info }}</p>
</div>
</b-col>
</b-row>
<br />
<b-row>
<b-col>
<b-input-group size="lg" prepend="path" v-show="isShowPath">
<b-form-input v-model="config.data.url"></b-form-input>
<b-input-group-append>
<b-button @click="updateUI" text="Button" variant="primary">OK</b-button>
<b-button variant="info" @click="pathPoke">poke</b-button>
</b-input-group-append>
</b-input-group>
</b-col>
</b-row>
<b-row>
<b-col>
<WidgetParams
ref="WidgetParams"
v-show="isShowParams"
action="get"
@updataVariables="viewLoad"
></WidgetParams>
</b-col>
</b-row>
<br />
<b-row>
<b-col>
<Navigation ref="FamilyLink" :url="config.data.url"></Navigation>
</b-col>
</b-row>
</b-container>
</template>
<script lang="ts">
import Vue from "vue";
import { VueSvgGauge } from "vue-svg-gauge";
import Component from "vue-class-component";
import { Prop, Watch } from "vue-property-decorator";
import { WidgetConfig } from "@/models/WidgetConfig";
import { UpdatePayload } from "@/models/UpdatePayload";
import { Widget } from "@/models/widget";
import { ResourceInfo } from "@/models/Customview";
import WidgetParams from "@/components/Common/WidgetParams.vue";
import axios from "axios";
import PathProcessor from "@/models/PathProcessor";
import StrMapObjChange from "@/models/StrMapObjChange";
import { forEach } from "typescript-collections/dist/lib/arrays";
import { map } from "d3";
import Navigation from "@/components/Common/Navigation.vue";
@Component({
components: {
WidgetParams,
Navigation
}
})
export default class CardReader extends Widget {
pathProcessor = new PathProcessor();
strMapObjChange = new StrMapObjChange();
WidgetComponentName: string = "CardReader";
StatusValue: string[] =[];
pathId: string = "";
userInputData = new Map<string, string>();
pathwithVar: string = "";
timer?: number;
isShowPath: boolean = false;
isShowParams: boolean = false;
config: WidgetConfig = {
WidgetComponentName: "CardReader",
data: {
url: "",
displayname:"",
userInputData: ""
}
};
created() {
this.config.data.userInputData = this.strMapObjChange.strMapToObj(
this.userInputData
);
}
mounted() {
this.timer = setInterval(this.refresh, 1000);
}
destroyed() {
clearInterval(this.timer);
}
updateUI() {
this.isShowPath = false;
this.isShowParams = true;
var url = this.config.data.url;
this.pathId = url.slice(0, url.indexOf("/"));
(this.$refs.WidgetParams as WidgetParams).setVariableList(
this.pathProcessor.extractVarFromPath(url)
);
}
showPathConfig() {
this.isShowPath = !this.isShowPath;
}
getConfig(): WidgetConfig {
// this.config.data.userInputData =(this.$refs.WidgetParams as WidgetParams).getVariableValues();
this.config.data.userInputData = this.strMapObjChange.strMapToObj(
(this.$refs.WidgetParams as WidgetParams).getVariableValues()
);
return this.config;
}
setConfig(widgetConfig: WidgetConfig): void {
this.config = widgetConfig;
this.updateUI();
//map不能序列化,必须要单独处理,这里的处理方法仅限map<string,string>类型
var temp = this.config.data.userInputData;
temp = JSON.parse(JSON.stringify(temp));
temp = this.strMapObjChange.objToStrMap(temp);
this.userInputData = temp;
(this.$refs.WidgetParams as WidgetParams).setVariableInput(
this.userInputData
);
}
samplePoke(sample: any) {
var samplePath = sample.CFET2CORE_SAMPLE_PATH;
var pokedPath: string;
pokedPath = samplePath;
var count: number = 0;
var temp = sample.Actions.get.Parameters;
temp = JSON.parse(JSON.stringify(temp));
temp = this.strMapObjChange.objToStrMap(temp);
var Parameters: Map<string, string>;
Parameters = temp;
Parameters.forEach((value, key) => {
count++;
if (count == 1) {
pokedPath = pokedPath + "?";
}
pokedPath = pokedPath + key + "=$" + key + "$&";
});
if (count != 0) {
pokedPath = pokedPath.substring(0, pokedPath.length - 1);
}
this.config.data.url = pokedPath;
}
pathPoke() {
var pokepath = this.config.data.url;
axios.get(pokepath, {
headers: {
'Pragma': 'no-cache',
'Cache-Control': 'no-cache'
}
}).then(response => {
this.samplePoke(response.data);
this.updateUI();
});
}
replaceStartPath(startPath: string): void {
this.config.data.url.replace("$startPath$", startPath);
}
parentUpdate(payload: UpdatePayload): void {
var shouldUpdate:boolean = false
this.userInputData = this.strMapObjChange.strMapToObj(
(this.$refs.WidgetParams as WidgetParams).getVariableValues());
var temp = this.userInputData;
temp = this.strMapObjChange.objToStrMap(temp);
this.userInputData = temp;
this.userInputData.forEach((value , key) =>{
payload.variables.forEach((valueofpayload,keyofpayload)=>{
if(key == keyofpayload && ((this.userInputData.get(key) as string) != (payload.variables.get(keyofpayload) as string)))
{
this.userInputData.set(key,payload.variables.get(keyofpayload) as string);
shouldUpdate = true;
}
});
});
if(shouldUpdate)
{
(this.$refs.WidgetParams as WidgetParams).setVariableInput(this.userInputData);
this.updateUI();
}
}
refresh() {
var Args: UpdatePayload = {
action: "get",
variables: (this.$refs.WidgetParams as WidgetParams).getVariableValues(),
target: ["self"]
};
this.viewLoad(Args);
}
async getData(url: string) {
var apiLoad = url;
await axios
.get(apiLoad, {
headers: {
Pragma: "no-cache",
"Cache-Control": "no-cache"
}
})
.then(response => {
this.StatusValue = response.data.CFET2CORE_SAMPLE_VAL;
if(this.StatusValue == undefined)
{
this.StatusValue = ["undefined"];
}
});
}
//called when widgetParams action clicked
async viewLoad(Args: UpdatePayload) {
// this.config.data.userInputData = Args.variables;
this.userInputData = Args.variables;
this.pathwithVar = this.pathProcessor.FillPathWithVar(
// this.config.data.userInputData,
this.userInputData,
this.config.data.url
);
await this.getData(this.pathwithVar);
}
}
</script>
<style scoped>
.waveView {
width: 100%;
height: auto;
}
</style>
\ No newline at end of file
...@@ -4,10 +4,32 @@ import '@/assets/css/fontSize.css'; ...@@ -4,10 +4,32 @@ import '@/assets/css/fontSize.css';
import 'bootstrap/dist/css/bootstrap.css' import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css' import 'bootstrap-vue/dist/bootstrap-vue.css'
import BootstrapVue from 'bootstrap-vue' import BootstrapVue from 'bootstrap-vue'
import VueRouter from 'vue-router'
Vue.config.productionTip = false; Vue.config.productionTip = false;
Vue.use(BootstrapVue) Vue.use(BootstrapVue)
// Vue.use(VueRouter);
// const routes = [
// { path: '/', meta: {
// title: 'MdsplusWave'
// }
// }
// ];
// const router = new VueRouter({
// routes
// });
// router.beforeEach((to, from, next) => {
// document.title = 'MdsplusWave'
// next()
// })
new Vue({ new Vue({
render: (h) => h(App), render: (h) => h(App),
// router
}).$mount('#app'); }).$mount('#app');
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment