From a674e9834bec0ce5a18b751c7434323cc7199ce5 Mon Sep 17 00:00:00 2001
From: lixiangyu <lixiangyu@xalxzn.com>
Date: 星期四, 11 九月 2025 17:57:34 +0800
Subject: [PATCH] feat(cms): CuttingReceiveDetailList.vue刀具领用功能中新增领用单提交功能 CuttingReceiveList.vue 刀具领用 提交按钮的前端样式和刀具领用归还按钮的前端样式

---
 src/views/cms/CuttingReceiveList.vue |  622 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 354 insertions(+), 268 deletions(-)

diff --git a/src/views/cms/CuttingReceiveList.vue b/src/views/cms/CuttingReceiveList.vue
index 36899db..b99b965 100644
--- a/src/views/cms/CuttingReceiveList.vue
+++ b/src/views/cms/CuttingReceiveList.vue
@@ -1,108 +1,126 @@
 <template>
-  <a-card :bordered="false">
-    <!-- 鏌ヨ鍖哄煙 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-          <a-col :md="6" :sm="8">
-            <a-form-item label="棰嗙敤鍗曠姸鎬�">
-              <j-search-select-tag
-                placeholder="璇烽�夋嫨棰嗙敤鍗曠姸鎬�"
-                v-model="queryParam.orderStatus"
-                dict="order_status"
-              />
-            </a-form-item>
-          </a-col>
-          <a-col :md="6" :sm="8">
-            <a-form-item label="棰嗙敤浜�">
-              <j-search-select-tag
-                placeholder="璇烽�夋嫨棰嗙敤浜�"
-                v-model="queryParam.receiver"
-                dict="sys_user,realname,id,del_flag!=1"
-              />
-            </a-form-item>
-          </a-col>
-          <a-col
-            :md="6"
-            :sm="8"
-          >
+   <a-card :bordered="false">
+      <!-- 鏌ヨ鍖哄煙 -->
+      <div class="table-page-search-wrapper">
+         <a-form layout="inline" @keyup.enter.native="searchQuery">
+            <a-row :gutter="24">
+               <a-col :md="6" :sm="8">
+                  <a-form-item label="棰嗙敤鍗曠姸鎬�">
+                     <j-search-select-tag
+                        placeholder="璇烽�夋嫨棰嗙敤鍗曠姸鎬�"
+                        v-model="queryParam.orderStatus"
+                        dict="order_status"
+                     />
+                  </a-form-item>
+               </a-col>
+               <a-col :md="6" :sm="8">
+                  <a-form-item label="棰嗙敤浜�">
+                     <j-search-select-tag
+                        placeholder="璇烽�夋嫨棰嗙敤浜�"
+                        v-model="queryParam.receiver"
+                        dict="sys_user,realname,id,del_flag!=1"
+                     />
+                  </a-form-item>
+               </a-col>
+               <a-col
+                  :md="6"
+                  :sm="8"
+               >
             <span
-              style="float: left;overflow: hidden;"
-              class="table-page-search-submitButtons"
+               style="float: left;overflow: hidden;"
+               class="table-page-search-submitButtons"
             >
               <a-button
-                type="primary"
-                @click="searchQuery"
-                icon="search"
+                 type="primary"
+                 @click="searchQuery"
+                 icon="search"
               >鏌ヨ</a-button>
               <a-button
-                type="primary"
-                @click="searchReset"
-                icon="reload"
-                style="margin-left: 8px"
+                 type="primary"
+                 @click="searchReset"
+                 icon="reload"
+                 style="margin-left: 8px"
               >閲嶇疆</a-button>
             </span>
-          </a-col>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 鏌ヨ鍖哄煙-END -->
+               </a-col>
+            </a-row>
+         </a-form>
+      </div>
+      <!-- 鏌ヨ鍖哄煙-END -->
 
