From 4c3fd93d87daace1de00b129e642193fe863f4a2 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 11 三月 2025 09:23:29 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/views/CNAS/resourceDemand/device/component/borrow.vue | 651 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 651 insertions(+), 0 deletions(-)
diff --git a/src/views/CNAS/resourceDemand/device/component/borrow.vue b/src/views/CNAS/resourceDemand/device/component/borrow.vue
new file mode 100644
index 0000000..fd18aba
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/device/component/borrow.vue
@@ -0,0 +1,651 @@
+<!-- 璁惧鍊熺敤 -->
+<template>
+ <div>
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">娴佺▼缂栧彿锛�</div>
+ <div><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.processNumber"
+ @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ <div class="btns">
+ <el-button size="small" type="primary" @click="add">鏂板</el-button>
+ <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">瀵煎嚭</el-button>
+ </div>
+ </div>
+ <div class="tables" style="margin-top: 10px;">
+ <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'"
+ :page="page" @pagination="pagination"></lims-table>
+ <!-- <ValueTable ref="ValueTable" :url="$api.deviceBorrow.deviceBorrowPage"
+ :delUrl="$api.deviceBorrow.deleteDeviceBorrow" :componentData="componentData" :key="upIndex" /> -->
+ </div>
+ <el-dialog title="浠櫒璁惧棰�(鍊�)鐢ㄧ櫥璁�" top="5vh" :visible.sync="dialogVisible" width="60%">
+ <el-steps :active="currentStep" finish-status="success" align-center>
+ <el-step style="cursor:pointer" v-for="(v, i) in steps" :title="v" :key="i"
+ @click.native="choiceStep(i)"></el-step>
+ </el-steps>
+ <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+ <div v-show="currentStepClick === 0">
+ <el-card style="margin-top: 1em; height: 51vh; overflow-y: scroll;">
+ <!-- 鏂板璁惧浜嬭褰曞崱鐗� -->
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="缂栧彿锛�" prop="processNumber">
+ <el-input v-model="form.processNumber" size="small" :disabled="currentStep > 0"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璁惧鍚嶇О锛�">
+ <el-input v-model="form.deviceName" size="small" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="绠$悊缂栧彿锛�" prop="unifyNumber">
+ <el-input v-model="form.unifyNumber" size="small" :disabled="currentStep > 0"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍊熺敤浜猴細" prop="recipientUser">
+ <el-select v-model="form.recipientUser" filterable placeholder="璇烽�夋嫨" clearable size="small"
+ style="width: 100%;" :disabled="currentStep > 0">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍊熺敤浜鸿仈绯绘柟寮忥細" prop="borrowerContactInformation" label-width="150px">
+ <el-input v-model="form.borrowerContactInformation" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍊熺敤鏃ユ湡锛�" prop="recipientTime">
+ <el-date-picker v-model="form.recipientTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small"
+ format="yyyy-MM-dd" style="width: 100%" value-format="yyyy-MM-dd" :disabled="currentStep > 0">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍊熺敤鏃剁姸鎬侊細">
+ <el-radio-group v-model="form.recipientState" :disabled="currentStep !== 0">
+ <el-radio :label="0">鍚堟牸</el-radio>
+ <el-radio :label="1">缁翠慨</el-radio>
+ <el-radio :label="2">鍋滅敤</el-radio>
+ <el-radio :label="3">鎶ュ簾</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="鐩稿叧闄勪欢锛�" prop="fileName">
+ <el-input v-model="form.fileName" disabled size="small"
+ :style="`width: ${currentStep == 0 ? '88%' : '100%'};`">
+ <el-button slot="append" v-if="currentStep === 0" icon="el-icon-delete-solid"
+ @click="deleteFile"></el-button>
+ </el-input>
+ <el-upload ref="upload" style="float: right;" :action="action" :show-file-list="false"
+ :on-success="onSuccess" :disabled="currentStep !== 0" :headers="uploadHeader">
+ <el-button style="position: relative;top: -4px" class="uploadFile" slot="trigger" size="small"
+ type="primary" v-if="currentStep === 0">闄勪欢涓婁紶</el-button>
+ </el-upload>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬬幆鑺傝矗浠讳汉锛�" prop="nextUser">
+ <el-select v-model="form.nextUser" filterable placeholder="璇烽�夋嫨" clearable size="small"
+ style="width: 100%;" :disabled="currentStep !== 0">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-card>
+ <el-row style="margin-top: 1em;">
+ <el-col :span="4">
+ 鎿嶄綔浜猴細{{ form.submitOperationUser }}
+ </el-col>
+ <el-col :span="6">
+ 鏃ユ湡锛歿{ form.submitOperationTime }}
+ </el-col>
+ </el-row>
+ </div>
+ <div v-show="currentStepClick === 1">
+ <el-card style="margin-top: 1em; height: 51vh; overflow-y: scroll;">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="褰掕繕浜猴細" prop="rebackUser"
+ :rules="[{ required: currentStep === 1, message: '璇疯緭鍏ュ綊杩樹汉', trigger: 'change' }]">
+ <!-- <el-input v-model="form.rebackUser" size="small" :disabled="currentStep !== 1"></el-input> -->
+ <el-select v-model="form.rebackUser" filterable placeholder="璇烽�夋嫨" clearable size="small"
+ style="width: 50%;" :disabled="currentStep !== 1">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="褰掕繕鏃ユ湡锛�" prop="rebackTime"
+ :rules="[{ required: currentStep === 1, message: '璇烽�夋嫨褰掕繕鏃ユ湡', trigger: 'change' }]">
+ <el-date-picker v-model="form.rebackTime" :disabled="currentStep !== 1" type="date" placeholder="閫夋嫨鏃ユ湡"
+ size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎺ユ敹鐘跺喌锛�">
+ <el-radio-group v-model="form.receiveState" :disabled="currentStep !== 1">
+ <el-radio :label="0">鍚堟牸</el-radio>
+ <el-radio :label="1">缁翠慨</el-radio>
+ <el-radio :label="2">鍋滅敤</el-radio>
+ <el-radio :label="3">鎶ュ簾</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璁惧璐熻矗浜猴細" prop="deviceUser"
+ :rules="[{ required: currentStep === 1, message: '璇烽�夋嫨璁惧璐熻矗浜�', trigger: 'change' }]">
+ <!-- <el-input v-model="form.deviceUser" size="small" :disabled="currentStep !== 1"></el-input> -->
+ <el-select v-model="form.deviceUser" filterable placeholder="璇烽�夋嫨" clearable size="small"
+ style="width: 50%;" :disabled="currentStep !== 1">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囨敞锛�">
+ <el-input type="textarea" v-model="form.note" :disabled="currentStep !== 1" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ </el-card>
+ <el-row style="margin-top: 1em;">
+ <el-col :span="4">
+ 鎿嶄綔浜猴細{{ form.receiveOperationUser }}
+ </el-col>
+ <el-col :span="6">
+ 鏃ユ湡锛歿{ form.receiveOperationTime }}
+ </el-col>
+ </el-row>
+ </div>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="submitForm('3reject')" v-if="currentStep !== 0 && currentStep !== 2">椹冲洖</el-button>
+ <el-button @click="submitForm('2save')" v-if="currentStep === 0">淇濆瓨</el-button>
+ <el-button type="primary" v-if="currentStep !== 2" @click="submitForm('1submit')">{{ currentStep === 0 ? '鎻愪氦' :
+ '閫氳繃'
+ }}</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog title="娴佺▼璺熻釜" top="5vh" :visible.sync="dialogVisible0" width="60%">
+ <el-table :data="deviceLogs" style="width: 100%">
+ <el-table-column type="index" width="50">
+ </el-table-column>
+ <el-table-column prop="operator" label="鎿嶄綔浜�" width="180">
+ </el-table-column>
+ <el-table-column prop="operationTime" label="鎿嶄綔鏃ユ湡" width="180">
+ </el-table-column>
+ <el-table-column prop="operationType" label="鎻愪氦绫诲瀷">
+ </el-table-column>
+ <el-table-column prop="operationContent" label="鎿嶄綔鍐呭">
+ </el-table-column>
+ </el-table>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import { dateFormat } from '@/utils/date'
+import {
+ saveDeviceBorrow,
+ deleteCNASFile,
+ getDeviceBorrow,
+ deviceBorrowExport,
+ deleteDeviceBorrow,
+ deviceBorrowPage,
+} from '@/api/cnas/resourceDemand/device.js'
+import { selectUserCondition } from "@/api/system/user";
+import { mapGetters } from "vuex";
+export default {
+ props: {
+ clickNodeVal: {
+ type: Object,
+ default: () => {
+ return {};
+ }
+ }
+ },
+ components: {
+ limsTable
+ },
+ data() {
+ return {
+ dialogVisible: false,
+ dialogVisible0: false,
+ currentStep: 0, // 姝ラ鏉℃樉绀虹鍑犳
+ currentStepClick: 0, // 鐐瑰嚮姝ラ鏉″彉鍖�
+ steps: ['鍊熷嚭', '鍊熺敤'],
+ responsibleOptions: [], // 涓嬬幆鑺傝礋璐d汉list
+ form: {
+ processNumber: null,
+ deviceName: null,
+ unifyNumber: null,
+ recipientUser: null,
+ recipientTime: null,
+ nextUser: null,
+ rebackUser: null,
+ rebackTime: null,
+ receiveState: null,
+ deviceUser: null,
+ fileName: null,
+ },
+ rules: {
+ processNumber: [{ required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur' }],
+ deviceName: [{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'blur' }],
+ unifyNumber: [{ required: true, message: '璇疯緭鍏ョ鐞嗙紪鍙�', trigger: 'blur' }],
+ recipientUser: [{ required: true, message: '璇疯緭鍏ュ�熺敤浜�', trigger: 'blur' }],
+ borrowerContactInformation: [{ required: true, message: '璇疯緭鍏ュ�熺敤浜鸿仈绯绘柟寮�', trigger: 'blur' }],
+ recipientTime: [{ required: true, message: '璇烽�夋嫨鍊熺敤鏃ユ湡', trigger: 'change' }],
+ nextUser: [{ required: true, message: '璇烽�夋嫨涓嬬幆鑺傝礋璐d汉', trigger: 'change' }],
+ },
+ deviceLogs: [],
+ outLoading: false,
+ recipientStateList: [{
+ value: 0,
+ type: 'success',
+ label: '鍚堟牸'
+ }, {
+ value: 1,
+ type: 'warning',
+ label: '缁翠慨'
+ }, {
+ value: 2,
+ type: 'info',
+ label: '鍋滅敤'
+ }, {
+ value: 3,
+ type: 'danger',
+ label: '鎶ュ簾'
+ }],
+ queryParams: {},
+ tableData: [],
+ column: [
+ { label: "娴佺▼缂栧彿", prop: "processNumber" },
+ { label: "璁惧鍚嶇О", prop: "deviceName" },
+ {
+ label: "绠$悊缂栧彿",
+ prop: "unifyNumber"
+ },
+ { label: "鍊熺敤浜�", prop: "recipientUser" },
+ { label: "鍊熺敤浜鸿仈绯绘柟寮�", prop: "borrowerContactInformation", width: '140px' },
+ { label: "鍊熺敤鏃ユ湡", prop: "recipientTime" },
+ {
+ label: "鍊熺敤鏃剁姸鎬�", prop: "recipientState", dataType: "tag",
+ formatData: (params) => {
+ return this.recipientStateList.find((m) => m.value == params).label;
+ },
+ formatType: (params) => {
+ return this.recipientStateList.find((m) => m.value == params).type;
+ },
+ },
+ { label: "鍊熷嚭浜�", prop: "submitUser" },
+ { label: "鍊熷嚭鏃ユ湡", prop: "createTime" },
+ {
+ label: "褰撳墠鐘舵��", prop: "nowState"
+ },
+ { label: "褰撳墠璐d换浜�", prop: "nowUser" },
+ { label: "闄勪欢", prop: "fileName" },
+ {
+ dataType: "action",
+ fixed: "right",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "鏌ョ湅",
+ type: "text",
+ clickFun: (row) => {
+ this.lookDetail(row);
+ },
+ },
+ {
+ name: "鍒犻櫎",
+ type: "text",
+ clickFun: (row) => {
+ this.handleDelete(row);
+ },
+ },
+ {
+ name: "娴佺▼璺熻釜",
+ type: "text",
+ clickFun: (row) => {
+ this.handleLookList(row);
+ },
+ },
+ ],
+ },
+ ],
+ page: {
+ total: 0,
+ size: 10,
+ current: 0,
+ },
+ tableLoading: false,
+ }
+ },
+ watch: {
+ // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
+ clickNodeVal(newVal) {
+ if (newVal.value) {
+ thisqueryParams.deviceId = this.clickNodeVal.value
+ this.refreshTable()
+ }
+ },
+ dialogVisible(newVal) {
+ if (!newVal) {
+ this.form = {}
+ this.currentStep = 0 // 姝ラ鏉℃樉绀虹鍑犳
+ this.currentStepClick = 0 // 鐐瑰嚮姝ラ鏉″彉鍖�
+ this.$refs['form'].clearValidate()
+ }
+ }
+ },
+ computed: {
+ ...mapGetters(["nickName"]),
+ action() {
+ return this.javaApi + '/personBasicInfo/saveCNASFile'
+ }
+ },
+ mounted() {
+ this.queryParams.deviceId = this.clickNodeVal.value
+ this.getUserList()
+ this.refreshTable()
+ },
+ methods: {
+ getList() {
+ this.tableLoading = true;
+ let param = { ...this.queryParams, ...this.page };
+ delete param.total;
+ deviceBorrowPage({ ...param })
+ .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;
+ });
+ },
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.getList();
+ },
+ refresh() {
+ this.queryParams = {};
+ this.page.current = 1;
+ this.getList();
+ },
+ refreshTable() {
+ this.page.current = 1;
+ this.getList();
+ },
+ choiceStep(index) {
+ this.currentStepClick = index
+ },
+ //鎻愪氦琛ㄥ崟
+ async submitForm(saveState) {
+ this.$refs.form.validate((valid) => {
+ if (valid === true || saveState !== '1submit') {
+ // 缁欏綋鍓嶇幆鑺傝缃垱寤轰汉涓庢椂闂�
+ let user = JSON.parse(localStorage.getItem('user'))
+ const dateTime = dateFormat(new Date())
+ // 鑾峰彇褰撳墠鐜妭鎿嶄綔浜轰笌鏃ユ湡
+ switch (this.currentStep) {
+ case 0:
+ this.form.submitOperationUser = this.nickName
+ this.form.submitOperationTime = dateTime
+ break
+ case 1:
+ this.form.receiveOperationUser = this.nickName
+ this.form.receiveOperationTime = dateTime
+ break
+ default:
+ break
+ }
+ // 鑾峰彇褰撳墠鐜妭璐熻矗浜�
+ switch (saveState === '3reject' ? this.currentStep - 1 : this.currentStep) {
+ case 0:
+ this.form.nowUser = this.form.nextUser
+ break
+ default:
+ break
+ }
+ let currentStepAction;
+ // 璁剧疆璇ユ搷浣滃垽鏂槸鍚︿负鎻愪氦锛屼繚瀛橈紝椹冲洖锛岄�氳繃
+ switch (saveState) {
+ // 鎻愪氦锛岄�氳繃
+ case '1submit':
+ currentStepAction = this.currentStep + 1
+ break
+ // 淇濆瓨
+ case '2save':
+ currentStepAction = this.currentStep
+ break
+ // 椹冲洖
+ case '3reject':
+ currentStepAction = this.currentStep - 1
+ break
+ default:
+ break
+ }
+ // 鑾峰彇褰撳墠鐘舵��
+ this.form.nowState = currentStepAction === 2 ? '鍏抽棴' : this.steps[currentStepAction]
+ this.form.deviceId = this.clickNodeVal.value
+ delete this.form.deviceLogs
+ saveDeviceBorrow(this.form).then(res => {
+ if (res.code == 200) {
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.dialogVisible = false
+ this.refreshTable()
+ }
+ })
+ } else {
+ let step = this.steps[this.currentStep]
+ this.$message.warning(step + ' 娴佺▼涓湁蹇呭~椤规湭濉紒');
+ }
+ });
+ },
+ deleteFile() {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteCNASFile({ fileName: this.form.fileName }).then(res => {
+ if (res.code == 200) {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ onSuccess(response, file, fileList) {
+ if (response.code == 200) {
+ // 鍦ㄤ繚瀛樿祴鍊兼柊鏂囦欢
+ this.form.fileName = file.name
+ this.form.url = response.data
+ } else {
+ this.$message.error(response.message)
+ }
+ },
+ // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code == 200) {
+ this.responsibleOptions = res.data
+ }
+ })
+ },
+ // 鏌ョ湅璇︽儏
+ lookDetail(row) {
+ getDeviceBorrow({ id: row.id }).then(res => {
+ if (res.code == 200) {
+ this.form = res.data
+ this.form.deviceName = this.clickNodeVal.label
+ this.form.deviceId = this.clickNodeVal.value
+ this.deviceLogs = res.data.deviceLogs
+ let i = this.steps.findIndex(item => item == row.nowState)
+ if (i == -1) {
+ this.currentStep = 2
+ this.currentStepClick = 0
+ } else {
+ this.currentStep = i
+ this.currentStepClick = i
+ }
+ console.log(this.currentStepClick)
+ this.dialogVisible = true
+ }
+ })
+ },
+ // 鏂板
+ add() {
+ this.dialogVisible = true
+ this.form = {
+ processNumber: null,
+ deviceName: null,
+ unifyNumber: null,
+ recipientUser: null,
+ recipientTime: null,
+ nextUser: null,
+ rebackUser: null,
+ rebackTime: null,
+ receiveState: null,
+ deviceUser: null,
+ fileName: null,
+ }
+ this.form.deviceName = this.clickNodeVal.label
+ this.form.deviceId = this.clickNodeVal.value
+ },
+ //瀵煎嚭
+ handleDown() {
+ this.outLoading = true
+ deviceBorrowExport({ deviceId: this.clickNodeVal.value }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], {
+ type: 'application/force-download'
+ })
+ const filename = decodeURI(this.clickNodeVal.label + '璁惧鍊熷嚭缁熻' + '.xlsx')
+ this.$download.saveAs(blob, filename)
+ })
+ },
+ handleLookList(row) {
+ getDeviceBorrow({ id: row.id }).then(res => {
+ if (res.code == 200) {
+ this.deviceLogs = res.data.deviceLogs
+ this.dialogVisible0 = true
+ }
+ })
+ },
+ handleDelete(row) {
+ this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ deleteDeviceBorrow({ id: row.id }).then((res) => {
+ this.$message.success("鍒犻櫎鎴愬姛");
+ this.refresh();
+ });
+ })
+ .catch(() => { });
+ },
+ },
+}
+</script>
+
+<style scoped>
+h4 {
+ font-weight: 400;
+ font-size: 16px;
+ display: flex;
+ justify-content: space-between;
+ margin: 10px 0;
+}
+
+h4 .line {
+ display: inline-block;
+ width: 3px;
+ height: 16px;
+ background: #3A7BFA;
+ margin-right: 4px;
+}
+
+.tables {
+ width: 100%;
+ height: calc(100vh - 15em);
+}
+
+.search {
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ position: relative;
+ margin-top: 10px;
+}
+
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 40px;
+}
+
+.search_label {
+ width: 70px;
+ font-size: 14px;
+ text-align: right;
+}
+
+.search_input {
+ width: calc(100% - 120px);
+}
+
+.btns {
+ position: absolute;
+ right: 0px;
+ top: 50%;
+ transform: translate(0, -50%);
+}
+
+.btns_thing {
+ position: absolute;
+ right: 230px;
+ top: 50%;
+ transform: translate(0, -50%);
+}
+
+.form .search_label {
+ width: 120px;
+}
+
+.el-radio {
+ margin-right: 10px;
+}
+
+.el-radio-group {
+ width: 100%;
+ display: flex;
+ margin-top: 12px;
+}
+</style>
--
Gitblit v1.9.3