165 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
|   <section class="AppLicence">
 | ||
|     <ai-list>
 | ||
|       <ai-title slot="title" title="产品许可" isShowBottomBorder  :instance="instance"></ai-title>
 | ||
|       <template #content>
 | ||
|         <div class="licence-content">
 | ||
|           <img class="left-img" src="https://cdn.cunwuyun.cn/dvcp/key.png" alt="" />
 | ||
|           <div class="content-right">
 | ||
|             <h3 class="title">产品许可信息</h3>
 | ||
|             <p class="mini-title">您当前的版本为Saas专业版,非常感谢您对我们产品的认可与支持!</p>
 | ||
|             <div class="info">
 | ||
|               <span class="label">过期时间</span>
 | ||
|               <span class="value color-f46" v-if="info.isExpired == 1">{{info.expireDate ? info.expireDate+'(已过期)' : '未激活'}}</span>
 | ||
|               <span class="value color-26f" v-else>{{info.expireDate}}</span>
 | ||
|             </div>
 | ||
|             <div class="info">
 | ||
|               <span class="label">主板序列号</span>
 | ||
|               <span class="value">{{info.mainBoard}}</span>
 | ||
|             </div>
 | ||
|             <div class="info">
 | ||
|               <span class="label">CPU</span>
 | ||
|               <span class="value">{{info.cpu}}</span>
 | ||
|             </div>
 | ||
|             <div class="info">
 | ||
|               <span class="label">MAC地址</span>
 | ||
|               <span class="value">{{info.mac}}</span>
 | ||
|             </div>
 | ||
|             <div class="info mar-b32">
 | ||
|               <span class="label">IP地址</span>
 | ||
|               <span class="value">{{info.ip}}</span>
 | ||
|             </div>
 | ||
|             <el-upload
 | ||
|               class="upload-demo"
 | ||
|               action
 | ||
|               multiple
 | ||
|               accept=".lic"
 | ||
|               :http-request="uploadFile">
 | ||
|               <div class="btn">上传许可</div>
 | ||
|             </el-upload>
 | ||
|           </div>
 | ||
|         </div>
 | ||
|       </template>
 | ||
|     </ai-list>
 | ||
|   </section>
 | ||
| </template>
 | ||
| <script>
 | ||
| 
 | ||
| export default {
 | ||
|   name: "AppLicence",
 | ||
|   label: "产品许可",
 | ||
|   props: {
 | ||
|     instance: Function,
 | ||
|     dict: Object,
 | ||
|     permissions: Function
 | ||
|   },
 | ||
|   data() {
 | ||
|     return {
 | ||
|       files: [],
 | ||
|       info: {}
 | ||
|     }
 | ||
|   },
 | ||
|   mounted() {
 | ||
|     this.getDetail()
 | ||
|   },
 | ||
|   methods: {
 | ||
|     getDetail() {
 | ||
|       this.instance.post(`/admin/license/detail`).then(res => {
 | ||
|         if (res?.data) {
 | ||
|           this.info = res.data
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
|     uploadFile: function (file) {
 | ||
|       let formData = new FormData();
 | ||
|       formData.append("file", file.file);
 | ||
|       this.instance.post(`/admin/license/save`, formData, {withoutToken: false}).then(res => {
 | ||
|         if (res && res.code == 0) {
 | ||
|           this.$message.success("证书上传成功!");
 | ||
|           this.getDetail()
 | ||
|         }
 | ||
|       });
 | ||
|     },
 | ||
|   },
 | ||
| 
 | ||
| };
 | ||
| </script>
 | ||
| <style lang="scss" scoped>
 | ||
| .AppLicence {
 | ||
|   width: 100%;
 | ||
|   height: 100%;
 | ||
|   :deep( .ai-list){
 | ||
|     background-color: #F5F6F9;
 | ||
|   }
 | ||
|   :deep( .ai-list .ai-list__content--right .ai-list__content--right-wrapper){
 | ||
|     background-color: #F5F6F9;
 | ||
|     box-shadow: 0 0 0 0;
 | ||
|     margin: 0!important;
 | ||
|     padding: 0!important;
 | ||
|   }
 | ||
|   :deep( .el-upload-list){
 | ||
|     display: none;
 | ||
|   }
 | ||
|   .licence-content{
 | ||
|     display: flex;
 | ||
|     margin-top: 30px;
 | ||
|     .left-img{
 | ||
|       width: 200px;
 | ||
|       height: 200px;
 | ||
|     }
 | ||
|     .content-right{
 | ||
|       width: 800px;
 | ||
|       .title{
 | ||
|         font-size: 24px;
 | ||
|         font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
 | ||
|         font-weight: bold;
 | ||
|         color: #222;
 | ||
|         line-height: 24px;
 | ||
|         margin-bottom: 8px;
 | ||
|       }
 | ||
|       .mini-title{
 | ||
|         font-size: 14px;
 | ||
|         font-family: MicrosoftYaHei;
 | ||
|         color: #555;
 | ||
|         line-height: 22px;
 | ||
|         margin-bottom: 20px;
 | ||
|       }
 | ||
|       .info{
 | ||
|         font-size: 14px;
 | ||
|         font-family: MicrosoftYaHei;
 | ||
|         line-height: 22px;
 | ||
|         margin-bottom: 8px;
 | ||
|         display: flex;
 | ||
|         color: #222;
 | ||
|         .label{
 | ||
|           width: 164px;
 | ||
|         }
 | ||
|         .value{
 | ||
|           width: calc(100% - 164px);
 | ||
|         }
 | ||
|         .color-26f{
 | ||
|           color: #26f;
 | ||
|         }
 | ||
|         .color-f46{
 | ||
|           color: #f46;
 | ||
|         }
 | ||
|       }
 | ||
|       .mar-b32{
 | ||
|         margin-bottom: 32px;
 | ||
|       }
 | ||
|       .btn{
 | ||
|         width: 88px;
 | ||
|         height: 32px;
 | ||
|         line-height: 32px;
 | ||
|         text-align: center;
 | ||
|         background: linear-gradient(90deg, #299FFF 0%, #0C61FF 100%);
 | ||
|         border-radius: 2px;
 | ||
|         cursor: pointer;
 | ||
|         color: #fff;
 | ||
|         font-size: 14px;
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| }
 | ||
| </style>
 |