-    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
-      <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏烽鐢ㄥ崟')">瀵煎嚭</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">瀵煎叆</a-button>
-      </a-upload> -->
-    </div>
-
-    <!-- table鍖哄煙-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a
-        style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
-        <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
+      <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+      <div class="table-operator">
+         <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+         <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏烽鐢ㄥ崟')">瀵煎嚭</a-button>
+         <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+           <a-button type="primary" icon="import">瀵煎叆</a-button>
+         </a-upload> -->
       </div>
 
-      <a-table
-        ref="table"
-        size="middle"
-        :scroll="{x:true}"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        class="j-table-force-nowrap"
-        :customRow="customRow"
-        @change="handleTableChange">
+      <!-- table鍖哄煙-begin -->
+      <div>
+         <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+            <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a
+            style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
+            <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
+         </div>
 
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text,record">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
-          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt=""
-               style="max-width:80px;font-size: 12px;font-style: italic;" />
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            涓嬭浇
-          </a-button>
-        </template>
+         <a-table
+            ref="table"
+            size="middle"
+            :scroll="{x:true}"
+            bordered
+            rowKey="id"
+            :columns="columns"
+            :dataSource="dataSource"
+            :pagination="ipagination"
+            :loading="loading"
+            class="j-table-force-nowrap"
+            :customRow="customRow"
+            @change="handleTableChange">
 
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">缂栬緫</a>
+            <template slot="htmlSlot" slot-scope="text">
+               <div v-html="text"></div>
+            </template>
+            <template slot="imgSlot" slot-scope="text,record">
+               <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
+               <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt=""
+                    style="max-width:80px;font-size: 12px;font-style: italic;" />
+            </template>
+            <template slot="fileSlot" slot-scope="text">
+               <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
+               <a-button
+                  v-else
+                  :ghost="true"
+                  type="primary"
+                  icon="download"
+                  size="small"
+                  @click="downloadFile(text)">
+                  涓嬭浇
+               </a-button>
+            </template>
 
+            <!--        <span slot="action" slot-scope="text, record">-->
+            <!--          <a @click="handleEdit(record)">缂栬緫</a>-->
+
+            <!--          <a-divider type="vertical" />-->
+            <!--          <a-dropdown>-->
+            <!--            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>-->
+            <!--            <a-menu slot="overlay">-->
+            <!--              <a-menu-item>-->
+            <!--                <a @click="handleDetail(record)">璇︽儏</a>-->
+            <!--              </a-menu-item>-->
+            <!--              <a-menu-item>-->
+            <!--                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">-->
+            <!--                  <a>鍒犻櫎</a>-->
+            <!--                </a-popconfirm>-->
+            <!--              </a-menu-item>-->
+            <!--            </a-menu>-->
+            <!--          </a-dropdown>-->
+            <!--        </span>-->
+
+            <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)" :disabled="record.orderStatus === '2'">缂栬緫</a>
           <a-divider type="vertical" />
           <a-dropdown>
             <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
@@ -110,24 +128,35 @@
               <a-menu-item>
                 <a @click="handleDetail(record)">璇︽儏</a>
               </a-menu-item>
-              <a-menu-item>
+               <!--              <a-menu-item v-if="record.orderStatus != '2'">-->
+               <!--                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">-->
+               <!--                  <a>鍒犻櫎</a>-->
+               <!--                </a-popconfirm>-->
+               <!--              </a-menu-item>-->
+              <a-menu-item v-if="record.orderStatus !== '2'">
+                  <a @click="handleSubmit(record.id)" :disabled="record.orderStatus === '3'">鎻愪氦</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.orderStatus !== '2'">
                 <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
                   <a>鍒犻櫎</a>
                 </a-popconfirm>
+              </a-menu-item>
+               <a-menu-item v-if="record.orderStatus === '2'">
+                  <a @click="handleBack(record.id)">褰掕繕</a>
               </a-menu-item>
             </a-menu>
           </a-dropdown>
         </span>
 
