From cb2a01ee7dea28a2661720060b03c41dc372acb5 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 01 八月 2025 11:53:16 +0800
Subject: [PATCH] 完善串口处理数据,数据选择
---
src/views/structural/capabilityAndLaboratory/laboratory/index.vue | 435 ++++++++++++++++++++++++++++++------------------------
1 files changed, 240 insertions(+), 195 deletions(-)
diff --git a/src/views/structural/capabilityAndLaboratory/laboratory/index.vue b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
index c91342e..9a14304 100644
--- a/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
@@ -3,15 +3,16 @@
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="璧勮川鍚嶇О" prop="name">
- <el-select v-model="queryParams.name" placeholder="閫夋嫨璧勮川鍚嶇О" size="small" @change="refreshTable()">
- <el-option v-for="dict in dict.type.qualification_name" :key="dict.value" :label="dict.label" :value="dict.value">
+ <el-select v-model="queryParams.name" placeholder="閫夋嫨璧勮川鍚嶇О" size="small" @change="refreshTable(), list = []">
+ <el-option v-for="dict in dict.type.cnas_method_qualification" :key="dict.value" :label="dict.label"
+ :value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button>
+ <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh">閲嶇疆</el-button>
</el-form-item>
</el-form>
</div>
@@ -23,57 +24,77 @@
<el-radio-button :label="1">璧勮川鎬昏</el-radio-button>
</el-radio-group>
</el-col>
- <el-col :span="12" style="text-align: right;" v-if="radio===0">
+ <el-col :span="12" style="text-align: right" v-if="radio === 0">
<el-button size="small" type="primary" @click="openAdd">璧勮川鏇存柊</el-button>
<el-button size="small" icon="el-icon-delete" @click="handleDel">鍒犻櫎</el-button>
</el-col>
</el-row>
</div>
- <div v-if="radio===0">
- <lims-table :tableData="tableData" :column="column"
- :isSelection="true" :handleSelectionChange="handleSelectionChange"
- :page="page" :tableLoading="tableLoading"></lims-table>
+ <div v-if="radio === 0">
+ <lims-table :tableData="tableData" :column="column" :isSelection="true"
+ :handleSelectionChange="handleSelectionChange" @pagination="pagination" :height="'calc(100vh - 300px)'"
+ :page="page" :tableLoading="tableLoading"></lims-table>
</div>
- <div class="table" v-if="radio===1" v-loading="pageLoading" @scroll="scrollFn">
+ <div class="table" v-if="radio === 1" v-loading="pageLoading" @scroll="scrollFn">
<el-row :gutter="16">
- <el-col :span="6" v-for="(m,i) in list" :key="i" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" style="margin-bottom: 16px;">
+ <el-col :span="8" v-for="(m, i) in list" :key="i" :xs="24" :sm="12" :md="8" :lg="8" :xl="6"
+ style="margin-bottom: 16px">
<div class="table-item">
- <el-image style="width: 102px;height: 102px;margin-right: 20px;border-radius: 16px;" :src="process.env.VUE_APP_BASE_API+'/img/'+m.imageUrl">
- <div slot="error" class="image-error" style="width: 100px;
- height: 100px;
+ <el-image style="
+ width: 102px;
+ height: 102px;
+ margin-right: 20px;
border-radius: 16px;
- display: flex;
- align-items: center;
- justify-content: center;
- border: 1px solid #EEEEEE;">
- <i class="el-icon-picture-outline" style="font-size:30px;color:#666666;"></i>
+ " :src="javaApi + '/img/' + m.imageUrl">
+ <div slot="error" class="image-error" style="
+ width: 100px;
+ height: 100px;
+ border-radius: 16px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #eeeeee;
+ ">
+ <i class="el-icon-picture-outline" style="font-size: 30px; color: #666666"></i>
</div>
</el-image>
- <div class="table-item-right" style="flex: 1;font-size: 12px;color: #666666;">
- <p style="line-height: 26px;">璧勮川鍚嶇О锛�<span style="color: #3A7BFA;">{{ m.name }}</span></p>
- <p style="line-height: 26px;">棰佸彂鏃堕棿锛歿{m.recentlyTime}}</p>
- <p style="line-height: 26px;">鍒版湡鏃堕棿锛歿{m.expireTime}}</p>
+ <div class="table-item-right" style="flex: 1; font-size: 12px; color: #666666">
+ <p style="line-height: 26px">
+ 璧勮川鍚嶇О锛�<span style="color: #3a7bfa">{{ m.name }}</span>
+ </p>
+ <p style="line-height: 26px">棰佸彂鏃堕棿锛歿{ m.recentlyTime }}</p>
+ <p style="line-height: 26px">鍒版湡鏃堕棿锛歿{ m.expireTime }}</p>
<p>
<span>鐘舵�侊細</span>
- <el-tag :type="m.state===0?'danger':'success'" size="small">{{ m.state===0?'澶辨晥':'鏈夋晥' }}</el-tag>
+ <el-tag :type="m.state === 0 ? 'danger' : 'success'" size="small">{{ m.state === 0 ? "澶辨晥" : "鏈夋晥"
+ }}</el-tag>
</p>
</div>
</div>
</el-col>
</el-row>
- <div v-if="list.length<1&&!pageLoading&&!isLoding" style="color:#909399;font-size:14px;text-align: center;margin-top:200px" >鏆傛棤鏁版嵁</div>
- <div v-if="list.length>0">
+ <div v-if="list.length < 1 && !pageLoading && !isLoding" style="
+ color: #909399;
+ font-size: 14px;
+ text-align: center;
+ margin-top: 200px;
+ ">
+ 鏆傛棤鏁版嵁
+ </div>
+ <div v-if="list.length > 0">
<el-button v-if="isLoding" type="text" style="display: flex; margin: 0 auto; color: #909399">
- <i class="el-icon-loading" style="font-size:20px"></i>
+ <i class="el-icon-loading" style="font-size: 20px"></i>
</el-button>
- <el-button type="text" v-if="finishLoding" style="display: flex; margin: 0 auto; color: #909399">宸茬粡娌℃湁鏇村鍟</el-button>
+ <el-button type="text" v-if="finishLoding"
+ style="display: flex; margin: 0 auto; color: #909399">宸茬粡娌℃湁鏇村鍟</el-button>
</div>
</div>
<el-dialog title="璧勮川鏇存柊" :visible.sync="qualificationsConnectVisible" width="400px">
<el-form ref="formDataRef" :model="formData" label-position="right" :rules="formDataRules" label-width="78px">
<el-form-item label="璧勮川鍚嶇О" prop="name">
- <el-select v-model="formData.name" placeholder="璇烽�夋嫨" style="width: 100%;" size="small" clearable>
- <el-option v-for="dict in dict.type.qualification_name" :key="dict.value" :label="dict.label" :value="dict.value">
+ <el-select v-model="formData.name" placeholder="璇烽�夋嫨" style="width: 100%" size="small" clearable>
+ <el-option v-for="dict in dict.type.cnas_method_qualification" :key="dict.value" :label="dict.label"
+ :value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
@@ -88,280 +109,287 @@
<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="formData.explanation"></el-input>
</el-form-item>
<el-form-item label="棰佸彂鏃堕棿" prop="dateOfIssuance">
- <el-date-picker style="width:100%" v-model="formData.dateOfIssuance"
- type="datetime"
- size="small"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- clearable
- placeholder="閫夋嫨鏃ユ湡">
+ <el-date-picker style="width: 100%" v-model="formData.dateOfIssuance" type="datetime" size="small"
+ format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</el-form-item>
<el-form-item label="鍒版湡鏃堕棿" prop="expireTime">
- <el-date-picker style="width:100%" v-model="formData.expireTime"
- type="datetime"
- size="small"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- clearable
- placeholder="閫夋嫨鏃ユ湡">
+ <el-date-picker style="width: 100%" v-model="formData.expireTime" type="datetime" size="small"
+ format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</el-form-item>
<el-form-item label="璧勮川鍥剧墖">
- <el-upload
- ref="upload"
- :action="uploadAction"
- :on-success="m=>handleSuccessUpImg(m,'imageUrl')"
- accept='image/jpg,image/jpeg,image/png'
- :multiple="false"
- :limit="1"
- :headers="headers" :on-change="beforeUpload"
- :on-error="onError">
+ <el-upload ref="upload" :action="uploadAction" :on-success="(m) => handleSuccessUpImg(m, 'imageUrl')"
+ accept="image/jpg,image/jpeg,image/png" :multiple="false" :limit="1" :headers="headers"
+ :on-change="beforeUpload" :on-error="onError">
<el-button slot="trigger" size="small" type="primary">閫夊彇鍥剧墖</el-button>
</el-upload>
</el-form-item>
<el-form-item label="璧勮川闄勪欢">
- <el-upload
- ref="upload1"
- :action="uploadAction"
- :on-success="m=>handleSuccessUpImg(m,'fileUrl')"
- accept='image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx'
- :headers="headers" :multiple="false" :limit="1" :on-change="beforeUpload1"
- :on-error="onError1">
+ <el-upload ref="upload1" :action="uploadAction" :on-success="(m) => handleSuccessUpImg(m, 'fileUrl')"
+ accept="image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx" :headers="headers" :multiple="false"
+ :limit="1" :on-change="beforeUpload1" :on-error="onError1">
<el-button slot="trigger" size="small" type="primary">閫夊彇鏂囦欢</el-button>
</el-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
- <el-button @click="qualificationsConnectVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="confirmQualifications" :loading="loading">纭� 瀹�</el-button>
- </span>
+ <el-button @click="qualificationsConnectVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmQualifications" :loading="loading">纭� 瀹�</el-button>
+ </span>
</el-dialog>
</div>
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
-import {addCertificationDetail, delCertificationDetail, getCertificationDetail} from "@/api/structural/laboratory";
-import {getToken} from "@/utils/auth";
+import {
+ addCertificationDetail,
+ delCertificationDetail,
+ getCertificationDetail,
+} from "@/api/structural/laboratory";
+import { getToken } from "@/utils/auth";
export default {
+ name: 'Laboratory',
components: {
- limsTable
+ limsTable,
},
- dicts: ['qualification_name'],
+ dicts: ["cnas_method_qualification"],
data() {
return {
radio: 0,
queryParams: {
- name: ''
+ name: "",
},
tableData: [],
selection: [],
column: [
- {label: '璧勮川鍚嶇О', prop: 'name'},
- {label: '璧勮川缂栫爜', prop: 'code'},
- {label: '棰佸彂鏈烘瀯', prop: 'organization'},
- {label: '璧勮川璇存槑', prop: 'explanation'},
- {label: '棣栨棰佸彂鏃堕棿', prop: 'firstIssuanceDate'},
- {label: '鏈�杩戦鍙戞椂闂�', prop: 'latestIssuanceDate'},
- {label: '鍒版湡棰佸彂鏃堕棿', prop: 'expireTime'},
+ { label: "璧勮川鍚嶇О", prop: "name" },
+ { label: "璧勮川缂栫爜", prop: "code" },
+ { label: "棰佸彂鏈烘瀯", prop: "organization" },
+ { label: "璧勮川璇存槑", prop: "explanation" },
+ { label: "棣栨棰佸彂鏃堕棿", prop: "firstIssuanceDate" },
+ { label: "鏈�杩戦鍙戞椂闂�", prop: "latestIssuanceDate" },
+ { label: "鍒版湡棰佸彂鏃堕棿", prop: "expireTime" },
{
- dataType: 'action',
- fixed: 'right',
- label: '鎿嶄綔',
+ dataType: "action",
+ label: "鎿嶄綔",
operation: [
{
- name: '闄勪欢涓嬭浇',
- type: 'text',
+ name: "闄勪欢涓嬭浇",
+ type: "text",
clickFun: (row) => {
this.handleDownLoad(row);
},
},
- ]
- }
+ ],
+ },
],
page: {
- total:0,
- size:10,
- current:0
+ total: 0,
+ size: 10,
+ current: 1,
},
tableLoading: false,
- qualificationsList:[],
- qualificationsConnectVisible:false,
- formData:{},
+ qualificationsList: [],
+ qualificationsConnectVisible: false,
+ formData: {},
formDataRules: {
- name: [{ required: true, message: "璇峰~鍐欒祫璐ㄥ悕绉�", trigger: "change" }],
+ name: [
+ { required: true, message: "璇峰~鍐欒祫璐ㄥ悕绉�", trigger: "change" },
+ ],
code: [{ required: true, message: "璇峰~鍐欒祫璐ㄧ紪鐮�", trigger: "blur" }],
- organization: [{ required: true, message: "璇峰~鍐欓鍙戞満鏋�", trigger: "blur" }],
- dateOfIssuance: [{ required: true, message: "璇烽�夋嫨棰佸彂鏃堕棿", trigger: "change" }],
- expireTime: [{ required: true, message: "璇峰~鍐欏埌鏈熸椂闂�", trigger: "change" }],
+ organization: [
+ { required: true, message: "璇峰~鍐欓鍙戞満鏋�", trigger: "blur" },
+ ],
+ dateOfIssuance: [
+ { required: true, message: "璇烽�夋嫨棰佸彂鏃堕棿", trigger: "change" },
+ ],
+ expireTime: [
+ { required: true, message: "璇峰~鍐欏埌鏈熸椂闂�", trigger: "change" },
+ ],
},
- loading:false,
- pageLoading:false,
+ loading: false,
+ pageLoading: false,
isLoding: false, // 鍔犺浇涓紝loading鍥炬爣,榛樿涓簍rue
finishLoding: false, // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
currentPage: 1, // 褰撳墠椤�
pageSize: 16, // 涓�椤�16鏉�
- total: '',
- list:[],
- uploadAction: process.env.VUE_APP_BASE_API + '/deviceScope/uploadFile',
+ total: "",
+ list: [],
+ uploadAction: process.env.VUE_APP_BASE_API + "/deviceScope/uploadFile",
headers: { Authorization: "Bearer " + getToken() },
- }
+ };
},
mounted() {
- this.refreshTable()
+ this.refreshTable();
},
methods: {
selectorSwitch(radio) {
- if(radio === '1'){
+ if (radio === 1) {
this.list = [];
this.refreshTable();
}
},
refreshTable() {
- if (this.radio === '0') {
- getCertificationDetail({...this.page,...this.queryParams,}).then(res => {
- this.tableLoading = false
- if (res.code === 200) {
- this.tableData = res.data
- this.page.total = res.total
- }
- }).catch(err => {
- this.tableLoading = false
- })
+ if (this.radio === 0) {
+ this.tableLoading = true;
+ getCertificationDetail({ ...this.page, ...this.queryParams })
+ .then((res) => {
+ this.tableLoading = false;
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total;
+ }
+ })
+ .catch((err) => {
+ this.tableLoading = false;
+ });
} else {
- if(this.currentPage>1){
- this.isLoding = true
- }else{
- this.pageLoading = true
+ if (this.currentPage > 1) {
+ this.isLoding = true;
+ } else {
+ this.pageLoading = true;
}
- if(this.list.length===0){
- window.addEventListener("scroll", this.throttle(this.scrollFn, 20000));
+ if (this.list.length === 0) {
+ window.addEventListener(
+ "scroll",
+ this.throttle(this.scrollFn, 20000)
+ );
}
getCertificationDetail({
- page: {
- current: this.currentPage,
- size: this.pageSize
- },
- entity: this.queryParams
- }).then(res => {
- if(res.code===200){
- this.total = res.data.body.total
- let list = res.data.body.records;
- if(list.length===0){
- this.finishLoding = true;
- }else{
- if(list.length<this.pageSize){
+ current: this.currentPage,
+ size: this.pageSize,
+ ...this.queryParams,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.total = res.data.total;
+ let list = res.data.records;
+ if (list.length === 0) {
this.finishLoding = true;
- }
- this.list = this.list.concat(list)
- if(this.total===this.list.length){
- this.finishLoding = true;
+ } else {
+ if (list.length < this.pageSize) {
+ this.finishLoding = true;
+ }
+ this.list = this.list.concat(list);
+ if (this.total === this.list.length) {
+ this.finishLoding = true;
+ }
}
}
- }
- this.pageLoading = false
- this.isLoding = false;
- }).catch(err => {
- this.pageLoading = false
- this.isLoding = false;
- })
+ this.pageLoading = false;
+ this.isLoding = false;
+ })
+ .catch((err) => {
+ this.pageLoading = false;
+ this.isLoding = false;
+ });
}
},
// 閲嶇疆
refresh() {
- this.queryParams.name = ''
- this.page.size = 10
- this.page.current = 1
- this.refreshTable()
+ if (this.radio === 0) {
+ this.queryParams.name = "";
+ this.page.size = 10;
+ this.page.current = 1;
+ this.refreshTable();
+ } else {
+ this.finishLoding = false;
+ this.currentPage = 1;
+ this.list = [];
+ this.refreshTable();
+ }
},
// 琛ㄦ牸澶氶��
- handleSelectionChange (selection) {
+ handleSelectionChange(selection) {
this.selection = selection;
},
+ pagination(page) {
+ this.page.size = page.limit;
+ this.refreshTable();
+ },
// 璧勮川鏄庣粏鎵归噺鍒犻櫎
- handleDel(){
- if (this.selection.length===0) {
- this.$message.warning('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�')
- return
+ handleDel() {
+ if (this.selection.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
}
- const delIds = []
- this.selection.forEach(item => {
- delIds.push(item.id)
- })
- delCertificationDetail(delIds).then(res => {
- if (res.code !== 200) return
+ const delIds = [];
+ this.selection.forEach((item) => {
+ delIds.push(item.id);
+ });
+ delCertificationDetail({ ids: delIds.join(',') }).then((res) => {
+ if (res.code !== 200) return;
this.refreshTable();
- this.$message.success('鍒犻櫎鎴愬姛')
- })
+ this.$message.success("鍒犻櫎鎴愬姛");
+ });
},
// 璧勮川鏄庣粏闄勪欢涓嬭浇
- handleDownLoad(row){
- // let url = row.fileUrl;
- // const link = document.createElement('a');
- // link.href = this.javaApi + '/img/'+ url;
- // document.body.appendChild(link);
- // link.target = '_blank';
- // link.click();
- const url = process.env.VUE_APP_BASE_API + '/img/'+ row.fileUrl
- this.$download.saveAs(url, row.fileUrl);
+ handleDownLoad(row) {
+ if (!row.fileUrl) {
+ this.$message.warning('鏆傛棤闄勪欢')
+ return;
+ }
+ this.$download.saveAs(row.fileUrl, row.fileUrl);
},
openAdd() {
this.qualificationsConnectVisible = true;
- this.$nextTick(()=>{
- this.$refs.upload.clearFiles()
- this.$refs.upload1.clearFiles()
- })
+ this.$nextTick(() => {
+ this.$refs.upload.clearFiles();
+ this.$refs.upload1.clearFiles();
+ });
this.formData = {};
},
- handleSuccessUpImg(response,name) {
+ handleSuccessUpImg(response, name) {
if (response.code === 200) {
this.formData[name] = response.data.url;
}
},
beforeUpload(file) {
if (file.size > 1024 * 1024 * 10) {
- this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
- this.$refs.upload.clearFiles()
+ this.$message.error("涓婁紶鏂囦欢涓嶈秴杩�10M");
+ this.$refs.upload.clearFiles();
return false;
} else {
return true;
}
},
onError(err, file, fileList) {
- this.$message.error('涓婁紶澶辫触')
- this.$refs.upload.clearFiles()
+ this.$message.error("涓婁紶澶辫触");
+ this.$refs.upload.clearFiles();
},
beforeUpload1(file) {
if (file.size > 1024 * 1024 * 10) {
- this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
- this.$refs.upload1.clearFiles()
+ this.$message.error("涓婁紶鏂囦欢涓嶈秴杩�10M");
+ this.$refs.upload1.clearFiles();
return false;
} else {
return true;
}
},
onError1(err, file, fileList) {
- this.$message.error('涓婁紶澶辫触')
- this.$refs.upload1.clearFiles()
+ this.$message.error("涓婁紶澶辫触");
+ this.$refs.upload1.clearFiles();
},
- confirmQualifications(){
- this.$refs['formDataRef'].validate((valid) => {
+ confirmQualifications() {
+ this.$refs["formDataRef"].validate((valid) => {
if (valid) {
this.loading = true;
- addCertificationDetail({...this.formData}).then(res => {
- this.loading = false
- if (res.code === 201) return
- this.$message.success('宸叉彁浜�')
- this.refreshTable()
- this.resetForm("formDataRef");
- this.qualificationsConnectVisible = false
- }).catch(err => {
- this.loading = false
- })
+ addCertificationDetail({ ...this.formData })
+ .then((res) => {
+ this.loading = false;
+ this.$message.success("宸叉彁浜�");
+ this.refreshTable();
+ this.resetForm("formDataRef");
+ this.qualificationsConnectVisible = false;
+ })
+ .catch((err) => {
+ this.loading = false;
+ });
}
- })
+ });
},
// 婊氬姩瑙﹀簳鍔犺浇
scrollFn() {
@@ -369,8 +397,14 @@
let scrollHeight = document.body.scrollHeight; // 婊氬姩鏂囨。楂樺害
let scrollTop = parseInt(document.documentElement.scrollTop); // 宸叉粴鍔ㄧ殑楂樺害
let height = 300;
- if (scrollTop + clientHeight >= scrollHeight - height && scrollHeight !== 0) {
- if (!this.finishLoding&&this.currentPage*this.pageSize<this.total) {
+ if (
+ scrollTop + clientHeight >= scrollHeight - height &&
+ scrollHeight !== 0
+ ) {
+ if (
+ !this.finishLoding &&
+ this.currentPage * this.pageSize < this.total
+ ) {
this.currentPage = this.currentPage + 1;
this.refreshTable();
}
@@ -396,7 +430,7 @@
destroyed() {
window.removeEventListener("scroll", this.throttle(), false);
},
-}
+};
</script>
<style scoped>
@@ -405,4 +439,15 @@
line-height: 40px;
margin-bottom: 10px;
}
+
+.table-item {
+ border-radius: 8px 8px 8px 8px;
+ box-shadow: 4px 4px 8px 0px rgba(51, 51, 51, 0.04);
+ border: 1px solid #eeeeee;
+ box-sizing: border-box;
+ padding: 14px 12px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
</style>
--
Gitblit v1.9.3