From f6ebd1820968db8521bed86d25b183efe7eb877b Mon Sep 17 00:00:00 2001
From: lxl <lixuliang_hd@126.com>
Date: 星期四, 27 十月 2022 16:01:40 +0800
Subject: [PATCH] 权限

---
 src/views/datamanage/styleManage.vue |  480 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 381 insertions(+), 99 deletions(-)

diff --git a/src/views/datamanage/styleManage.vue b/src/views/datamanage/styleManage.vue
index 88c3eab..1ed9d6e 100644
--- a/src/views/datamanage/styleManage.vue
+++ b/src/views/datamanage/styleManage.vue
@@ -30,14 +30,14 @@
             size="small"
             >{{ $t('common.empty') }}</el-button
           >
-          <el-button
+          <el-button  v-if="btnStatus.insert"
             @click="InsertFormdialog = true"
             icon="el-icon-edit"
             type="success"
             size="small"
             >{{ $t('common.append') }}</el-button
           >
-          <el-button
+          <el-button  v-if="btnStatus.delete"
             @click="delStyleData"
             icon="el-icon-delete"
             type="danger"
@@ -106,7 +106,7 @@
               prop="descr"
               :label="$t('dataManage.styleObj.descr')"
             />
-            <el-table-column
+            <!-- <el-table-column
               align="center"
               prop="fileGuid"
               :label="$t('dataManage.styleObj.fileguid')"
@@ -137,13 +137,13 @@
               prop="updateTime"
               :label="$t('dataManage.styleObj.updateTime')"
               :formatter="formatTime"
-            />
+            /> -->
             <el-table-column
               align="center"
               prop="bak"
               :label="$t('dataManage.styleObj.bak')"
             />
-            <el-table-column min-width="150" :label="$t('common.operate')">
+            <el-table-column min-width="120" :label="$t('common.operate')">
               <template slot-scope="scope">
                 <el-button
                   @click="showDetail(scope.$index, scope.row)"
@@ -228,12 +228,14 @@
           <el-divider></el-divider>
           <p>
             <label> {{ $t('dataManage.styleObj.fileguid') }}:</label>
-            <label class="boxlabel">{{ itemdetail.fileguid }}</label>
+            <label class="boxlabel">{{ itemdetail.fileGuid }}</label>
           </p>
           <el-divider></el-divider>
           <p>
             <label> {{ $t('dataManage.styleObj.viewguid') }}:</label>
-            <label class="boxlabel">{{ itemdetail.viewguid }}</label>
+            <label class="boxlabel">  <div style="width:440px;height:200px;">
+                <img style="width:100%; height:100%" :src="itemdetail.imageFile" alt=""/>
+              </div></label>
           </p>
           <el-divider></el-divider>
           <p>
@@ -266,7 +268,7 @@
     </div>
     <el-dialog
       title="淇敼璇︽儏"
-      top="5vh"
+      top="2vh"
       style="overflow: hidden"
       :before-close="removeUpdate"
       :visible.sync="dialogFormVisible"
@@ -360,13 +362,56 @@
           :label="$t('dataManage.styleObj.fileguid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="upform.fileGuid" autocomplete="off"></el-input>
+          <el-input v-model="upform.fileGuid" disabled autocomplete="off"></el-input>
+           <input
+            name="file1"
+            type="file"
+            id="editFile"
+            multiple="multiple"
+            style="display: none"
+            @change="editFile(0)"
+          />
+           <el-link 
+            :underline="false"
+            @click="geteditFile(0)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link v-if="btnStatus.upload"
+           :title="$t('common.upload')"
+            :underline="false"
+            @click="seteditFile(0)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
+          ></el-link>
         </el-form-item>
         <el-form-item
           :label="$t('dataManage.styleObj.viewguid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="upform.viewGuid" autocomplete="off"></el-input>