-      </a-table>
-    </div>
-    <a-tabs defaultActiveKey="1">
-      <a-tab-pane tab="鍒�鍏烽鐢ㄦ槑缁�" key="1">
-        <cutting-receive-detail-list ref="cuttingReceiveDetailList"></cutting-receive-detail-list>
-      </a-tab-pane>
-    </a-tabs>
-    <cutting-receive-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-modal>
-  </a-card>
+         </a-table>
+      </div>
+      <a-tabs defaultActiveKey="1">
+         <a-tab-pane tab="鍒�鍏烽鐢ㄦ槑缁�" key="1">
+            <cutting-receive-detail-list ref="cuttingReceiveDetailList"></cutting-receive-detail-list>
+         </a-tab-pane>
+      </a-tabs>
+      <cutting-receive-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-modal>
+   </a-card>
 </template>
 
 <script>
@@ -137,178 +166,235 @@
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import CuttingReceiveModal from './modules/CuttingReceiveModal'
 import CuttingReceiveDetailList from './CuttingReceiveDetailList'
+import { httpAction } from '@api/manage'
 
 export default {
-  name: 'CuttingReceiveList',
-  mixins: [JeecgListMixin, mixinDevice],
-  components: {
-    CuttingReceiveModal,
-    CuttingReceiveDetailList
-  },
-  data() {
-    return {
-      description: '鍒�鍏烽鐢ㄥ崟绠$悊椤甸潰',
-      // 琛ㄥご
-      columns: [
-        {
-          title: '#',
-          dataIndex: '',
-          key: 'rowIndex',
-          width: 60,
-          align: 'center',
-          customRender: function(t, r, index) {
-            return parseInt(index) + 1
-          }
-        },
-        {
-          title: '棰嗙敤浜�',
-          align: 'center',
-          dataIndex: 'receiver_dictText'
-        },
-        {
-          title: '棰嗙敤鏃堕棿',
-          align: 'center',
-          dataIndex: 'receiveTime',
-          customRender: function(text) {
-            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
-          }
-        },
-        {
-          title: '棰嗙敤璇存槑',
-          align: 'center',
-          dataIndex: 'receiveComment'
-        },
-        {
-          title: '纭浜�',
-          align: 'center',
-          dataIndex: 'confirmer_dictText'
-        },
-        {
-          title: '纭鏃堕棿',
-          align: 'center',
-          dataIndex: 'confirmTime',
-          customRender: function(text) {
-            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
-          }
-        },
-        {
-          title: '纭鎰忚',
-          align: 'center',
-          dataIndex: 'confirmComment'
-        },
-        {
-          title: '鏄惁浼氬綊杩�',
-          align: 'center',
-          dataIndex: 'returnFlag'
-        },
-        {
-          title: '褰掕繕鏃堕棿',
-          align: 'center',
-          dataIndex: 'returnTime',
-          customRender: function(text) {
-            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
-          }
-        },
-        {
-          title: '褰掕繕璇存槑',
-          align: 'center',
-          dataIndex: 'returnComment'
-        },
-        {
-          title: '褰掕繕纭浜�',
-          align: 'center',
-          dataIndex: 'returnConfirmer_dictText'
-        },
-        {
-          title: '褰掕繕纭鏃堕棿',
-          align: 'center',
-          dataIndex: 'returnConfirmTime',
-          customRender: function(text) {
-            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
-          }
-        },
-        {
-          title: '褰掕繕纭鎰忚',
-          align: 'center',
-          dataIndex: 'returnConfirmComment'
-        },
-        {
-          title: '棰嗙敤鍗曠姸鎬�',
-          align: 'center',
-          dataIndex: 'orderStatus'
-        },
-        {
-          title: '鎿嶄綔',
-          dataIndex: 'action',
-          align: 'center',
-          fixed: 'right',
-          width: 147,
-          scopedSlots: { customRender: 'action' }
-        }
-      ],
-      url: {
-        list: '/cms/cuttingReceive/list',
-        delete: '/cms/cuttingReceive/delete',
-        deleteBatch: '/cms/cuttingReceive/deleteBatch',
-        exportXlsUrl: '/cms/cuttingReceive/exportXls',
-        importExcelUrl: 'cms/cuttingReceive/importExcel'
-
-      },
-      dictOptions: {},
-      superFieldList: []
-    }
-  },
-  created() {
-    this.getSuperFieldList()
-  },
-  computed: {
-    importExcelUrl: function() {
-      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
-    }
-  },
-  methods: {
-    searchReset() {
-      this.queryParam = {}
-      this.$refs.cuttingReceiveDetailList.dataSource = []
-      this.loadData(1)
-    },
-    handleEdit: function(record) {
-      this.$refs.modalForm.edit(record)
-      this.$refs.modalForm.title = '缂栬緫'
-      this.$refs.modalForm.disableSubmit = false
-    },
-    handleAdd() {
-      this.$refs.modalForm.add()
-      this.$refs.modalForm.title = '鏂板'
-      this.$refs.modalForm.disableSubmit = false
-    },
-    handleDetail: function(record) {
-      this.$refs.modalForm.edit(record)
-      this.$refs.modalForm.title = '璇︽儏'
-      this.$refs.modalForm.disableSubmit = true
-    },
-    customRow(record) {
+   name: 'CuttingReceiveList',
+   mixins: [JeecgListMixin, mixinDevice],
+   components: {
+      CuttingReceiveModal,
+      CuttingReceiveDetailList
+   },
+   data() {
       return {
-        on: {
-          click: (e) => {
-            //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰
-            this.$bus.$emit('getToolingStorageData', record)
-            //鐐瑰嚮褰撳墠琛屽彉鑹�
-            let oldList = document.querySelectorAll('.checked-td-of-add-table')
-            if (oldList) {
-              for (let j = 0; j < oldList.length; j++) {
-                oldList[j].classList.remove('checked-td-of-add-table')
-              }
+         description: '鍒�鍏烽鐢ㄥ崟绠$悊椤甸潰',
+         // 琛ㄥご
+         columns: [
+            {
+               title: '#',
+               dataIndex: '',
+               key: 'rowIndex',
+               width: 60,
+               align: 'center',
+               customRender: function(t, r, index) {
+                  return parseInt(index) + 1
+               }
+            },
+            {
+               title: '棰嗙敤浜�',
+               align: 'center',
+               dataIndex: 'receiver_dictText'
+            },
+            {
+               title: '棰嗙敤鏃堕棿',
+               align: 'center',
+               dataIndex: 'receiveTime',
+               customRender: function(text) {
+                  return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+               }
+            },
+            {
+               title: '棰嗙敤璇存槑',
+               align: 'center',
+               dataIndex: 'receiveComment'
+            },
+            {
+               title: '纭浜�',
+               align: 'center',
+               dataIndex: 'confirmer_dictText'
+            },
+            {
+               title: '纭鏃堕棿',
+               align: 'center',
+               dataIndex: 'confirmTime',
+               customRender: function(text) {
+                  return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+               }
+            },
+            {
+               title: '纭鎰忚',
+               align: 'center',
+               dataIndex: 'confirmComment'
+            },
+            {
+               title: '鏄惁浼氬綊杩�',
+               align: 'center',
+               dataIndex: 'returnFlag'
+            },
+            {
+               title: '褰掕繕鏃堕棿',
+               align: 'center',
+               dataIndex: 'returnTime',
+               customRender: function(text) {
+                  return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+               }
+            },
+            {
+               title: '褰掕繕璇存槑',
+               align: 'center',
+               dataIndex: 'returnComment'
+            },
+            {
+               title: '褰掕繕纭浜�',
+               align: 'center',
+               dataIndex: 'returnConfirmer_dictText'
+            },
+            {
+               title: '褰掕繕纭鏃堕棿',
+               align: 'center',
+               dataIndex: 'returnConfirmTime',
+               customRender: function(text) {
+                  return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+               }
+            },
+            {
+               title: '褰掕繕纭鎰忚',
+               align: 'center',
+               dataIndex: 'returnConfirmComment'
+            },
+            {
+               title: '棰嗙敤鍗曠姸鎬�',
+               align: 'center',
+               dataIndex: 'orderStatus_dictText'
+            },
+            {
+               title: '鎿嶄綔',
+               dataIndex: 'action',
+               align: 'center',
+               fixed: 'right',
+               width: 147,
+               scopedSlots: { customRender: 'action' }
             }
-            let children = e.target.parentNode.children
-            for (let i = 0; i < children.length; i++) {
-              children[i].classList.add('checked-td-of-add-table')
-            }
-          }
-        }
+         ],
+         url: {
+            list: '/cms/cuttingReceive/list',
+            delete: '/cms/cuttingReceive/delete',
+            deleteBatch: '/cms/cuttingReceive/deleteBatch',
+            exportXlsUrl: '/cms/cuttingReceive/exportXls',
+            importExcelUrl: 'cms/cuttingReceive/importExcel',
+            submit: '/cms/cuttingReceive/submit'
+         },
+         dictOptions: {},
+         superFieldList: []
       }
-    }
-  }
+   },
+   created() {
+      this.getSuperFieldList()
+   },
+   computed: {
+      importExcelUrl: function() {
+         return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+      }
+   },
+   methods: {
+      searchReset() {
+         this.queryParam = {}
+         this.$refs.cuttingReceiveDetailList.dataSource = []
+         this.loadData(1)
+      },
+      handleEdit: function(record) {
+         this.$refs.modalForm.edit(record)
+         this.$refs.modalForm.title = '缂栬緫'
+         this.$refs.modalForm.disableSubmit = false
+      },
+      handleAdd() {
+         this.$refs.modalForm.add()
+         this.$refs.modalForm.title = '鏂板'
+         this.$refs.modalForm.disableSubmit = false
+      },
+      handleDetail: function(record) {
+         this.$refs.modalForm.edit(record)
+         this.$refs.modalForm.title = '璇︽儏'
+         this.$refs.modalForm.disableSubmit = true
+      },
+      customRow(record) {
+         return {
+            on: {
+               click: (e) => {
+                  //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰
+                  this.$bus.$emit('getToolingStorageData', record)
+                  //鐐瑰嚮褰撳墠琛屽彉鑹�
+                  let oldList = document.querySelectorAll('.checked-td-of-add-table')
+                  if (oldList) {
+                     for (let j = 0; j < oldList.length; j++) {
+                        oldList[j].classList.remove('checked-td-of-add-table')
+                     }
+                  }
+                  let children = e.target.parentNode.children
+                  for (let i = 0; i < children.length; i++) {
+                     children[i].classList.add('checked-td-of-add-table')
+                  }
+               }
+            }
+         }
+      },
+
+      /**
+       *  鍗曟嵁鎻愪氦
+       */
+      handleSubmit: function(id) {
+         if (!this.url.submit) {
+            this.$message.error('璇疯缃畊rl.submit灞炴��!')
+            return
+         }
+
+         let targetId = id // 浠庡弬鏁拌幏鍙朓D
+         // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰�
+         if (!targetId) {
+            if (this.selectedRowKeys.length != 1) {
+               this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+               return
+            } else {
+               targetId = this.selectedRowKeys[0]
+            }
+         }
+
+         // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓�
+         let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId)
+         let method = 'get'
+         var params = {}  // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫�
+
+         const that = this
+
+         this.$confirm({
+            title: '纭鎻愪氦锛�',
+            // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...',
+            okText: '纭',
+            cancelText: '鍙栨秷',
+            onOk() {
+               // 鏄剧ず鍔犺浇鎻愮ず
+               const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0)
+
+               // 鍙戦�佽姹�
+               return httpAction(httpurl, params, method).then((res) => {
+                  hide() // 闅愯棌鍔犺浇鎻愮ず
+                  if (res.success) {
+                     that.$message.success(res.message)
+                     that.loadData()
+                  } else {
+                     that.$message.warning(res.message)
+                  }
+               }).catch(error => {
+                  hide() // 闅愯棌鍔犺浇鎻愮ず
+                  that.$message.error('鎻愪氦澶辫触: ' + error.message)
+               }).finally(() => {
+                  that.loading = false
+               })
+            }
+         })
+      },
+      //TODO锛氬垁鍏峰綊杩� handleBack
+   }
 }
 </script>
 <style scoped>

--
Gitblit v1.9.3