2019-07-26 13:32:43 +08:00
|
|
|
|
<template>
|
2021-04-21 17:55:41 +08:00
|
|
|
|
<div v-loading="loading" class="demonstrateDetail">
|
2019-10-31 17:30:24 +08:00
|
|
|
|
<div class="card-title">
|
2020-12-04 09:31:45 +08:00
|
|
|
|
{{ $t('demonstration.simulationName') + courseModel.name }}
|
2019-10-17 14:35:10 +08:00
|
|
|
|
</div>
|
2019-10-31 17:30:24 +08:00
|
|
|
|
<div class="simulation-detail">
|
2019-10-17 14:35:10 +08:00
|
|
|
|
<p class="list-item">
|
|
|
|
|
<span class="list-label">{{ $t('demonstration.productDescription') }}</span>
|
|
|
|
|
<span class="list-elem">{{ courseModel.remarks }}</span>
|
|
|
|
|
</p>
|
|
|
|
|
<p class="list-item">
|
|
|
|
|
<span class="list-label">{{ $t('global.permissionList') }}</span>
|
|
|
|
|
</p>
|
2020-11-25 15:08:18 +08:00
|
|
|
|
<limit-list ref="limit" :course-model="courseModel" @initLoadPage="refresh" />
|
2019-10-17 14:35:10 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="btn-buy">
|
2020-12-01 18:47:47 +08:00
|
|
|
|
<!-- <el-button v-if="!isLocal" type="success" :disabled="disabled" @click="buy">{{ $t('global.buy') }}</el-button> -->
|
2020-03-31 15:11:20 +08:00
|
|
|
|
<el-button v-if="hasPermssion && !isComprehensive && !isLocal" type="primary" :disabled="disabled" @click="distribute">{{ $t('global.distributePermission') }}</el-button>
|
2021-01-12 14:13:56 +08:00
|
|
|
|
<el-button :disabled="disabled" type="primary" @click="start">{{ $t('demonstration.startSimulation') }}</el-button>
|
2019-10-17 14:35:10 +08:00
|
|
|
|
</div>
|
2019-10-31 17:30:24 +08:00
|
|
|
|
</div>
|
2019-07-26 13:32:43 +08:00
|
|
|
|
</template>
|
2019-10-31 17:30:24 +08:00
|
|
|
|
|
2019-07-26 13:32:43 +08:00
|
|
|
|
<script>
|
2020-03-13 18:19:04 +08:00
|
|
|
|
import { getPublishMapInfo } from '@/api/jmap/map';
|
2019-08-14 14:01:28 +08:00
|
|
|
|
import { getGoodsTryUse } from '@/api/management/goods';
|
2020-03-30 13:07:11 +08:00
|
|
|
|
import { PermissionType, UrlConfig } from '@/scripts/ConstDic';
|
2019-08-14 14:01:28 +08:00
|
|
|
|
import { launchFullscreen } from '@/utils/screen';
|
2020-10-28 10:08:18 +08:00
|
|
|
|
import { createSimulationNew } from '@/api/simulation';
|
2021-04-23 09:01:12 +08:00
|
|
|
|
import { createSimulation } from '@/api/rtSimulation';
|
2019-08-14 14:01:28 +08:00
|
|
|
|
import LimitList from '@/views/components/limits/index';
|
2019-10-18 17:15:04 +08:00
|
|
|
|
import { getSubSystemDetail } from '@/api/trainingPlatform';
|
2020-01-14 16:19:36 +08:00
|
|
|
|
import { getSessionStorage } from '@/utils/auth';
|
2020-05-12 10:13:27 +08:00
|
|
|
|
import localStore from 'storejs';
|
2019-07-26 13:32:43 +08:00
|
|
|
|
|
2019-08-14 14:01:28 +08:00
|
|
|
|
export default {
|
2020-12-03 16:36:21 +08:00
|
|
|
|
name: 'SimulationDetailList',
|
2019-10-31 17:30:24 +08:00
|
|
|
|
components: {
|
|
|
|
|
LimitList
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
tryTime: 0,
|
|
|
|
|
goodsId: '',
|
|
|
|
|
tryUser: 0,
|
2021-04-23 09:01:12 +08:00
|
|
|
|
newApi: false,
|
2020-11-27 17:37:13 +08:00
|
|
|
|
loading: false,
|
2019-11-25 18:21:56 +08:00
|
|
|
|
disabled: false,
|
2019-12-27 19:36:29 +08:00
|
|
|
|
currentPrdType: '',
|
2019-10-31 17:30:24 +08:00
|
|
|
|
courseModel: {
|
|
|
|
|
id: '',
|
|
|
|
|
name: '',
|
|
|
|
|
mapId: '',
|
2019-11-11 18:28:21 +08:00
|
|
|
|
lineCode: '',
|
2019-10-31 17:30:24 +08:00
|
|
|
|
remarks: '',
|
|
|
|
|
prdType: '',
|
|
|
|
|
pmsList: []
|
|
|
|
|
},
|
2019-12-26 11:01:54 +08:00
|
|
|
|
lineCode:'',
|
2020-09-09 10:28:56 +08:00
|
|
|
|
loadingProjectList: ['login', 'design', 'xty', 'designxty', 'gzb', 'designxty', 'xadt', 'designxadt', 'drts', 'designdrts']
|
2019-10-31 17:30:24 +08:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
hasPermssion() {
|
|
|
|
|
let isShow = false;
|
|
|
|
|
if (this.courseModel.pmsList && this.courseModel.pmsList.length) {
|
2019-12-30 18:14:52 +08:00
|
|
|
|
let count = 0;
|
|
|
|
|
this.courseModel.pmsList.forEach(element => {
|
|
|
|
|
count += element.remains;
|
|
|
|
|
});
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
isShow = true;
|
|
|
|
|
}
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
2021-01-13 09:51:59 +08:00
|
|
|
|
return this.$store.state.user.companyId || isShow;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
2020-03-31 15:11:20 +08:00
|
|
|
|
isLocal() { // 是否为本地项目
|
|
|
|
|
return process.env.VUE_APP_PRO === 'local';
|
|
|
|
|
},
|
2019-12-18 11:16:35 +08:00
|
|
|
|
isComprehensive() {
|
|
|
|
|
return this.courseModel.prdType === '03';
|
|
|
|
|
},
|
2019-10-31 17:30:24 +08:00
|
|
|
|
mapId() {
|
|
|
|
|
return this.$route.query.mapId;
|
2020-07-03 10:37:33 +08:00
|
|
|
|
},
|
|
|
|
|
project() {
|
|
|
|
|
return getSessionStorage('project');
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
2020-07-01 18:52:29 +08:00
|
|
|
|
'$route': function (val, oldval) {
|
2019-10-31 17:30:24 +08:00
|
|
|
|
this.loadInitData();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
async mounted() {
|
|
|
|
|
this.loadInitData();
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
async loadInitData() {
|
|
|
|
|
this.loading = true;
|
|
|
|
|
try {
|
2020-06-03 13:31:09 +08:00
|
|
|
|
let res;
|
|
|
|
|
try {
|
|
|
|
|
res = await getPublishMapInfo(this.mapId);
|
|
|
|
|
} catch (error) {
|
2020-11-25 15:08:18 +08:00
|
|
|
|
if (error.code == 30001 || error.code == 10007) {
|
2020-07-03 10:37:33 +08:00
|
|
|
|
const url = localStore.get('orignalTrainingPlatformRoute' + this.$store.state.user.id + this.project);
|
2020-06-03 13:31:09 +08:00
|
|
|
|
localStore.remove();
|
|
|
|
|
if (url) {
|
|
|
|
|
this.$router.push(url);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-10-31 17:30:24 +08:00
|
|
|
|
const resp = await getSubSystemDetail(this.$route.params.subSystem);
|
|
|
|
|
this.tryUser = 0;
|
|
|
|
|
this.loading = false;
|
2020-07-10 18:41:29 +08:00
|
|
|
|
const remarksList = {
|
|
|
|
|
'01':'ATS现地工作站原理级仿真系统,实现车站值班员培训功能。',
|
|
|
|
|
'02':'ATS行调工作站原理级仿真系统,实现行车调度员培训功能。',
|
|
|
|
|
'03':'各岗位应急综合演练',
|
|
|
|
|
'04':'桌面版模拟驾驶系统,实现列车驾驶员培训功能。',
|
|
|
|
|
'05':'派班工作站主要是供车辆段/停车场派班员进行派班操作,可以自动生成派班计划,极大的简化了派班计划管理的复杂性。',
|
|
|
|
|
'06': '综合监控工作站原理级仿真系统,实现电调、环调及车站值班员培训功能。',
|
|
|
|
|
'07':'大屏仿真系统,可显示全线全站场实时状况,便于教学及观摩使用。'
|
|
|
|
|
};
|
2019-12-27 19:36:29 +08:00
|
|
|
|
this.courseModel = {
|
|
|
|
|
id: resp.data.id,
|
|
|
|
|
name: resp.data.name,
|
|
|
|
|
mapId: this.mapId,
|
|
|
|
|
lineCode: res.data.lineCode,
|
|
|
|
|
remarks: remarksList[resp.data.prdType],
|
|
|
|
|
prdType: resp.data.prdType,
|
|
|
|
|
pmsList: resp.data.permissionList || [],
|
|
|
|
|
PermissionType: PermissionType.SIMULATION
|
|
|
|
|
};
|
2021-04-23 09:01:12 +08:00
|
|
|
|
this.newApi = resp.data.newApi;
|
2019-12-27 19:36:29 +08:00
|
|
|
|
this.currentPrdType = resp.data.prdType;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
if (!this.courseModel.pmsList) {
|
|
|
|
|
this.tryUser = 1;
|
|
|
|
|
const paras = {
|
|
|
|
|
mapId: this.mapId,
|
2019-12-27 18:48:56 +08:00
|
|
|
|
prdType: this.courseModel.prdType,
|
2019-10-31 17:30:24 +08:00
|
|
|
|
permissionType: PermissionType.SIMULATION
|
|
|
|
|
};
|
2019-07-26 13:32:43 +08:00
|
|
|
|
|
2019-10-31 17:30:24 +08:00
|
|
|
|
try {
|
|
|
|
|
const resr = await getGoodsTryUse(paras);
|
|
|
|
|
if (resr.data.tryTime <= 0) {
|
|
|
|
|
this.tryTime = 0;
|
|
|
|
|
} else {
|
|
|
|
|
this.tryTime = resr.data.tryTime;
|
|
|
|
|
this.goodsId = resr.data.goodsId;
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
this.tryTime = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2020-06-03 13:31:09 +08:00
|
|
|
|
// this.loading = false;
|
2020-06-30 14:27:32 +08:00
|
|
|
|
this.$message.error(this.$t('error.refreshFailed'));
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2019-12-30 18:14:52 +08:00
|
|
|
|
refresh() {
|
|
|
|
|
this.loadInitData();
|
|
|
|
|
},
|
2020-06-30 14:27:32 +08:00
|
|
|
|
async enterIntegratedSimulation() {
|
2021-03-31 18:27:29 +08:00
|
|
|
|
this.disabled = true;
|
2020-06-30 14:27:32 +08:00
|
|
|
|
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType };
|
|
|
|
|
createSimulationNew(data).then(resp => {
|
2020-10-26 11:07:49 +08:00
|
|
|
|
const query = { lineCode: this.courseModel.lineCode, group: resp.data, mapId: this.courseModel.mapId};
|
2020-09-09 10:28:56 +08:00
|
|
|
|
if (this.loadingProjectList.includes(this.project)) {
|
|
|
|
|
this.$store.dispatch('app/transitionAnimations');
|
|
|
|
|
}
|
2020-06-30 14:27:32 +08:00
|
|
|
|
this.$router.push({ path: `/jointTrainingNew`, query: query });
|
|
|
|
|
launchFullscreen();
|
|
|
|
|
}).catch(error => {
|
2021-01-12 15:40:05 +08:00
|
|
|
|
if (error.code == 10003) {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
|
|
|
|
}
|
2019-11-25 18:21:56 +08:00
|
|
|
|
this.disabled = false;
|
2020-06-30 14:27:32 +08:00
|
|
|
|
});
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
2020-03-13 13:23:04 +08:00
|
|
|
|
async enterISCS() {
|
|
|
|
|
try {
|
|
|
|
|
this.disabled = true;
|
2020-09-17 15:19:00 +08:00
|
|
|
|
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType, lineCode: this.courseModel.lineCode };
|
2020-03-13 13:23:04 +08:00
|
|
|
|
let res = {};
|
2020-10-26 11:07:49 +08:00
|
|
|
|
res = await createSimulationNew(data);
|
2020-03-13 13:23:04 +08:00
|
|
|
|
if (res && res.code == 200) {
|
2020-12-28 11:20:36 +08:00
|
|
|
|
const query = { group: res.data, lineCode:this.courseModel.lineCode, mapId: this.courseModel.mapId };
|
2020-03-13 13:23:04 +08:00
|
|
|
|
this.$router.push({ path: `/displayIscs/system`, query: query });
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2021-01-12 15:40:05 +08:00
|
|
|
|
if (error.code == 10003) {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
|
|
|
|
}
|
2020-11-27 17:37:13 +08:00
|
|
|
|
this.disabled = false;
|
2020-03-13 13:23:04 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2020-05-09 20:13:32 +08:00
|
|
|
|
async enterScreen() {
|
2020-05-11 17:40:52 +08:00
|
|
|
|
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType };
|
|
|
|
|
createSimulationNew(data).then(resp => {
|
2020-05-11 18:15:49 +08:00
|
|
|
|
const query = { lineCode: this.courseModel.lineCode, group: resp.data, prdType: this.courseModel.prdType, mapId: this.courseModel.mapId, goodsId: this.goodsId, try: this.tryUser };
|
2020-09-09 10:28:56 +08:00
|
|
|
|
if (this.loadingProjectList.includes(this.project)) {
|
|
|
|
|
this.$store.dispatch('app/transitionAnimations');
|
|
|
|
|
}
|
2020-05-11 18:15:49 +08:00
|
|
|
|
this.$router.push({ path: `/displayBigScreen/${this.courseModel.mapId}`, query: query });
|
2020-05-11 17:40:52 +08:00
|
|
|
|
}).catch(error => {
|
2021-01-12 15:40:05 +08:00
|
|
|
|
if (error.code == 10003) {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
|
|
|
|
}
|
2020-05-11 17:40:52 +08:00
|
|
|
|
this.disabled = false;
|
|
|
|
|
});
|
2020-05-09 20:13:32 +08:00
|
|
|
|
},
|
2019-10-31 17:30:24 +08:00
|
|
|
|
async start() {
|
2020-11-25 15:08:18 +08:00
|
|
|
|
const jumpFunc = ['jump', 'jump', 'enterIntegratedSimulation', 'jump', 'jumpScheduling', 'enterISCS', 'enterScreen'];
|
|
|
|
|
this[jumpFunc[parseInt(this.courseModel.prdType) - 1]]();
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
2020-11-25 15:08:18 +08:00
|
|
|
|
jumpSimulation() {
|
2019-11-25 18:21:56 +08:00
|
|
|
|
this.disabled = true;
|
2020-11-25 15:08:18 +08:00
|
|
|
|
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType };
|
2021-04-23 09:01:12 +08:00
|
|
|
|
if (this.newApi) {
|
|
|
|
|
createSimulation(data).then(resp => {
|
|
|
|
|
const query = { lineCode: this.courseModel.lineCode, group: resp.data, prdType: this.courseModel.prdType, mapId: this.courseModel.mapId, goodsId: this.goodsId, try: this.tryUser, project: this.project, newApi: this.newApi };
|
|
|
|
|
this.$store.dispatch('training/setPrdType', this.currentPrdType); // 改变prdType
|
|
|
|
|
if (this.loadingProjectList.includes(this.project)) {
|
|
|
|
|
this.$store.dispatch('app/transitionAnimations');
|
|
|
|
|
}
|
|
|
|
|
this.$router.push({ path: `/displayCity/demon`, query: query });
|
|
|
|
|
launchFullscreen();
|
|
|
|
|
}).catch(error=>{
|
|
|
|
|
if (error.code == 10003) {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
|
|
|
|
}
|
|
|
|
|
this.disabled = false;
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
createSimulationNew(data).then(resp => {
|
|
|
|
|
const query = { lineCode: this.courseModel.lineCode, group: resp.data, prdType: this.courseModel.prdType, mapId: this.courseModel.mapId, goodsId: this.goodsId, try: this.tryUser, project: this.project, newApi: this.newApi };
|
|
|
|
|
this.$store.dispatch('training/setPrdType', this.currentPrdType); // 改变prdType
|
|
|
|
|
if (this.loadingProjectList.includes(this.project)) {
|
|
|
|
|
this.$store.dispatch('app/transitionAnimations');
|
|
|
|
|
}
|
2021-05-19 15:14:49 +08:00
|
|
|
|
if (this.currentPrdType === '02' && this.courseModel.lineCode === '14') {
|
|
|
|
|
this.$router.push({ path: `/displayBaSiDi/demon`, query: query });
|
|
|
|
|
} else {
|
|
|
|
|
this.$router.push({ path: `${UrlConfig.displayNew}/demon`, query: query });
|
|
|
|
|
}
|
2021-04-23 09:01:12 +08:00
|
|
|
|
launchFullscreen();
|
|
|
|
|
}).catch(error=>{
|
|
|
|
|
if (error.code == 10003) {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
|
|
|
|
}
|
|
|
|
|
this.disabled = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-25 15:08:18 +08:00
|
|
|
|
},
|
|
|
|
|
jumpScheduling() {
|
|
|
|
|
this.jumpSimulation();
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
|
|
|
|
jump() {
|
2020-11-25 15:08:18 +08:00
|
|
|
|
this.jumpSimulation();
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
|
|
|
|
buy() {
|
2019-12-05 18:12:09 +08:00
|
|
|
|
// this.disabled = true;
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
// this.$router.push({
|
|
|
|
|
// path: `${UrlConfig.trainingPlatform.pay}/${this.courseModel.id}`,
|
2019-12-27 19:36:29 +08:00
|
|
|
|
// query: { permissionType: PermissionType.SIMULATION, prdType: this.courseModel.prdType, mapId: this.courseModel.mapId, subSystem: this.$route.params.subSystem }
|
2019-12-05 18:12:09 +08:00
|
|
|
|
// });
|
|
|
|
|
// }, 100);
|
|
|
|
|
this.$messageBox(this.$t('global.buyingTips'));
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
|
|
|
|
distribute() {
|
2019-11-25 18:21:56 +08:00
|
|
|
|
this.disabled = true;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
if (this.$refs) {
|
|
|
|
|
this.$refs[`limit`].distribute(this.courseModel);
|
|
|
|
|
}
|
2019-11-25 18:21:56 +08:00
|
|
|
|
this.disabled = false;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2019-08-14 14:01:28 +08:00
|
|
|
|
};
|
2019-07-26 13:32:43 +08:00
|
|
|
|
</script>
|
2019-10-31 17:30:24 +08:00
|
|
|
|
|
|
|
|
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
2021-04-21 17:55:41 +08:00
|
|
|
|
.demonstrateDetail{
|
2019-10-31 17:30:24 +08:00
|
|
|
|
height: 100%;
|
2021-04-21 17:55:41 +08:00
|
|
|
|
border: 1px solid #EBEEF5;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
overflow: hidden;
|
2020-12-03 16:36:21 +08:00
|
|
|
|
display:flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
.card-title{
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 47px;
|
|
|
|
|
line-height: 47px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
border-bottom: 1px solid #d6d6d6;
|
2020-12-04 09:31:45 +08:00
|
|
|
|
font-weight: bold;
|
2019-07-26 13:32:43 +08:00
|
|
|
|
}
|
2019-09-24 11:05:10 +08:00
|
|
|
|
.simulation-detail {
|
2019-10-31 17:30:24 +08:00
|
|
|
|
padding: 50px;
|
|
|
|
|
padding-bottom: 0;
|
|
|
|
|
overflow: auto;
|
2020-12-03 16:36:21 +08:00
|
|
|
|
flex: 1;
|
2019-07-26 13:32:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.list-item {
|
2019-10-17 16:23:14 +08:00
|
|
|
|
font-size: 14px;
|
2019-07-26 13:32:43 +08:00
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
padding: 0px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.list-label {
|
|
|
|
|
display: -moz-inline-box;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
text-align: left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.list-elem {
|
|
|
|
|
color: #808080 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-buy {
|
|
|
|
|
text-align: center;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
padding: 10px 0;
|
2020-12-03 16:36:21 +08:00
|
|
|
|
flex-shrink: 0;
|
2019-07-26 13:32:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-tabs--border-card>.el-tabs__header .el-tabs__item {
|
|
|
|
|
font-weight: bold !important;
|
|
|
|
|
}
|
2019-08-09 15:52:55 +08:00
|
|
|
|
</style>
|