From 716b89768ab6b8a9146bfe2a27d35ca8522ba7b6 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 17 四月 2024 15:04:14 +0800 Subject: [PATCH] 完成检验审核功能优化 --- src/components/do/b1-ins-order/add.vue | 115 ++++++++++--- package-lock.json | 24 +- src/components/view/b4-daily-business-statistics.vue | 11 + src/App.vue | 8 + src/assets/api/controller.js | 5 src/components/view/index-index.vue | 287 +++++++++++++++++++++++++++++++++++ 6 files changed, 403 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58877b5..03199f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -473,7 +473,7 @@ }, "@xmldom/xmldom": { "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" }, "JSV": { @@ -3583,7 +3583,7 @@ }, "dingbat-to-unicode": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" }, "dir-glob": { @@ -3697,7 +3697,7 @@ }, "duck": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "resolved": "https://registry.npmmirror.com/duck/-/duck-0.1.12.tgz", "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", "requires": { "underscore": "^1.13.1" @@ -3705,7 +3705,7 @@ "dependencies": { "underscore": { "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" } } @@ -6292,7 +6292,7 @@ }, "lop": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", + "resolved": "https://registry.npmmirror.com/lop/-/lop-0.4.1.tgz", "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", "requires": { "duck": "^0.1.12", @@ -6302,7 +6302,7 @@ "dependencies": { "underscore": { "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" } } @@ -6385,7 +6385,7 @@ }, "mammoth": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.7.1.tgz", + "resolved": "https://registry.npmmirror.com/mammoth/-/mammoth-1.7.1.tgz", "integrity": "sha512-ckxfvNH5sUaJh+SbYbxpvB7urZTGS02jA91rFCNiL928CgE9FXXMyXxcJBY0n+CpmKE/eWh7qaV0+v+Dbwun3Q==", "requires": { "@xmldom/xmldom": "^0.8.6", @@ -6402,12 +6402,12 @@ "dependencies": { "bluebird": { "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, "jszip": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "requires": { "lie": "~3.3.0", @@ -6418,7 +6418,7 @@ }, "underscore": { "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" } } @@ -7894,7 +7894,7 @@ }, "option": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "resolved": "https://registry.npmmirror.com/option/-/option-0.2.4.tgz", "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" }, "ora": { @@ -13829,7 +13829,7 @@ }, "xmlbuilder": { "version": "10.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz", "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==" }, "xmlchars": { diff --git a/src/App.vue b/src/App.vue index 6c5cb58..3a329af 100644 --- a/src/App.vue +++ b/src/App.vue @@ -292,4 +292,12 @@ /* 鍏ㄥ眬杈撳叆妗嗘牱寮� */ /* 鍏ㄥ眬鎸夐挳鏍峰紡 */ + /* 鍏ㄥ眬鎹㈣婧㈠嚭鏍峰紡 */ + .ellipsis-multiline { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; /* 瀹氫箟鏂囨湰鐨勮鏁� */ + overflow: hidden; + text-overflow: ellipsis; + } </style> diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index e3f02b6..299a7d9 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -18,6 +18,7 @@ insReport, warehouse, department, + report, } } @@ -214,3 +215,7 @@ delDepartment: "/department/delDepartment", //鍒犻櫎閮ㄩ棬 showUserById: "/department/showUserById", //鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛� } + +const report = { + businessStatisticsByDay: "/report/businessStatisticsByDay", //姣忔棩涓氬姟缁熻 +} diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 3b58669..1cf0c10 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -442,7 +442,7 @@ </div> </el-col> <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>鎸囨淳浜哄憳锛�</div> + <div class="search_label"><span class="required-span" v-if="addObj.type == 2">* </span>鎸囨淳浜哄憳锛�</div> <div class="search_input"> <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> @@ -459,7 +459,24 @@ </el-row> </span> </el-dialog> - + <el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="noDialogVisible" width="400px"> + <div class="body" style="max-height: 60vh;"> + <el-row> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div> + <div class="search_input"> + <el-input v-model="tell" size="small" placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"></el-input> + </div> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button> + <el-button type="primary" @click="submitTell" :loading="noLoading">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> </div> </template> @@ -569,7 +586,10 @@ units: [], models: [], methods: [], - methodLoad: false + methodLoad: false, + noDialogVisible:false, + tell:'', + noLoading:false } }, watch: { @@ -674,31 +694,43 @@ } }, upInsOrderOfState(state) { - this.saveLoad = true - this.$axios.post(this.$api.insOrder.upInsOrderOfState, { - state, - id: this.currentId - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - this.saveLoad = false - if (res.code == 201) return - this.$message.success('鎻愪氦鎴愬姛') - // 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛� - if (this.addObj.type == 2) { - this.issuedDialogVisible = true; - this.$axios.post(this.$api.insOrder.selectOrderManDay, { - id: this.currentId - }).then(ress => { - this.distributeData.orderId = this.currentId - this.distributeData.appointed = ress.data - }) - } else { - this.$parent.playOrder(0) - } - }) + if(state == 1){ + this.saveLoad = true + this.$axios.post(this.$api.insOrder.upInsOrderOfState, { + state, + id: this.currentId + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.saveLoad = false + if (res.code == 201) return + this.$message.success('鎻愪氦鎴愬姛') + // 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛� + // if (this.addObj.type == 2) { + // this.issuedDialogVisible = true; + // this.$axios.post(this.$api.insOrder.selectOrderManDay, { + // id: this.currentId + // }).then(ress => { + // this.distributeData.orderId = this.currentId + // this.distributeData.appointed = ress.data + // }) + // } else { + // this.$parent.playOrder(0) + // } + this.issuedDialogVisible = true; + this.$axios.post(this.$api.insOrder.selectOrderManDay, { + id: this.currentId + }).then(ress => { + this.distributeData.orderId = this.currentId + this.distributeData.appointed = ress.data + }) + }) + }else{ + // 涓嶉�氳繃 + this.noDialogVisible = true + } }, // 涓嬪彂 submitForm2() { @@ -706,7 +738,7 @@ this.$message.error('绾﹀畾鏃堕棿鏈~鍐�') return } - if (this.distributeData.userId == null || this.distributeData.userId == '') { + if (this.addObj.type == 2&&(this.distributeData.userId == null || this.distributeData.userId == '')) { this.$message.error('鎸囨淳浜哄憳鏈~鍐�') return } @@ -725,7 +757,7 @@ this.issuedDialogVisible = false this.$parent.playOrder(0) }).catch(e => { - this.$message.error('淇敼澶辫触') + this.$message.error('鎻愪氦澶辫触') this.upLoad = false }) }, @@ -1126,6 +1158,29 @@ this.$refs.productTable.doLayout() }) }, + submitTell(){ + if (!this.tell) { + this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜') + return + } + this.noLoading = true; + this.$axios.post(this.$api.insOrder.upInsOrderOfState, { + state:2, + id: this.currentId, + tell:this.tell + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.noLoading = false; + this.tell = ''; + if (res.code == 201) return + this.$message.success('鎻愪氦鎴愬姛') + this.issuedDialogVisible = false; + this.$parent.playOrder(0) + }) + } } } </script> diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue index ae4f72c..6155c2b 100644 --- a/src/components/view/b4-daily-business-statistics.vue +++ b/src/components/view/b4-daily-business-statistics.vue @@ -146,6 +146,17 @@ ] } } + }, + mounted(){ + this.init() + }, + methods:{ + init(){ + this.$axios.get(this.$api.report.businessStatisticsByDay).then(res => { + if (res.code == 201) return + console.log(res) + }) + } } } </script> diff --git a/src/components/view/index-index.vue b/src/components/view/index-index.vue index bff6116..57b55ee 100644 --- a/src/components/view/index-index.vue +++ b/src/components/view/index-index.vue @@ -10,7 +10,8 @@ background-image: url("../../../static/img/棣栭〉鍥剧墖1.png"); background-size: 100% 100%; height: 118px; - margin-bottom: 10px; + margin-bottom: 16px; + border-radius: 16px; } .left-1 .say { @@ -55,6 +56,7 @@ display: flex; align-items: center; justify-content: space-between; + margin-bottom: 16px; } .right-1-item{ @@ -69,6 +71,155 @@ color: #0166E2; } + .right-2{ + padding: 13px 20px; + margin-bottom: 16px; + } + + .right-2-title{ + display: flex; + align-items: center; + justify-content: space-between; + } + + .right-2-body{ + width: 100%; + margin-top: 20px; + display: flex; + align-items: start; + justify-content: space-between; + } + >>>.el-calendar__header { + display: none; + } + >>>.el-calendar__body{ + padding: 0; + } + >>>.el-calendar-table:not(.is-range) td.next { + /*闅愯棌涓嬩釜鏈堢殑鏃ユ湡*/ + display: none; + } + >>>.el-calendar-day{ + height: 40px; + } + >>>.el-calendar-table td{ + border: 0; + font-size: 14px; + } + >>>.el-calendar-table tr td:first-child{ + border-left: 0; + } + .control{ + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + padding: 0px 0 10px; + } + .control .el-button{ + width: 32px; + height: 32px; + border-radius: 8px; + border: 1px solid #E8E8E8; + background: #fff; + padding: 0; + color: #0166E2; + font-size: 20px; + } + .list2-item{ + line-height: 22px; + display: flex; + margin-bottom: 13px; + font-size: 14px; + } + .right-3{ + } + .right-3-tab{ + display: flex; + align-items: center; + margin-bottom: 16px; + } + .tab-item{ + width: 50%; + box-sizing: border-box; + text-align: center; + padding: 16px 0; + font-size: 20px; + background: #F5F7FB; + color: #333333; + } + .tab-item.active{ + background: #fff; + color: #FF3838; + } + .right-3-list{ + padding: 0 12px 16px; + } + .list3-item{ + padding: 6px 4px; + margin: 8px 0; + } + .list3-item:hover{ + background: rgba(58, 123, 250,0.05); + } + .list3-item-title{ + display: flex; + align-items: start; + margin-bottom: 10px; + } + .list3-item-info{ + display: flex; + align-items: center; + justify-content: space-between; + color: #666666; + font-size: 14px; + } + .left-2{ + display: flex; + align-items: flex-start; + margin-bottom: 16px; + } + .left-2-item{ + width: 14.1%; + border-right: 1px solid #F1F1F1; + } + .left-2-item:nth-last-child(1){ + border-right: 0; + } + .left-2-item:hover{ + background: rgba(58,123,250,0.05); + } + .left-2-item:hover .left-item-title span{ + color: #3A7BFA !important; + } + .left-item-title{ + border-bottom: 1px solid #F1F1F1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 20px 0; + } + .left-item-body{ + box-sizing: border-box; + padding: 5px; + max-height: 711px; + overflow-y: auto; + } + .body-item{ + background: #70A090; + border-radius: 16px; + overflow: hidden; + margin-bottom: 8px; + } + .body-item>div{ + height: calc(100% - 16px); + margin-top: 16px; + background: rgba(255, 255, 255,0.9); + padding: 8px 8px 16px; + display: flex; + flex-direction: column; + } </style> <template> @@ -83,7 +234,26 @@ </div> </div> </div> - <div class="left-2 card"></div> + <div class="left-2 card"> + <div class="left-2-item" v-for="(item,index) in 7" :key="index"> + <div class="left-item-title"> + <span style="font-size: 18px;">25</span> + <span style="font-size: 14px;color: #999999;">鏄熸湡鍥�</span> + </div> + <div class="left-item-body"> + <div class="body-item" v-for="(m,i) in 8" :key="i"> + <div> + <span style="font-size: 12px;margin-bottom: 17px;">濮旀墭璁㈠崟WT20230101 -001妫�娴�</span> + <el-image style="height: 24px;width: 24px;border-radius: 50%;"> + <div slot="error" class="image-slot"> + <i class="el-icon-picture-outline"></i> + </div> + </el-image> + </div> + </div> + </div> + </div> + </div> </el-col> <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10"> <div class="right-1 card"> @@ -125,8 +295,57 @@ </div> </div> <div class="right-2 card"> + <div class="right-2-title"> + <span style="color: #333333;font-size: 16px;">鎴戠殑鏃ョ▼</span> + <span style="cursor: pointer;font-size: 12px; +color: #3A7BFA;">娣诲姞鎴戠殑鏃ョ▼</span> + </div> + <div class="right-2-body"> + <div class="calendar" style="width: 49%;"> + <div class="control"> + <el-button class="prevm" @click="prevMonth(calendarValue)" icon="el-icon-arrow-left"></el-button> + <span>{{ calendarValue.getFullYear()+'骞�'+(calendarValue.getMonth() + 1)+'鏈�' }}</span> + <el-button class="nextm" @click="nextMonth(calendarValue)" icon="el-icon-arrow-right"></el-button> + </div> + <el-calendar v-model="calendarValue"> + <template + slot="dateCell" + slot-scope="{date, data}"> + <span> + {{ data.day.split('-').slice(2)+'' }} + </span> + <el-badge v-if="data.isSelected" is-dot class="item"> + </el-badge> + </template> + </el-calendar> + </div> + <div class="right-2-list" style="width: 49%;"> + <div class="list2-item" v-for="(m,i) in 5" :key="i"> + <span>14:00</span> + <el-tooltip style="margin-left: 10px;" effect="dark" content="鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�" placement="top"> + <p class="ellipsis-multiline" >鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�</p> + </el-tooltip> + </div> + </div> + </div> </div> - <div class="right-3 card"> + <div class="right-3 card" style="overflow: hidden;"> + <div class="right-3-tab"> + <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==0}" @click="currentIndex=0">棰勮鎻愰啋 10</div> + <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==1}" @click="currentIndex=1">閫氱煡閫氬憡 12</div> + </div> + <div class="right-3-list"> + <div class="list3-item" v-for="(m,i) in 5" :key="i"> + <div class="list3-item-title"> + <img src="../../../static/img/index-tip.svg" alt=""> + <p>璁惧鍒版湡鎻愰啋</p> + </div> + <div class="list3-item-info"> + <p>缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡</p> + <p>2023-09-09 09:09:09</p> + </div> + </div> + </div> </div> </el-col> </el-row> @@ -139,12 +358,14 @@ return { user: {}, now: null, + calendarValue: new Date(), + currentIndex:0, } }, mounted() { this.user = JSON.parse(localStorage.getItem('user')) this.nowTime() - this.getDataList() + // this.getDataList() setInterval(() => { this.nowTime() }, 1000) @@ -180,7 +401,63 @@ this.$axios.get(this.$api.dataReporting.getDataList).then(res => { this.data = res.data }) - } + }, + nextMonth(value) { + let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤 + let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤 + let day = this.calendarValue.getDate();// 褰撳墠澶╂暟 + let nextyear = year; + let nextmonth = parseInt(month) + 1; + // 鍒ゆ柇涓嬩竴鏈堟槸鍚︿細杩涘叆涓嬩竴骞� + if (nextmonth === 13) { + nextyear = parseInt(year) + 1; + nextmonth = 1; + } + // 璁$畻涓嬩竴骞翠笅涓�涓湀鏈夊灏戝ぉ + let nextday = new Date(nextyear, nextmonth, 0); + let nextdays = nextday.getDate(); + if (day > nextdays) { + day = nextdays; + if (day < 10) { + day = '0' + day; + } + } + if (nextmonth < 10) { + nextmonth = '0' + nextmonth; + } + let nexttime = nextyear + '-' + nextmonth + '-' + day; + + // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔� + this.calendarValue = new Date(nexttime); + }, + prevMonth(time) { + let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤 + let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤 + let day = this.calendarValue.getDate();// 褰撳墠澶╂暟 + let prevyear = year; + let prevmonth = parseInt(month) - 1; + // 鍒ゆ柇涓婁竴鏈堟槸鍚︿細杩涘叆涓婁竴骞� + if (prevmonth === 0) { + prevyear = parseInt(year) - 1; + prevmonth = 12; + } + // 璁$畻涓婁竴骞翠笂涓�涓湀鏈夊灏戝ぉ + let prevday = new Date(prevyear, prevmonth, 0); + let prevdays = prevday.getDate(); + if (day > prevdays) { + day = prevdays; + if (day < 10) { + day = '0' + day; + } + } + if (prevmonth < 10) { + prevmonth = '0' + prevmonth; + } + let prevtime = prevyear + '-' + prevmonth + '-' + day; + + // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔� + this.calendarValue = new Date(prevtime); + }, } } </script> -- Gitblit v1.9.3