123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- <template>
- <div class="main" v-if="values.length > 0">
- <div>{{ title }}</div>
- <div class="content">
- <div
- class="card"
- v-for="(item, index) in values"
- :key="index"
- :class="
- item.active
- ? 'card-select-' + item.status
- : 'card-unselect-' + item.status
- "
- @click="onSelectHandler(item)"
- >
- <div
- class="card-left"
- :class="
- item.active
- ? 'card-left-select-' + item.status
- : 'card-left-unselect-' + item.status
- "
- >
- <div>{{ item.windturbineId.slice(0, 2) }}</div>
- <div>{{ item.windturbineId.slice(5) }}</div>
- </div>
- <div
- class="card-right"
- :class="
- item.active
- ? 'card-right-select-' + item.status
- : 'card-right-unselect-' + item.status
- "
- >
- <div>{{ item.power.toFixed(2) }} kw</div>
- <div>{{ item.windSpeed.toFixed(2) }} m/s</div>
- <div>{{ item.rollSpeed.toFixed(2) }} rpm</div>
- </div>
- </div>
- </div>
- <div class="bottom"></div>
- </div>
- </template>
- <script>
- export default {
- name: "ControlMatrixCard",
- props: { title: String, datas: Object, operateStyle: Number },
- data() {
- return {
- values: [],
- };
- },
- created() {
- //this.CheckTimer = setInterval(this.checkCard,2000);
- },
- methods: {
- // 点击卡片事件
- onSelectHandler(item) {
- item.active = !item.active;
- },
- /* 获取选中的项目 */
- getSelectedItems() {
- var ls = new Array();
- this.values.forEach((item) => {
- if (item.active) {
- ls.push(item);
- }
- });
- return ls;
- },
- /* 将选中的项目填充到数组中 */
- outputSelectedItems(ls) {
- this.values.forEach((item) => {
- if (item.active) {
- ls.push(item);
- }
- });
- },
- /* 导出所有的项目 */
- outputAllItems(ls) {
- this.values.forEach((item) => {
- ls.push(item);
- });
- },
- /* 清除选中的项目 */
- clearSelected() {
- this.values.forEach((item) => (item.active = false));
- },
- /* checkCard(){
- var st = 2;// 待机
- if(this.operateStyle==2){
- st = 4;
- }else if(this.operateStyle==1){
- st = 2;
- }else{
- return;
- }
- var ll = new Array();
- for(var vvs in this.values){
- if(this.values[vvs].status!=st){
- ll.push(vvs);
- }
- }
- for(var it in ll){
- this.values.splice(it,1);
- }
- }, */
- },
- watch: {
- "$store.getters.windturbinelist": {
- deep: true,
- handler: function (json) {
- this.datas.value.forEach((item) => {
- var data = json[item];
- var active = undefined;
- var status = data.status;
- // 设置当前状态
- for (var i = 0; i < this.values.length; i++) {
- if (this.values[i].windturbineId == item) {
- active = this.values[i].active;
- break;
- }
- }
- var obj = {
- active: active,
- status: status,
- power: data.power,
- windSpeed: data.windSpeed,
- rollSpeed: data.rollSpeed,
- windturbineId: item,
- modelId: data.modelId,
- projectId: data.projectId,
- stationId: data.stationId,
- controlType: this.operateStyle,
- };
- // 替换实时刷新的值
- this.values.splice(i, 1, obj);
- });
- },
- },
- },
- };
- </script>
- <style scoped>
- .content {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- }
- .bottom {
- background-color: #292929;
- width: 100%;
- height: 2px;
- margin-top: 5px;
- }
- .main {
- margin: 0 5px 15px 5px;
- }
- /* 最外层卡片 */
- .card {
- width: 110px;
- height: 49px;
- font-size: 12px;
- margin-top: 5px;
- margin-left: 4px;
- display: flex;
- flex-direction: row;
- cursor: pointer;
- /* border: 2px solid rgb(75, 85, 174); */
- }
- /* 卡片左边部分 */
- .card-left {
- width: 25px;
- margin: 3px;
- font-size: 14px;
- display: flex;
- flex-direction: column;
- justify-content: space-around;
- align-items: center;
- /* background-color: rgb(75, 85, 174); */
- }
- /* 卡片右边部分 */
- .card-right {
- display: flex;
- flex: 1;
- flex-direction: column;
- justify-content: space-around;
- align-items: flex-end;
- padding-right: 3px;
- /* border-left: 2px dashed rgb(75, 85, 174); */
- }
- /* ***********颜色************ */
- /* *********************** */
- /* 最外层卡片选中和未选中 */
- .card-select-0 {
- border: 2px solid rgb(255, 255, 255, 0.5);
- }
- .card-unselect-0 {
- border: 2px solid rgb(255, 255, 255);
- }
- .card-select-0 {
- border: 2px solid rgb(255, 255, 255, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-0 {
- background-color: rgb(255, 255, 255, 0.5);
- }
- .card-left-unselect-0 {
- background-color: rgb(255, 255, 255);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-0 {
- border-left: 2px dashed rgb(255, 255, 255, 0.5);
- }
- .card-right-unselect-0 {
- border-left: 2px dashed rgb(255, 255, 255);
- }
- /* ***********颜色************ */
- /* *********************** */
- /* 最外层卡片选中和未选中 */
- .card-select-1 {
- border: 2px solid rgb(121, 73, 81, 0.5);
- }
- .card-unselect-1 {
- border: 2px solid rgb(121, 73, 81);
- }
- .card-select-1 {
- border: 2px solid rgb(121, 73, 81, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-1 {
- background-color: rgb(121, 73, 81, 0.5);
- }
- .card-left-unselect-1 {
- background-color: rgb(121, 73, 81);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-1 {
- border-left: 2px dashed rgb(121, 73, 81, 0.5);
- }
- .card-right-unselect-1 {
- border-left: 2px dashed rgb(121, 73, 81);
- }
- /* ***********颜色************ */
- /* *********************** */
- /* 最外层卡片选中和未选中 */
- .card-select-2 {
- border: 2px solid rgb(05, 187, 76, 0.5);
- }
- .card-unselect-2 {
- border: 2px solid rgb(05, 187, 76);
- }
- .card-select-2 {
- border: 2px solid rgb(05, 187, 76, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-2 {
- background-color: rgb(05, 187, 76, 0.5);
- }
- .card-left-unselect-2 {
- background-color: rgb(05, 187, 76);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-2 {
- border-left: 2px dashed rgb(05, 187, 76, 0.5);
- }
- .card-right-unselect-2 {
- border-left: 2px dashed rgb(05, 187, 76);
- }
- /* ***********颜色************ */
- /* *********************** */
- /* 最外层卡片选中和未选中 */
- .card-select-3 {
- border: 2px solid rgb(05, 187, 76, 0.5);
- }
- .card-unselect-3 {
- border: 2px solid rgb(05, 187, 76);
- }
- .card-select-3 {
- border: 2px solid rgb(05, 187, 76, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-3 {
- background-color: rgb(05, 187, 76, 0.5);
- }
- .card-left-unselect-3 {
- background-color: rgb(05, 187, 76);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-3 {
- border-left: 2px dashed rgb(05, 187, 76, 0.5);
- }
- .card-right-unselect-3 {
- border-left: 2px dashed rgb(05, 187, 76);
- }
- /* ***********颜色************ */
- /* *********************** */
- /* 最外层卡片选中和未选中 */
- .card-select-4 {
- border: 2px solid rgb(75, 85, 174, 0.5);
- }
- .card-unselect-4 {
- border: 2px solid rgb(75, 85, 174);
- }
- .card-select-4 {
- border: 2px solid rgb(75, 85, 174, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-4 {
- background-color: rgb(75, 85, 174, 0.5);
- }
- .card-left-unselect-4 {
- background-color: rgb(75, 85, 174);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-4 {
- border-left: 2px dashed rgb(75, 85, 174, 0.5);
- }
- .card-right-unselect-4 {
- border-left: 2px dashed rgb(75, 85, 174);
- }
- /* ***********颜色************ */
- /* *********************** *
- /* 最外层卡片选中和未选中 */
- .card-select-5 {
- border: 2px solid rgb(186, 50, 55, 0.5);
- }
- .card-unselect-5 {
- border: 2px solid rgb(186, 50, 55);
- }
- .card-select-5 {
- border: 2px solid rgb(186, 50, 55, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-5 {
- background-color: rgb(186, 50, 55, 0.5);
- }
- .card-left-unselect-5 {
- background-color: rgb(186, 50, 55);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-5 {
- border-left: 2px dashed rgb(186, 50, 55, 0.5);
- }
- .card-right-unselect-5 {
- border-left: 2px dashed rgb(186, 50, 55);
- }
- /* ***********颜色************ */
- /* *********************** *
- /* 最外层卡片选中和未选中 */
- .card-select-6 {
- border: 2px solid rgb(225, 125, 36, 0.5);
- }
- .card-unselect-6 {
- border: 2px solid rgb(225, 125, 36);
- }
- .card-select-6 {
- border: 2px solid rgb(225, 125, 36, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-6 {
- background-color: rgb(225, 125, 36, 0.5);
- }
- .card-left-unselect-6 {
- background-color: rgb(225, 125, 36);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-6 {
- border-left: 2px dashed rgb(225, 125, 36, 0.5);
- }
- .card-right-unselect-6 {
- border-left: 2px dashed rgb(225, 125, 36);
- }
- /* ***********颜色************ */
- /* *********************** *
- /* 最外层卡片选中和未选中 */
- .card-select-7 {
- border: 2px solid rgb(159, 163, 165, 0.5);
- }
- .card-unselect-7 {
- border: 2px solid rgb(159, 163, 165);
- }
- .card-select-7 {
- border: 2px solid rgb(159, 163, 165, 0.5);
- }
- /* 左边卡片选中和未选中 */
- .card-left-select-7 {
- background-color: rgb(159, 163, 165, 0.5);
- }
- .card-left-unselect-7 {
- background-color: rgb(2159, 163, 165);
- }
- /* 右边卡片选中和未选中 */
- .card-right-select-7 {
- border-left: 2px dashed rgb(159, 163, 165, 0.5);
- }
- .card-right-unselect-7 {
- border-left: 2px dashed rgb(159, 163, 165);
- }
- </style>
|