+          <el-input v-model="upform.viewGuid" disabled autocomplete="off"></el-input>
+           <input
+            name="file1"
+            :accept="'.jpg,.png'"
+            type="file"
+            id="editimageFile"
+            multiple="multiple"
+            style="display: none"
+            @change="editFile(1)"
+          />
+           <el-link 
+            :underline="false"
+            @click="geteditFile(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link
+           :title="$t('common.upload')"
+            :underline="false"
+             @click="seteditFile(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
+          ></el-link>
         </el-form-item>
         <el-form-item
           :label="$t('dataManage.styleObj.bak')"
@@ -376,8 +421,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="removeUpdate">鍙� 娑�</el-button>
-        <el-button type="primary" @click="updateForm">纭� 瀹�</el-button>
+        <el-button @click="removeUpdate">{{$t('common.close')}}</el-button>
+        <el-button type="primary" @click="updateForm">{{$t('common.confirm')}}</el-button>
       </div>
     </el-dialog>
     <el-dialog
@@ -443,7 +488,7 @@
         >
           <el-select
             v-model="insertform.status"
-            style="width: 745px"
+            style="width: 730px"
             :placeholder="$t('common.choose')"
           >
             <el-option
@@ -469,19 +514,63 @@
           :label="$t('dataManage.styleObj.descr')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="insertform.descr" autocomplete="off"></el-input>
+          <el-input v-model="insertform.descr"  autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item
           :label="$t('dataManage.styleObj.fileguid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="insertform.fileGuid" autocomplete="off"></el-input>
+          <el-input v-model="insertform.fileGuid" disabled autocomplete="off" />
+           <input
+            name="file1"
+
+            type="file"
+            id="insertFile"
+            multiple="multiple"
+            style="display: none"
+            @change="insertFile(0)"
+          />
+           <el-link
+            :underline="false"
+            @click="getInsertFile(0)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link
+           :title="$t('common.upload')"
+            :underline="false"
+  @click="setinsertFile(0)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
+          ></el-link>
         </el-form-item>
         <el-form-item
           :label="$t('dataManage.styleObj.viewguid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="insertform.viewGuid" autocomplete="off"></el-input>
+          <el-input v-model="insertform.viewGuid" disabled autocomplete="off"/>
+           <input
+            name="file1"
+            :accept="'.jpg,.png'"
+            type="file"
+            id="insertimageFile"
+            multiple="multiple"
+            style="display: none"
+            @change="insertFile(1)"
+          />
+           <el-link
+            :underline="false"
+            @click="getInsertFile(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link
+           :title="$t('common.upload')"
+            :underline="false"
+             @click="setinsertFile(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
+          ></el-link>
         </el-form-item>
         <el-form-item
           :label="$t('dataManage.styleObj.bak')"
@@ -491,8 +580,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="insertFromDataClose">鍙� 娑�</el-button>
-        <el-button type="primary" @click="insertFromData">纭� 瀹�</el-button>
+        <el-button @click="insertFromDataClose">{{$t('common.close')}}</el-button>
+        <el-button type="primary" @click="insertFromData">{{$t('common.confirm')}}</el-button>
       </div>
     </el-dialog>
     <div class="leftTree" v-if="showDirCata">
@@ -525,19 +614,21 @@
 </template>
 
 <script>
