Vue.component("http-cache-config-box", { props: ["v-cache-config", "v-is-location", "v-is-group", "v-cache-policy", "v-web-id"], data: function () { let cacheConfig = this.vCacheConfig if (cacheConfig == null) { cacheConfig = { isPrior: false, isOn: false, addStatusHeader: true, addAgeHeader: false, enableCacheControlMaxAge: false, cacheRefs: [], purgeIsOn: false, purgeKey: "", disablePolicyRefs: false } } if (cacheConfig.cacheRefs == null) { cacheConfig.cacheRefs = [] } return { cacheConfig: cacheConfig, moreOptionsVisible: false, enablePolicyRefs: !cacheConfig.disablePolicyRefs } }, watch: { enablePolicyRefs: function (v) { this.cacheConfig.disablePolicyRefs = !v } }, methods: { isOn: function () { return ((!this.vIsLocation && !this.vIsGroup) || this.cacheConfig.isPrior) && this.cacheConfig.isOn }, isPlus: function () { return Tea.Vue.teaIsPlus }, generatePurgeKey: function () { let r = Math.random().toString() + Math.random().toString() let s = r.replace(/0\./g, "") .replace(/\./g, "") let result = "" for (let i = 0; i < s.length; i++) { result += String.fromCharCode(parseInt(s.substring(i, i + 1)) + ((Math.random() < 0.5) ? "a" : "A").charCodeAt(0)) } this.cacheConfig.purgeKey = result }, showMoreOptions: function () { this.moreOptionsVisible = !this.moreOptionsVisible }, changeStale: function (stale) { this.cacheConfig.stale = stale } }, template: `
| 全局缓存策略 | 
				 {{vCachePolicy.name}}  
				当前集群没有设置缓存策略,当前配置无法生效。
			使用当前服务所在集群的设置。  | 
		
| 启用缓存 | 
					 | 
			
| 收起选项更多选项 | |
| 使用默认缓存条件 | 	
					 选中后使用系统全局缓存策略中已经定义的默认缓存条件。  | 
			
| 添加X-Cache Header | 
					 选中后自动在响应Header中增加  | 
			
| 添加Age Header | 
					 选中后自动在响应Header中增加  | 
			
| 支持源站控制有效时间 | 
					 选中后表示支持源站在Header中设置的  | 
			
| 允许PURGE | 
					 允许使用PURGE方法清除某个URL缓存。  | 
			
| PURGE Key * | 
					
					 [随机生成]。需要在PURGE方法调用时加入  |