From 281517a6324a6b3f695ea6229b14867307f415ce Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 20 八月 2025 13:18:14 +0800
Subject: [PATCH] 修改 条码生成 源单号 添加 制单人 修改打印功能
---
manifest.json | 4
pages/shouliaotongzhi/table_son.vue | 384 ++++++++++++++++++++++++++++++++++++------------------
2 files changed, 254 insertions(+), 134 deletions(-)
diff --git a/manifest.json b/manifest.json
index 9d59a2c..02137ba 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "鏅轰簯LMES",
"appid" : "__UNI__B002F49",
"description" : "",
- "versionName" : "1.0.56",
- "versionCode" : 156,
+ "versionName" : "1.0.60",
+ "versionCode" : 160,
"transformPx" : false,
/* 5+App鐗规湁鐩稿叧 */
"app-plus" : {
diff --git a/pages/shouliaotongzhi/table_son.vue b/pages/shouliaotongzhi/table_son.vue
index 80a8bb2..c2b4719 100644
--- a/pages/shouliaotongzhi/table_son.vue
+++ b/pages/shouliaotongzhi/table_son.vue
@@ -4,59 +4,62 @@
<view class="form-item">
<view class="title">鏀舵枡鍗曞彿:</view>
<view class="righton">
- <input v-model="baseInfo.HBillNo" disabled/>
+ <input v-model="baseInfo.HBillNo" disabled />
</view>
</view>
<view class="form-item">
<view class="title">閲囪喘鍗曞彿:</view>
<view class="righton">
- <input v-model="baseInfo.HOrderBillNo" disabled/>
+ <input v-model="baseInfo.HOrderBillNo" disabled />
</view>
</view>
<view class="form-item">
<view class="title">鐗╂枡缂栫爜:</view>
<view class="righton">
- <input v-model="baseInfo.HMaterNumber" disabled/>
+ <input v-model="baseInfo.HMaterNumber" disabled />
</view>
</view>
<view class="form-item">
<view class="title">鐗╂枡鍚嶇О:</view>
<view class="righton">
- <input v-model="baseInfo.HMaterName" disabled/>
+ <input v-model="baseInfo.HMaterName" disabled />
</view>
</view>
<view class="form-item">
<view class="title">瑙勬牸鍨嬪彿:</view>
<view class="righton">
- <input v-model="baseInfo.HMaterModel" disabled/>
+ <input v-model="baseInfo.HMaterModel" disabled />
</view>
</view>
<view class="form-item">
<view class="title">鏀舵枡鏁伴噺:</view>
<view class="righton">
- <input v-model="baseInfo.HQty" disabled/>
+ <input v-model="baseInfo.HQty" disabled />
</view>
</view>
<view class="form-item">
<view class="title">姣忕鏁伴噺:</view>
<view class="righton">
- <input disabled="" v-model="baseInfo.HMinQty" type="number" placeholder="璇疯緭鍏ユ暟閲�" @confirm="getNum()" @blur="getNum()"/>
+ <input disabled="" v-model="baseInfo.HMinQty" type="number" placeholder="璇疯緭鍏ユ暟閲�" @confirm="getNum()"
+ @blur="getNum()" />
</view>
</view>
<view class="form-item">
<view class="title">绠辨暟:</view>
<view class="righton">
- <input v-model="baseInfo.HBQty" disabled/>
+ <input v-model="baseInfo.HBQty" disabled />
</view>
</view>
<view class="buttons">
<button class="btn-b" size="mini" type="default" @tap="getList()">鏉$爜鐢熸垚</button>
<!-- <button class="btn-c" size="mini" type="default" @tap="searchLabelPrinter()">鎼滅储鎵撳嵃鏈�</button> -->
+ <button :class="codeGenComplete == false? 'btn-a': 'btn-c'" :disabled="codeGenComplete == false" size="mini" type="default"
+ @tap="search">鎵撳嵃</button>
</view>
</view>
-
+
<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
-
+
<view class="list" v-for="(item,index) in listData" :key="index">
<uni-card :title="item.鐗╂枡浠g爜" :extra="'No. ' + Number(index+1)" style="margin: 10px;">
<view class="card-detail">
@@ -73,19 +76,22 @@
<text>鏉$爜缂栧彿锛�</text>{{item.鏉$爜缂栧彿}}
</view>
</view>
- <view class="detail" style="text-align: right;" @tap.stop="labelPrint(item)"><text style="color: orange;">鐐瑰嚮鎵撳嵃鏉$爜</text></view>
+<!-- <view class="detail" style="text-align: right;" @tap.stop="labelPrint(item)"><text
+ style="color: orange;">鐐瑰嚮鎵撳嵃鏉$爜</text></view> -->
</uni-card>
</view>
-
+
<view class="over" v-if="listData.length == 0">鏆傛棤鏁版嵁</view>
<view class="over" v-if="listData.length != 0">宸插埌搴�</view>
-
- <labelPrinterComponentVue ref="labelPrinter" :printInfo="printInfo" :printMode="'cpcl'"></labelPrinterComponentVue>
-
+
+ <labelPrinterComponentVue ref="labelPrinter" :printInfo="printInfo" :printMode="'cpcl'">
+ </labelPrinterComponentVue>
+
<!-- 鎵撳嵃鏈洪�夋嫨鍒楄〃 -->
<view v-if="maskShow" class="uni-mask" @tap="maskShow = false">
<scroll-view class="uni-scroll_box" scroll-y>
- <view class="uni-list-box" v-for="(device, index) in discoveredDevices" :key="index" @tap="connectBT(device)">
+ <view class="uni-list-box" v-for="(device, index) in discoveredDevices" :key="index"
+ @tap="connectBT(device)">
<view class="uni-list_name">鍚嶇О锛歿{ device.name }}</view>
<view class="uni-list_item">{{ connectedDeviceId === device.address?'宸茶繛鎺�':'鏈繛鎺�' }}</view>
</view>
@@ -95,7 +101,9 @@
</template>
<script>
- import { getUserInfo } from "@/utils/auth.js";
+ import {
+ getUserInfo
+ } from "@/utils/auth.js";
import labelPrinterComponentVue from "@/components/labelPrinterComponent/labelPrinterComponent.vue"
// import bluetoothTool from '@/plugins/BluetoothTool.js'
// import permission from '@/plugins/permission.js'
@@ -133,26 +141,29 @@
// EImage
// } from "@psdk/esc";
export default {
- components: {labelPrinterComponentVue},
- data() {
- return {
- userInfo:getUserInfo(),
- serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
- OperationType:1,//鏁版嵁绫诲瀷 1娣诲姞 淇濆瓨 2澶嶅埗 3 缂栬緫
- linterid:'',
- HEntryID:'',
- baseInfo:{
- HMainID:'',
- HSubID:'',
- HBillNo:'',
- HMaterID:'',
- HMaterNumber:'',
- HMaterName:'',
- HMaterModel:'',
- HQty:'',
+ components: {
+ labelPrinterComponentVue
+ },
+ data() {
+ return {
+ codeGenComplete: false,
+ userInfo: getUserInfo(),
+ serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+ OperationType: 1, //鏁版嵁绫诲瀷 1娣诲姞 淇濆瓨 2澶嶅埗 3 缂栬緫
+ linterid: '',
+ HEntryID: '',
+ baseInfo: {
+ HMainID: '',
+ HSubID: '',
+ HBillNo: '',
+ HMaterID: '',
+ HMaterNumber: '',
+ HMaterName: '',
+ HMaterModel: '',
+ HQty: '',
HMinQty: '',
- HSupID:'',
- SHdate:'',
+ HSupID: '',
+ SHdate: '',
HMTONo: '',
HBatchNo: '',
HBQty: '',
@@ -165,23 +176,27 @@
HMTONo: '',
HDate: '',
HSourceBillNo: '',
+ HMaker: getUserInfo()["Czymc"],
+ HCoilNO: '',
+ HFurnaceNO: '',
+ HFactory: '',
},
- sWhere:'',
- listData:[],
- printItem:'',
-
- printInfo:"",
- maskShow:false,
+ sWhere: '',
+ listData: [],
+ printItem: '',
+
+ printInfo: "",
+ maskShow: false,
discoveredDevices: [], // 鏌ヨ鍒扮殑璁惧
connectedDeviceId: ""
- }
- },
+ }
+ },
onLoad(e) {
this.OperationType = e.OperationType
this.linterid = e.linterid
this.HEntryID = e.hsubid
this.getData()
-
+
// //#ifdef APP-PLUS
// // 钃濈墮
// bluetoothTool.init({
@@ -207,29 +222,32 @@
// });
// //#endif
},
- methods: {
- getData(){
+ methods: {
+ getData() {
uni.request({
- url: this.serverUrl + '/Cg_POInStockBill/loadCg_POInStockBill_Push',
- data: { HInterID: this.linterid, HSubID: this.HEntryID },
- success: (res) => {
- if(res.data.count == 1){
+ url: this.serverUrl + '/Cg_POInStockBill/loadCg_POInStockBill_Push',
+ data: {
+ HInterID: this.linterid,
+ HSubID: this.HEntryID
+ },
+ success: (res) => {
+ if (res.data.count == 1) {
var data = res.data.data
console.log(data)
this.baseInfo = {
- HMainID:data[0].linterid,
- HSubID:data[0].hsubid,
- HBillNo:data[0].鍗曟嵁鍙�,
- HSourceBillNo: data[0].閲囪喘璁㈠崟鍙�,
+ HMainID: data[0].linterid,
+ HSubID: data[0].hsubid,
+ HBillNo: data[0].鍗曟嵁鍙�,
+ HSourceBillNo: data[0].鍗曟嵁鍙�,
HOrderBillNo: data[0].閲囪喘璁㈠崟鍙�,
- HMaterID:data[0].HMaterID,
- HMaterNumber:data[0].鐗╂枡浠g爜,
- HMaterName:data[0].鐗╂枡鍚嶇О,
- HMaterModel:data[0].瑙勬牸鍨嬪彿,
- HQty:data[0].鏁伴噺,
+ HMaterID: data[0].HMaterID,
+ HMaterNumber: data[0].鐗╂枡浠g爜,
+ HMaterName: data[0].鐗╂枡鍚嶇О,
+ HMaterModel: data[0].瑙勬牸鍨嬪彿,
+ HQty: data[0].鏁伴噺,
HMinQty: data[0].鏁伴噺,
- HSupID:data[0].HSupID,
- SHdate:data[0].瀹℃牳鏃ユ湡,
+ HSupID: data[0].HSupID,
+ SHdate: data[0].瀹℃牳鏃ユ湡,
HBatchNo: data[0]['鎵瑰彿'],
HSupID: data[0]['HSupID'],
HSupNumber: data[0]['渚涘簲鍟嗕唬鐮�'],
@@ -240,39 +258,42 @@
HMTONo: data[0]['璁″垝璺熻釜鍙�'].trim(),
HDate: data[0]['鏃ユ湡'],
}
-
+
this.baseInfo.HBQty = Math.ceil(this.baseInfo.HQty / this.baseInfo.HMinQty)
- }else{
+
+ this.listData = data
+ } else {
uni.showToast({
- title:res.data.Message,
- icon:'none'
+ title: res.data.Message,
+ icon: 'none'
})
}
},
fail: (res) => {
console.log(res);
uni.showToast({
- title:'鎺ュ彛璇锋眰澶辫触',
- icon:'none'
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
})
},
- });
+ });
},
- getNum(e){
- if(this.baseInfo.HMinQty && this.baseInfo.HMinQty>0){
- var a = Number(this.baseInfo.HQty)/Number(this.baseInfo.HMinQty)
- this.baseInfo.HBQty = Math.ceil(Number(this.baseInfo.HQty)/Number(this.baseInfo.HMinQty))
+ getNum(e) {
+ if (this.baseInfo.HMinQty && this.baseInfo.HMinQty > 0) {
+ var a = Number(this.baseInfo.HQty) / Number(this.baseInfo.HMinQty)
+ this.baseInfo.HBQty = Math.ceil(Number(this.baseInfo.HQty) / Number(this.baseInfo.HMinQty))
this.$forceUpdate()
- }else{
+ } else {
uni.showToast({
- title:'璇疯緭鍏ュぇ浜�0鐨勫悎鐞嗘暟閲�',
- icon:"none"
+ title: '璇疯緭鍏ュぇ浜�0鐨勫悎鐞嗘暟閲�',
+ icon: "none"
})
}
},
- getList(){
+ getList() {
let HBarCodeNoStr =
`${this.baseInfo.HBillNo}@${this.baseInfo.HSubID}@${this.baseInfo.HMaterNumber || ''}@${this.baseInfo.HMTONo || ''}@${this.baseInfo.HQty || 0}`
+
var sMain = []
sMain[0] = this.baseInfo
var sMainStr = JSON.stringify(sMain);
@@ -285,36 +306,40 @@
//鑾峰彇閫夋嫨鐨勬潯鐮佺被鍨�
var HSelectBarCodeType = "鍝佺鏉$爜";
//鑾峰彇褰撳墠鐧诲綍浜哄憳
- var UserName = uni.getStorageSync('HUserName');
+ var UserName = uni.getStorageSync('HUserName');
let sMainSub = sMainStr + ';' + HOrgType + ';' + HSourceBillType + ';' + HSelectBarCodeType + ';' +
- CampanyName + ';' + UserName + ';' + HBarCodeNoStr +'; ' + '; ' + '; ';
+ CampanyName + ';' + UserName + ';' + HBarCodeNoStr + '; ' + '; ' + '; ';
uni.request({
- url: this.serverUrl + '/Sc_BarCode/SaveBarCode_NoGenerate',
- method:'POST',
- data: { msg: sMainSub, CampanyName: CampanyName },
- success: (res) => {
- if(res.data.count == 1){
- this.listData = res.data.data
+ url: this.serverUrl + '/Sc_BarCode/SaveBarCode_NoGenerate',
+ method: 'POST',
+ data: {
+ msg: sMainSub,
+ CampanyName: CampanyName
+ },
+ success: (res) => {
+ if (res.data.count == 1) {
+ this.codeGenComplete = true
console.log(this.listData)
+ this.listData[0]['鏉$爜缂栧彿'] = HBarCodeNoStr
uni.showToast({
- title:res.data.Message,
- icon:'none'
+ title: res.data.Message,
+ icon: 'none'
})
- }else{
+ } else {
uni.showToast({
- title:res.data.Message,
- icon:'none'
+ title: res.data.Message,
+ icon: 'none'
})
}
},
fail: (res) => {
console.log(res);
uni.showToast({
- title:'鎺ュ彛璇锋眰澶辫触',
- icon:'none'
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
})
},
- });
+ });
},
async checkPermission() { // 鎺堟潈
try {
@@ -334,6 +359,82 @@
}
} catch (err) {
console.log("鎺堟潈澶辫触锛�", err);
+ }
+ },
+ async search() {
+ // #ifndef APP-PLUS
+ uni.showModal({
+ content: "涓嶆敮鎸佽摑鐗欐墦鍗板姛鑳斤紝璇峰垏鎹㈡墜鏈�...",
+ })
+ return
+ // #endif
+ if (this.$printer.isConnected() === false) {
+ this.$refs.labelPrinter.openPopup()
+ } else {
+ let printContent = []
+ let printInfoBuffer = []
+ let count = 0
+ for (let listOne of this.listData) {
+ let HBarCodeNoStr =
+ `${this.baseInfo.HBillNo}@${this.baseInfo.HSubID}@${this.baseInfo.HMaterNumber || ''}@${this.baseInfo.HMTONo || ''}@${this.baseInfo.HQty || 0}`
+ let pcsInfo = this.baseInfo.HPcsName ? '(' + this.baseInfo.HPcsName + ')' : ''
+
+ printContent.push(`! 0 200 200 400 1
+PAGE-WIDTH 608
+SETQRVER 3
+B QR 475 15 Q 0 U 3
+LA,${HBarCodeNoStr}
+ENDQR
+T 24 0 0 30 渚涘簲鍟�: ${this.baseInfo.HSupName}
+T 55 0 0 55 (Supplier)
+T 24 0 0 75 渚涘簲鍟嗘枡鍙�: ${this.baseInfo.HMaterNumber}
+T 55 0 0 100 (Supplier Sku No.)
+T 24 0 0 120 鐗╂枡鍚嶇О: ${this.baseInfo.HMaterName}
+T 55 0 0 145 (Material Code)
+T 24 0 0 165 娆惧彿: ${this.baseInfo.HCoilNO || ''}
+T 55 0 0 190 (Style No.)
+T 24 0 300 165 瀹㈡埛缂栧彿: ${this.baseInfo.HFactory || ''}
+T 55 0 300 190 (Consumer No.)
+T 24 0 0 210 鍒嗙粍: ${this.baseInfo.HFurnaceNO || ''}
+T 55 0 0 235 (Group)
+T 24 0 300 210 瑙勬牸: ${this.baseInfo.HMaterModel}
+T 55 0 300 235 (SKU NO.)
+T 24 0 0 255 鏁伴噺: ${ parseFloat(this.baseInfo.HQty || 0).toFixed(0) } ${pcsInfo}
+T 55 0 0 280 (Quantity)
+T 24 0 300 255 鏃ユ湡: ${this.baseInfo.HDate || ''}
+T 55 0 300 280 (Date)
+T 24 0 0 300 妫�楠屽憳:
+T 55 0 0 325 (QC)
+T 24 0 300 300 閲囪喘鍗曞彿: ${this.baseInfo.HOrderBillNo || ''}
+T 55 0 300 325 (Purchase Order No.)
+T 24 0 0 345 妫�楠岀粨鏋�:
+T 55 0 0 370 (Inspection status)
+BOX 240 345 260 365 4
+T 24 0 270 345 鍚堟牸
+T 55 0 250 370 (Pass)
+BOX 340 345 360 365 4
+T 24 0 370 345 涓嶅悎鏍�
+T 55 0 370 370 (Fail)
+BOX 460 345 480 365 4
+T 24 0 490 345 鐗归噰
+T 55 0 440 370 (Spec. accepted)
+FORM
+PRINT`)
+ count++;
+ if (count == 10) {
+ printInfoBuffer.push(printContent.join("\r\n"))
+ count = 0
+ printContent = []
+ }
+ }
+ printInfoBuffer.push(printContent.join("\r\n"))
+ this.printInfo = JSON.stringify(printInfoBuffer)
+
+ printInfoBuffer = []
+
+ await this.$nextTick(() => {
+ this.$refs.labelPrinter.execPrint()
+ })
}
},
async searchLabelPrinter() {
@@ -360,7 +461,7 @@
}
}
})
-
+
},
onDevice(device) {
console.log("鐩戝惉瀵绘壘鍒版柊璁惧鐨勪簨浠�---------------")
@@ -426,35 +527,35 @@
PAGE-WIDTH 608
SETQRVER 3
B QR 450 30 M 2 U 5
- LA,`+ this.printItem.鏉$爜缂栧彿 + `
+ LA,` + this.printItem.鏉$爜缂栧彿 + `
ENDQR
- T 24 0 24 40 瀹℃牳鏃ユ湡:`+ this.baseInfo.SHdate +`
- T 24 0 24 80 鐗╂枡缂栫爜:`+ this.printItem.鐗╂枡浠g爜 +`
- T 24 0 24 120 鐗╂枡鍚嶇О:`+ this.printItem.鐗╂枡鍚嶇О +`
- T 24 0 24 160 瑙勬牸鍨嬪彿:`+ this.printItem.瑙勬牸鍨嬪彿 +`
- T 24 0 24 200 鐗╂枡鏁伴噺:`+ this.baseInfo.HQty +`
- T 24 0 24 240 鏉$爜鏁伴噺:`+ this.printItem.鏁伴噺 +`
+ T 24 0 24 40 瀹℃牳鏃ユ湡:` + this.baseInfo.SHdate + `
+ T 24 0 24 80 鐗╂枡缂栫爜:` + this.printItem.鐗╂枡浠g爜 + `
+ T 24 0 24 120 鐗╂枡鍚嶇О:` + this.printItem.鐗╂枡鍚嶇О + `
+ T 24 0 24 160 瑙勬牸鍨嬪彿:` + this.printItem.瑙勬牸鍨嬪彿 + `
+ T 24 0 24 200 鐗╂枡鏁伴噺:` + this.baseInfo.HQty + `
+ T 24 0 24 240 鏉$爜鏁伴噺:` + this.printItem.鏁伴噺 + `
FORM
PRINT`
await this.$nextTick(() => {
this.$refs.labelPrinter.execPrint()
})
}
-
+
// // 妫�鏌ヨ摑鐗欒繛鎺�
// let btStatus = bluetoothTool.getBluetoothStatus()
// if(btStatus != true) {
// this.showToast("钃濈墮杩炴帴寮傚父!")
// return
// }
-
+
// // 妫�鏌ユ槸鍚﹁繛鎺ヨ澶�
// let pairedDevices = bluetoothTool.getPairedDevices()
// if(pairedDevices.length < 1) {
// this.showToast("鏃犺澶囪繛鎺�!")
// return
// }
-
+
// // 妫�鏌ヨ〃鍗曢」鏄惁鏈夌┖鍊�
// for (var key in this.hform) {
// if (this.hform[key] == "") {
@@ -566,103 +667,119 @@
// title: result ? '鍙戦�佹垚鍔燂紒' : '鍙戦�佸け璐�...'
// })
// },
- }
+ }
}
</script>
<style lang="scss" scoped>
- .form{
+ .form {
width: 640rpx;
margin: 20rpx auto;
}
- .form-item{
+
+ .form-item {
display: flex;
align-items: center;
font-size: 28rpx;
padding: 6rpx 0;
- .title{
+
+ .title {
width: 180rpx;
- text{
+
+ text {
color: red;
font-weight: bold;
}
}
- .right{
+
+ .right {
width: 450rpx;
border-radius: 22rpx;
border: 1px solid #acacac;
}
- .righton{
+
+ .righton {
width: 450rpx;
border-radius: 22rpx;
border: 1px solid #e4e4e4;
background-color: #e4e4e4;
}
- input{
+
+ input {
width: 100%;
padding: 8rpx 20rpx;
font-size: 30rpx;
}
}
- .buttons{
+
+ .buttons {
width: 100%;
display: flex;
justify-content: center;
margin-top: 20rpx;
- button{
+
+ button {
border-radius: 50rpx;
width: 220rpx;
height: 66rpx;
line-height: 66rpx;
font-size: 28rpx;
}
- .btn-a{
+
+ .btn-a {
background-color: #acacac;
color: #fff;
}
- .btn-b{
+
+ .btn-b {
background-color: #41a863;
color: #fff;
}
- .btn-c{
+
+ .btn-c {
background-color: #3a78ff;
color: #fff;
}
}
-
- .list{
+
+ .list {
width: 100%;
- .card-detail{
+
+ .card-detail {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
line-height: 120%;
- .detail{
+
+ .detail {
// width: 50%;
font-size: 26rpx;
margin-bottom: 12rpx;
color: #555;
margin-right: 20rpx;
- text{
+
+ text {
color: #999;
font-size: 26rpx;
}
}
}
- .more{
+
+ .more {
color: #888;
font-size: 24rpx;
display: flex;
border-top: 1px solid #eee;
padding-top: 20rpx;
- .part{
+
+ .part {
width: 50%;
text-align: center;
}
}
}
-
+
.uni-mask {
position: fixed;
top: 0;
@@ -676,46 +793,49 @@
padding: 0 30rpx;
box-sizing: border-box;
}
-
+
.uni-scroll_box {
height: 60%;
background: #fff;
border-radius: 20rpx;
}
+
.uni-list-box {
margin: 0 20rpx;
padding: 15rpx 0;
border-bottom: 1px #f5f5f5 solid;
box-sizing: border-box;
}
+
.uni-list:last-child {
border: none;
}
+
.uni-list_name {
font-size: 30rpx;
color: #333;
}
+
.uni-list_item {
font-size: 24rpx;
color: #555;
line-height: 1.5;
}
-
+
.operation-zone {
display: flex;
justify-content: space-around;
margin-top: 10rpx;
-
+
.op1 {
border: 1px solid #41a863;
color: #41a863;
}
-
+
.op4 {
border: 1px solid #da0000;
color: #da0000;
}
-
- }
-</style>
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.1