From 7f2e50af63ca447961d9ceb7fb0e6b2cd879aa8a Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期三, 02 八月 2023 18:24:16 +0800
Subject: [PATCH] 1、在关键属性校验增加模板id条件
---
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue | 373 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 310 insertions(+), 63 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
index 864b72c..64471d3 100644
--- a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
+++ b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -1,6 +1,25 @@
<template>
<basic-container>
<avue-crud v-model="form" :option="option" :data="data" ref="crud" @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page">
+ <template slot="menu" slot-scope="{ row, index }">
+ <el-button
+ type="text"
+ size="small"
+ icon="el-icon-edit"
+ @click="handleEdit(row, index)"
+ >
+ 缂栬緫
+ </el-button>
+ <el-button
+ type="text"
+ size="small"
+ icon="el-icon-delete"
+ @click="handleDel(row, index)"
+ >
+ 鍒犻櫎
+ </el-button>
+ </template>
+
<template slot="icon" slot-scope="scope">
<i :class="scope.row.icon" style="font-size:24px"></i>
</template>
@@ -14,7 +33,8 @@
// getOnesearch,
getadd,
getupdata,
- getremove
+ getremove,
+ combination
} from "@/api/system/passwords";
export default {
name: "passwords.vue",
@@ -23,6 +43,14 @@
let validatePass=""
//鏈�澶ч暱搴︽鍒欑粦瀹氬��
let validatePass1=""
+ //杩囨湡鏃堕棿姝e垯缁戝畾鍊�
+ let validatePass2=""
+ //鎻愰啋鏃堕棿姝e垯缁戝畾鍊�
+ let validatePass3=""
+ //閿佸畾娆℃暟姝e垯缁戝畾鍊�
+ let validatePass4=""
+ //閿佸畾鏃堕棿姝e垯缁戝畾鍊�
+ let validatePass5=""
//鏈�灏忛暱搴︾粦瀹歷alue
let values=""
//鏈�澶ч暱搴︾粦瀹歷alue
@@ -30,21 +58,65 @@
//鏈�灏忛暱搴︽鍒欐柟娉�
validatePass = (rule, value,callback) => {
values=value*1
- if(value === ""){
+ if(value == ""){
callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
- }else if(values >= values1*1){
- callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'));
+ // }else if(values >= values1*1){
+ // callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ }else {
+ callback();
}
};
//鏈�澶ч暱搴︽鍒欐柟娉�
validatePass1= (rule, value,callback) =>{
values1=value*1
- if(value === ""){
+ if(value == ""){
callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
}else if(values1 <= values){
callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ }else {
+ callback();
}
- }
+ };
+ validatePass2 = (rule, value,callback) => {
+ if(value == ""){
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ }else {
+ callback();
+ }
+ };
+ validatePass3 = (rule, value,callback) => {
+ if(value == ""){
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ }else {
+ callback();
+ }
+ };
+ validatePass4 = (rule, value,callback) => {
+ if(value == ""){
+ callback(new Error('璇疯緭鍏ラ攣瀹氭鏁�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('閿佸畾娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ }else {
+ callback();
+ }
+ };
+ validatePass5 = (rule, value,callback) => {
+ if(value == ""){
+ callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
+ }else if(/[^\d]/g.test(value)){
+ callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ }else {
+ callback();
+ }
+ };
return {
form:{},
page: {
@@ -59,12 +131,15 @@
border: true,
index: true,
rowKey:'id',
+ editBtn:false,
+ delBtn:false,
column: [
{
label: '绛栫暐鍚嶇О',
prop: 'strategyName',
align: 'left',
span:24,
+ labelWidth: "11%",
rules: [{
required: true,
message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
@@ -74,68 +149,61 @@
{
label: '瀵嗙爜鏈�灏忛暱搴�',
prop: 'minPwdLen',
- labelWidth:118,
span:12,
+ labelWidth:"22%",
rules: [{
required: true,
validator:validatePass,
- trigger: "blur"
-
+ trigger: 'blur'
}]
},
{
label: '瀵嗙爜鏈�澶ч暱搴�',
prop: 'maxPwdLen',
- labelWidth:118,
span:12,
+ labelWidth:"25%",
rules: [{
required: true,
validator:validatePass1,
- trigger: "blur"
+ trigger: 'change'
}]
},
{
label: '缁勫悎鏂规硶',
prop: 'combinationNames',
labelWidth: 91,
- display:false
+ display:false,
+
},
{
//鍐欎袱涓粍鍚堟柟娉曟槸鍥犱负id鍜宯ame涓嶈兘鍚屾椂缁戝畾杩欎釜prop鏉ユ覆鏌擄紝涓�涓〃鏍煎仛闅愯棌鏉ユ暟鎹搷浣滐紙琛ㄥ崟闅愯棌锛夛紝鍙︿竴涓〃鏍煎仛鏄剧ず鍙樉绀哄湪椤甸潰锛堣〃鍗曢殣钘忥級銆�
label: '缁勫悎鏂规硶',
prop: 'combinationIds',
type: "checkbox",
- labelWidth:91,
+ span:12,
+ labelWidth:"22%",
+ id:5,
hide:true,
+ change:this.handleCheckboxChange,
rules: [{
required: true,
message: "璇烽�夋嫨缁勫悎鏂规硶",
trigger: "blur"
}],
- dicData: [
- {
- label: "鏁板瓧",
- value: '1638024706425188354'
- },
- {
- label: "绗﹀彿",
- value: '1638097837516926977'
- },
- {
- label: "灏忓啓瀛楁瘝",
- value: '1638097772983365634'
- },
- {
- label: "澶у啓瀛楁瘝",
- value: '1638097733707902977'
- },
- ],
+ dicUrl: '/api/ubcs-system/combination/select',
+ dicMethod: 'get',
+ props: {
+ value: "ID",
+ label: "NAME",
+ },
},
{
label: '蹇呭~绉嶇被',
prop: 'requiredType',
type: 'select',
- labelWidth: 91,
+ span:12,
+ labelWidth:"25%",
+ change:this.handleSelectChange,
rules: [{
required: true,
message: "璇烽�夋嫨蹇呭~绉嶇被",
@@ -143,19 +211,23 @@
}],
dicData:[{
label:'1绉�',
- value:0
- },
+ value:1,
+ disabled:false
+ },
{
label:'2绉�',
- value:1
+ value:2,
+ disabled:false
},
{
label:'3绉�',
- value:2
+ value:3,
+ disabled:false
},
{
label:'4绉�',
- value:3
+ value:4,
+ disabled:false
}
]
@@ -163,53 +235,54 @@
{
label: '杩囨湡鏃堕棿(澶�)',
prop:'expirationTime',
- labelWidth:115,
+ span:12,
+ labelWidth:"22%",
rules: [{
required: true,
- message: "璇疯緭鍏ヨ繃鏈熸椂闂�",
- trigger: "blur"
+ validator:validatePass2,
+ trigger: 'blur'
}]
},
{
label: '鎻愰啋鏃堕棿(澶�)',
prop:'reminderTime',
- labelWidth:113,
+ span:12,
+ labelWidth:"25%",
rules: [{
required: true,
- message: "璇疯緭鍏ユ彁閱掓椂闂�",
- trigger: "blur"
+ validator:validatePass3,
+ trigger: 'blur'
}]
},
{
label: '閿佸畾娆℃暟(娆�)',
prop:'lockingNum',
- labelWidth:116,
+ span:12,
+ labelWidth:"22%",
rules: [{
required: true,
- message: "璇疯緭鍏ラ攣瀹氭鏁�",
- trigger: "blur"
+ validator:validatePass4,
+ trigger: 'blur'
}]
},
{
label: '閿佸畾鏃堕棿(鍒嗛挓)',
prop:'lockingTime',
- labelWidth:128,
+ span:12,
+ labelWidth:"25%",
rules: [{
required: true,
- message: "璇疯緭鍏ラ攣瀹氭椂闂�",
- trigger: "blur"
+ validator:validatePass5,
+ trigger: 'blur'
}]
},
{
label: '鎻忚堪',
prop:'desc',
type: 'textarea',
+ span:12,
+ labelWidth:"22%",
rows: 5,
- rules: [{
- required: true,
- message: "璇风畝鎷弿杩�",
- trigger: "blur"
- }]
},
{
label: '鏄惁涓洪粯璁ょ瓥鐣�',
@@ -225,18 +298,166 @@
}]
}
],
- }
+ },
+ //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨
+ checkboxlength:"",
+ //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺
+ selectlength:"",
+ //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲�
+ checkboxlist:"",
+ //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺
+ checkboxNumber:"",
+ selectNumber:"",
+ //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧�
+ checkboxedit:"",
+ // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈�
+ editFlag:false
+ // 鑷充簬涓轰粈涔堟病鍦ㄧ敤鎴烽�夋嫨蹇呭~绉嶇被澶т簬缁勫悎鏂瑰紡鐨勬椂鍊欙紝缁欎笅鎷夎彍鍗曢�変腑鐨勬暟鎹竻绌轰簡锛岃繖鏍锋瘮缁欎簣寮圭獥鎻愰啋鏇村悎鐞�
+ // 鍘熷洜鏄壘浜嗗ソ涔呮病鎵惧埌avue妗嗘灦杩欎釜閫変腑鐨勫睘鎬ф樉绀哄湪椤甸潰鎬庝箞淇敼锛岀洿鎺ヤ慨鏀逛笅鎷夎彍鍗曟暟鎹殑value娌℃晥鏋滐紝鎵句笉鍒版槸浠�涔堟帶鍒惰繖椤甸潰鏄剧ず鐨勯�変腑鏁版嵁
+ // 鎴戝皾璇曞湪dicdata澶栭潰瀹氫箟value淇敼涓嬫媺鑿滃崟鏄剧ず鐨勯粯璁ゅ�间篃涓嶈锛岀劧鍚庡啀灏濊瘯璋冪敤avue鐨刢lose娓呴櫎鏂规硶锛屼絾鏄篃鏄彧鑳藉疄鐜板湪涓嬫媺鑿滃崟鍚庨潰鏄剧ず涓�涓猉鍙�
+ // 褰撶敤鎴锋墜鍔ㄧ偣鍑绘竻闄わ紝鎵嶅彲浠ユ妸鏁版嵁娓呴櫎锛屾�昏�岃█涔嬫壘浜嗗ソ涔咃紝娌℃壘鍒拌繖涓竻闄ゆ柟娉曪紝avue鐨勮鏄庢枃妗d篃娌℃槑纭爣鏄庤繖涓姛鑳界殑鍐呯疆鎿嶄綔鏂规硶
+ // 鎴戞兂鍒扮殑搴旇鍙互鐨勬柟娉曟槸锛岃垗寮僶ption閲岄潰鐨勭粍鍚堟柟寮忥紝鑷繁鎵嬪姩鍦ㄩ〉闈㈡坊鍔犳彃妲藉畾涔夌粍鍚堟柟寮忥紝鑷充簬鏄娇鐢╝vue杩樻槸element-ui鏉ュ啓锛岃繕瑕佺湅鍏蜂綋鐨勬楠�
+ // 鍥犱负涓�鏀瑰姩锛屾垜鐜板湪鍐欑殑閫昏緫姣斿涓嬫媺鑿滃崟绂佺敤鍜岀瓥鐣ラ獙璇佺瓑绛夎閲嶆柊姊崇悊锛屾垜杩欒竟鎬ョ潃璧跺璞″缓妯$殑杩涘害锛屾墍浠ュ厛鐢ㄨ繖绉嶆柟寮忔潵澶勭悊锛屽鏋滄垜鍥炲ご鏈夋椂闂存垜鍐嶆潵缁х画鏀癸紝灏辨病鏈夎繖鏉℃敞閲婁簡銆�
}
},
created() {
this.onLoad()
-
+ combination().then(res=>{
+ console.log("111",res)
+ })
},
mount() {
-
},
methods:{
+ handleSelectChange(val){
+ this.selectlength=val
+ // if(val.value >= this.checkboxlength.value.length && this.checkboxlength.value.length > 0){
+ // console.log("澶т簬")
+ // }
+ },
+ handleCheckboxChange(val){
+ const arr=this.option.column[5];
+ this.checkboxlength=val.value;
+ //娣诲姞鐨勬椂鍊檆heckboxlength鏄竴涓暟缁勶紝鍒颁簡缂栬緫浠栧氨鏄竴涓瓧绗︿覆锛屽鏋滄垜鎴戠洿鎺ヨ浆鎹负鏁扮粍锛屽洜涓烘湰鏉ュ氨鏄暟缁勬墍浠ョ偣鍑绘坊鍔犵殑鏃跺�欎細鎶ラ敊
+ //濡傛灉鎴戝彉鎴愬瓧绗︿覆鍚庡啀杞暟缁�,娣诲姞涓嶄細鎶ラ敊浜�,浣嗘槸缂栬緫鐨勬椂鍊欏氨鍙堜細鎶ラ敊浜�,鏈潵灏辨槸瀛楃涓插張璧颁簡涓�閬峵ostring
+ this.checkboxedit=this.checkboxlength.toString().split(",")
+ if(val.value != undefined && val.value != null){
+ if(this.checkboxlist == val.value){
+ // 鍒ゆ柇鐩哥瓑鍒欎笉鎿嶄綔锛屼笉绛夊垯閲嶆柊鎵ц銆傚姞杩欏眰鍒ゆ柇鏄洜涓篶hange浜嬩欢瑙﹀彂涓ゆ锛屼細鍑虹幇涓や釜娑堟伅鎻愮ず妗�
+ // 瀹氫箟checkboxlist鍙橀噺,瀛樺偍鐨勬敼鍙樼殑鍊�,濡傛灉鍊兼敼鍙樺拰鍙橀噺鐩哥瓑鍒欎笉闇�瑕佷换浣曟搷浣�
+ }else {
+ this.checkboxlist=val.value
+ if( this.selectlength.value >= val.value.length && val.value.length > 0 ){
+ this.$message({
+ message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+ type: 'warning',
+ showClose: true,
+ });
+ }else if(this.selectlength.value >= this.checkboxedit.length && this.checkboxedit.length > 0 ){
+ this.$message({
+ message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+ type: 'warning',
+ showClose: true,
+ });
+ }
+ }
+ // if(this.checkboxeditlist == val.value){
+ // // tong
+ // }else {
+ // this.checkboxeditlist=val.value
+ // if(this.selectlength.value >= this.checkboxedit.length && this.checkboxedit.length > 0){
+ // this.$message({
+ // message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+ // type: 'warning',
+ // showClose: true,
+ // });
+ // }
+ // }
+ // if(this.selectlength.value >= this.checkboxedit.length && this.checkboxedit.length > 0){
+ // this.$message({
+ // message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+ // type: 'warning',
+ // showClose: true,
+ // });
+ // }
+ }
+ // 杩欓噷涓�鐩存姤length鐨勯敊璇�
+ // arr.forEach((item,index)=>{
+ // console.log(item,index)
+ // if(val.value != undefined && val.value != null && val.value.length==0){
+ // item.disabled=false
+ // }
+ // if(val.value != undefined && val.value != null && val.value.length>=1){
+ //
+ // }
+ // })
+ // if(val.value != undefined && val.value != null && val.value.length >= 0){
+ // arr.dicData[val.value.length-1].disabled=true
+ // }
+ // }else if(val.value != undefined && val.value != null && val.value.length ==0){
+ // arr.dicData.disabled=false
+ // }
+ if(val.value != undefined && val.value != null && val.value.length == 1){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=true
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }else if(val.value != undefined && val.value != null && val.value.length ==2){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }else if(val.value != undefined && val.value != null && val.value.length ==3){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=false
+ arr.dicData[3].disabled=true
+ }else if(val.value != undefined && val.value != null && val.value.length==4){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=false
+ arr.dicData[3].disabled=false
+ }else if(val.value != undefined && val.value != null && val.value.length==0 ){
+ arr.dicData[0].disabled=true
+ arr.dicData[1].disabled=true
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }else if(this.checkboxNumber.length!=0){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=false
+ arr.dicData[3].disabled=false
+ }
+ if(this.editFlag == true){
+ if(this.checkboxedit.length == 1){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=true
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }else if(this.checkboxedit.length == 2){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }else if(this.checkboxedit.length ==3){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=false
+ arr.dicData[3].disabled=true
+ }else if(this.checkboxedit ==4){
+ arr.dicData[0].disabled=false
+ arr.dicData[1].disabled=false
+ arr.dicData[2].disabled=false
+ arr.dicData[3].disabled=false
+ }else if(this.checkboxedit.length ==0){
+ arr.dicData[0].disabled=true
+ arr.dicData[1].disabled=true
+ arr.dicData[2].disabled=true
+ arr.dicData[3].disabled=true
+ }
+ }
+ },
rowDel(row){
this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
confirmButtonText: "纭畾",
@@ -252,13 +473,15 @@
message: "鎿嶄綔鎴愬姛!"
});
this.onLoad();
- });
+ }).catch(res=>{
+ console.log(res)
+ })
},
rowSave(row,done){
//灏嗗瘑鐮佺粍鍚堟柟寮忕殑鏁版嵁杞崲涓哄瓧绗︿覆
const spliceId= row.combinationIds.toString()
row.combinationIds=spliceId
- getadd(row).then(()=>{
+ getadd(row).then((res)=>{
// this.onLoad(this.page);
this.$message({
type: "success",
@@ -267,9 +490,30 @@
done(row)
this.onLoad()
}).catch((res)=>{
- console.log(res)
+ this.$message.warning(res)
})
},
+ rowEdit(row){
+ console.log("鎵撳紑缂栬緫edit",row)
+ },
+ handleDel(row){
+ this.$refs.crud.rowDel(row,row.$index);
+ },
+ handleEdit(row){
+ this.$refs.crud.rowEdit(row,row.$index);
+ this.editFlag=true;
+ // const arr=this.option.column[5];
+ this.checkboxNumber=row.combinationIds.split(",")
+ this.selectNumber=row.requiredType
+ console.log(this.checkboxNumber, this.selectNumber)
+ // 鎵撳紑缂栬緫棣栧厛鍒ゆ柇锛岀粍鍚堟柟娉曟槸鍚﹀皬浜庡繀濉绫伙紝濡傛灉灏忎簬缁欎簣鎻愰啋淇敼
+ if(this.checkboxNumber.length<=this.selectNumber){
+ this.$message({
+ type:"warning",
+ message:"蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�"
+ })
+ }
+ },
rowUpdate(row,index,done){
getupdata(row).then(()=>{
this.onLoad()
@@ -278,6 +522,8 @@
message: "淇敼鎴愬姛!"
});
done()
+ }).catch(res=>{
+ console.log(res)
})
},
onLoad(page, params = {}) {
@@ -288,7 +534,9 @@
// this.data = data.records;
// this.loading = false;
// this.selectionClear();
- this.data=res.data.data.content
+ console.log(res)
+ this.page.total=res.data.data.total
+ this.data=res.data.data.records
});
}
}
@@ -296,6 +544,5 @@
}
</script>
-<style scoped>
-
+<style lang="scss" scoped>
</style>
--
Gitblit v1.10.0