-import $ from 'jquery';
-import moment from 'moment';
-import MyBread from '../../components/MyBread.vue';
-import styleDirTree from './styleDirTree.vue';
-import styleDepTree from './styleDepTree.vue';
+import $ from "jquery";
+import moment from "moment";
+import { getToken } from "../../utils/auth.js";
+import MyBread from "../../components/MyBread.vue";
+import styleDirTree from "./styleDirTree.vue";
+import styleDepTree from "./styleDepTree.vue";
 import {
   select_Style_ByPageAndCount,
   insertStyle,
   deleteStyles,
-  updateStyle
-} from '../../api/api';
+  updateStyle,
+  upload_style,
+} from "../../api/api";
 export default {
-  name: 'styleManage',
+  name: "styleManage",
   components: { MyBread, styleDirTree, styleDepTree },
   data() {
     return {
@@ -545,38 +636,184 @@
       InsertFormdialog: false,
       showCata: false,
       upform: {},
-      formLabelWidth: '130px',
+      formLabelWidth: "130px",
       showinfoBox: false,
       itemdetail: {},
-      ruleForm: {
-        name: '',
-      },
+      ruleForm: {},
 
       backupData: [],
 
-      searchName: '',
+      searchName: "",
       multipleSelection: [],
       upflag: false,
       /** */
       showDirCata: false,
       showDepCata: false,
       tableData: [],
-      insertform: {},
+      insertform: {
+        fileGuid: null,
+        viewGuid: null,
+      },
       dirFlag: null,
       depFlag: null,
+      guidFile: null,
+      viewFile: null,
       count: 0,
       listData: {
         name: null,
-        depName: null,
         pageIndex: 1,
         pageSize: 10,
+      },
+      btnStatus: {
+        select: false,
+        delete: false,
+        upload: false,
+        download: false,
+        insert: false,
+        update: false,
       },
     };
   },
   created() {
     this.getRoleTabelData();
+    this.showPermsBtn();
   },
   methods: {
+    showPermsBtn() {
+      let currentPerms = this.$store.state.currentPerms;
+      let permsEntity = this.$store.state.permsEntity;
+      permsEntity
+        .filter((item) => item.perms == currentPerms)
+        .map((item) => (this.btnStatus[item.tag.substr(1)] = true));
+    },
+    filesReset() {
+      document.getElementById("insertFile").reset();
+      document.getElementById("insertimageFile").reset();
+      this.guidFile = null;
+      this.fileGuid = null;
+    },
+    getInsertFile(res) {
+      if (res == 0) {
+        $("#insertFile").click();
+      } else if (res == 1) {
+        $("#insertimageFile").click();
+      }
+    },
+    insertFile(res) {
+      if (res == 0) {
+        var val = document.getElementById("insertFile").files;
+        if (!val || !val.length) return;
+        this.insertform.fileGuid = val[0].name;
+      } else if (res == 1) {
+        var val = document.getElementById("insertimageFile").files;
+        if (!val || !val.length) return;
+        this.insertform.viewGuid = val[0].name;
+      }
+    },
+    async setinsertFile(res) {
+      if (res == 0) {
+        var fs = document.getElementById("insertFile");
+        if (fs.files.length == 0) {
+          return;
+        }
+        var formData = new FormData();
+        formData.append("file", fs.files[0]);
+        var val_data = await upload_style(formData);
+        if (val_data.code == 200) {
+          this.guidFile = val_data.result;
+          this.$message({
+            message: "涓婁紶鎴愬姛锛�",
+            type: "success",
+          });
+        } else {
+          this.$message({
+            message: "涓婁紶澶辫触锛�",
+            type: "warning",
+          });
+        }
+      } else if (res == 1) {
+        var fs = document.getElementById("insertimageFile");
+        if (fs.files.length == 0) {
+          return;
+        }
+        var formData = new FormData();
+        formData.append("file", fs.files[0]);
+        var val_data = await upload_style(formData);
+        if (val_data.code == 200) {
+          this.viewFile = val_data.result;
+          this.$message({
+            message: "涓婁紶鎴愬姛锛�",
+            type: "success",
+          });
+        } else {
+          this.$message({
+            message: "涓婁紶澶辫触锛�",
+            type: "warning",
+          });
+        }
+      }
+    },
+    geteditFile(res) {
+      if (res == 0) {
+        $("#editFile").click();
+      } else if (res == 1) {
+        $("#editimageFile").click();
+      }
+    },
+    editFile(res) {
+      if (res == 0) {
+        var val = document.getElementById("editFile").files;
+        if (!val || !val.length) return;
+        this.upform.fileGuid = val[0].name;
+      } else if (res == 1) {
+        var val = document.getElementById("editimageFile").files;
+        if (!val || !val.length) return;
+        this.upform.viewGuid = val[0].name;
+      }
+    },
+    async seteditFile(res) {
+      if (res == 0) {
+        var fs = document.getElementById("editFile");
+        if (fs.files.length == 0) {
+          return;
+        }
+        var formData = new FormData();
+        formData.append("file", fs.files[0]);
+        var val_data = await upload_style(formData);
+        if (val_data.code == 200) {
+          this.guidFile = val_data.result;
+          this.$message({
+            message: "涓婁紶鎴愬姛锛�",
+            type: "success",
+          });
+        } else {
+          this.$message({
+            message: "涓婁紶澶辫触锛�",
+            type: "warning",
+          });
+        }
+      } else if (res == 1) {
+        var fs = document.getElementById("editimageFile");
+        if (fs.files.length == 0) {
+          return;
+        }
+        var formData = new FormData();
+        formData.append("file", fs.files[0]);
+        var val_data = await upload_style(formData);
+        if (val_data.code == 200) {
+          this.viewFile = val_data.result;
+          this.$message({
+            message: "涓婁紶鎴愬姛锛�",
+            type: "success",
+          });
+        } else {
+          this.$message({
+            message: "涓婁紶澶辫触锛�",
+            type: "warning",
+          });
+        }
+      }
+    },
     handleSelectionChange(val) {
       this.multipleSelection = val;
     },
@@ -597,14 +834,14 @@
       const data = await deleteStyles({ ids: std.toString() });
       if (data.code == 200) {
         this.$message({
-          message: '鍒犻櫎鎴愬姛锛�',
-          type: 'success',
+          message: "鍒犻櫎鎴愬姛锛�",
+          type: "success",
         });
         this.getRoleTabelData();
       } else {
         this.$message({
-          message: '鍒犻櫎澶辫触锛�',
-          type: 'warning',
+          message: "鍒犻櫎澶辫触锛�",
+          type: "warning",
         });
       }
     },
@@ -618,10 +855,8 @@
     },
     selectDepCataName() {
       this.showDepCata = false;
-      console.log(this.depFlag)
       switch (this.depFlag) {
         case 0:
-          // var data = this.$store.state.styleDirCateNodes;
           this.insertform.depValue = this.$store.state.styleDepCateNodes.name;
           this.insertform.depid = this.$store.state.styleDepCateNodes.id;
           break;
@@ -648,38 +883,48 @@
     insertFromDataClose() {
       this.InsertFormdialog = false;
       this.insertform = {};
+      this.filesReset();
     },
     async insertFromData() {
       if (this.insertform.dirid == null || this.insertform.depid == null) {
         this.$message({
-          message: '璇烽�夋嫨鏍峰紡鎵�灞炵殑鐩綍鎴栧崟浣�',
-          type: 'warning',
+          message: "璇烽�夋嫨鏍峰紡鎵�灞炵殑鐩綍鎴栧崟浣�",
+          type: "warning",
         });
         return;
+      }
+      if (this.guidFile != null) {
+        this.insertform.fileGuid = this.guidFile;
+      }
+      if (this.viewFile != null) {
+        this.insertform.viewGuid = this.viewFile;
       }
       const data = await insertStyle(this.insertform);
       if (data.code == 200) {
         this.InsertFormdialog = false;
         this.insertform = {};
+
+        this.filesReset();
         this.$message({
-          message: '娣诲姞鎴愬姛锛�',
-          type: 'success',
+          message: "娣诲姞鎴愬姛锛�",
+          type: "success",
         });
         this.getRoleTabelData();
       } else {
         this.$message({
-          message: '娣诲姞澶辫触锛�',
-          type: 'warning',
+          message: "娣诲姞澶辫触锛�",
+          type: "warning",
         });
       }
     },
     async getRoleTabelData() {
-      if (this.listData.tab == '') {
+      if (this.listData.tab == "") {
         delete this.listData.tab;
       }
+      this.listData.name = this.ruleForm.name;
       const data = await select_Style_ByPageAndCount(this.listData);
       if (data.code != 200) {
-        this.$message.error('鍒楄〃璋冪敤澶辫触');
+        this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
       this.tableData = data.result;
       this.count = data.count;
@@ -692,37 +937,40 @@
       if (date === undefined || date === null) {
         return;
       }
-      return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
+      return moment(parseInt(date)).format("YYYY-MM-DD HH:mm:ss");
     },
     formatStatus(row, column) {
       let date = row[column.property];
+      return this.forMontStatus(date);
+    },
+    forMontStatus(date) {
       if (date === undefined || date === null) {
-        return '';
+        return;
       }
       switch (date) {
         case 1:
-          return '鍚敤';
+          return "鍚敤";
           break;
         case 0:
-          return '鍋滅敤';
+          return "鍋滅敤";
           break;
       }
     },
     /** */
     getflyFile() {
-      $('#flyFile').click();
+      $("#flyFile").click();
     },
     getImageFile() {
-      $('#imageFile').click();
+      $("#imageFile").click();
     },
     uploadflyFile() {
-      var val = document.getElementById('flyFile').files;
+      var val = document.getElementById("flyFile").files;
       if (!val || !val.length) return;
       if (!val || !val.length) return;
       var formData = new FormData();
-      formData.append('file0', val[0]);
-      var res = $.ajax(serverUrl + 'Style/Upload', {
-        type: 'post',
+      formData.append("file0", val[0]);
+      var res = $.ajax(serverUrl + "Style/Upload", {
+        type: "post",
         data: formData,
         async: false,
         cache: false,
@@ -744,12 +992,12 @@
     },
     //鍥剧墖涓婁紶
     uploadFile() {
-      var val = document.getElementById('imageFile').files;
+      var val = document.getElementById("imageFile").files;
       if (!val || !val.length) return;
       var formData = new FormData();
-      formData.append('file0', val[0]);
-      var res = $.ajax(serverUrl + 'Style/Upload', {
-        type: 'post',
+      formData.append("file0", val[0]);
+      var res = $.ajax(serverUrl + "Style/Upload", {
+        type: "post",
         data: formData,
         async: false,
         cache: false,
@@ -778,8 +1026,8 @@
         this.insertform.path_id = this.$store.state.cataNode.id;
       }
 
-      this.$store.commit('changeCata', ''); //娓呯┖state鐨勯潰鍖呭睉
-      this.$store.commit('changeNode', ''); //娓呯┖state鐨勮妭鐐瑰璞�
+      this.$store.commit("changeCata", ""); //娓呯┖state鐨勯潰鍖呭睉
+      this.$store.commit("changeNode", ""); //娓呯┖state鐨勮妭鐐瑰璞�
       this.showCata = false;
     },
     startFromData() {
@@ -803,58 +1051,92 @@
       });
     },
     addstyle() {
-      this.$router.push('/addstyle');
+      this.$router.push("/addstyle");
     },
-   async updateForm() {
-  if (this.upform.dirid == null || this.upform.depid == null) {
+    statusFormat(res) {
+      switch (res) {
+        case "鍚敤":
+          return 1;
+          break;
+        case "鍋滅敤":
+          return 0;
+          break;
+        case "Start Using":
+          return 1;
+          break;
+        case "Stop Using":
+          return 0;
+          break;
+      }
+    },
+    async updateForm() {
+      if (this.upform.dirid == null || this.upform.depid == null) {
         this.$message({
-          message: '璇烽�夋嫨鏍峰紡鎵�灞炵殑鐩綍鎴栧崟浣�',
-          type: 'warning',
+          message: "璇烽�夋嫨鏍峰紡鎵�灞炵殑鐩綍鎴栧崟浣�",
+          type: "warning",
         });
         return;
+      }
+      if (Number.isInteger(this.upform.status) == false) {
+        this.upform.status = this.statusFormat(this.upform.status);
+      }
+      if (this.guidFile != null) {
+        this.upform.fileGuid = this.guidFile;
+      }
+      if (this.viewFile != null) {
+        this.upform.viewGuid = this.viewFile;
       }
       const data = await updateStyle(this.upform);
       if (data.code == 200) {
         this.dialogFormVisible = false;
         this.upform = {};
         this.$message({
-          message: '淇敼鎴愬姛锛�',
-          type: 'success',
+          message: "淇敼鎴愬姛锛�",
+          type: "success",
         });
         this.getRoleTabelData();
       } else {
         this.$message({
-          message: '淇敼澶辫触锛�',
-          type: 'warning',
+          message: "淇敼澶辫触锛�",
+          type: "warning",
         });
       }
-
-
     },
 
     removeUpdate() {
       this.upflag = false;
       this.dialogFormVisible = false;
-      this.upform={}
+      this.upform = {};
+      this.filesReset();
     },
     submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          this.searchName = this.ruleForm.name.trim();
-          this.startFromData();
-        } else {
-          console.log('error submit!!');
-          return false;
-        }
-      });
+      this.getRoleTabelData();
+      // this.$refs[formName].validate((valid) => {
+      //   if (valid) {
+      //     this.searchName = this.ruleForm.name.trim();
+      //     this.startFromData();
+      //   } else {
+      //     console.log('error submit!!');
+      //     return false;
+      //   }
+      // });
     },
     resetForm(formName) {
+      this.ruleForm = {};
+      this.getRoleTabelData();
     },
     showDetail(index, row) {
+      var token = getToken();
       this.showinfoBox = true;
       this.itemdetail = row;
-      this.itemdetail.createTime = this.formomentTime(this.itemdetail.createTime);
-      this.itemdetail.updateTime = this.formomentTime(this.itemdetail.updateTime);
+      this.itemdetail.createTime = this.formomentTime(
+        this.itemdetail.createTime
+      );
+      this.itemdetail.updateTime = this.formomentTime(
+        this.itemdetail.updateTime
+      );
+      this.itemdetail.imageFile =
+        BASE_URL + "/res/download?guid=" + row.viewGuid + "&token=" + token;
     },
     closeDetial() {
       this.showinfoBox = false;
@@ -862,36 +1144,36 @@
     },
 
     handleEdit(index, row) {
-
       this.upflag = true;
       this.dialogFormVisible = true;
       this.upform = row;
       this.upform.depValue = row.depName;
       this.upform.dirValue = row.dirName;
+      this.upform.status = this.forMontStatus(row.status);
     },
     handleDelete(index, row) {
-      this.$confirm('纭畾鏄惁鍒犻櫎?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning',
+      this.$confirm("纭畾鏄惁鍒犻櫎?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
       })
         .then(() => {
           DeletestStyle([row.id]);
           this.$message({
-            type: 'success',
-            message: '鍒犻櫎鎴愬姛!',
+            type: "success",
+            message: "鍒犻櫎鎴愬姛!",
           });
           this.startFromData();
         })
-        .catch(() => { });
+        .catch(() => {});
     },
     // 鑾峰彇澶氶��
 
     ShowWindowFly(res) {
       window.open(
-        ifreamUrl + '/LFWeb/poper.html?name=' + res,
-        '',
-        'height=800, width=1500, top=150, left=350, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'
+        ifreamUrl + "/LFWeb/poper.html?name=" + res,
+        "",
+        "height=800, width=1500, top=150, left=350, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no"
       );
     },
   },
@@ -907,7 +1189,7 @@
   box-sizing: border-box;
 
   .el-input {
-    width: 745px;
+    width: 730px;
   }
 
   .searchComp {
@@ -940,7 +1222,7 @@
       }
     }
     .btnBox {
-      width: 123px;
+      width: 160px;
       margin: 10px auto 0;
       // background-color: red;
     }

--
Gitblit v1.9.3