fix:1. 过程要求 - 样品接收:列表样式优化。
2. 过程要求 - 方法验证:点击详情还能修改,导出格式优化,按客户给的文档来。
3. 业务管理 - 检验任务:删除不合格相关的检测。
4. 业务管理 - 报告结果:按照发送日期倒序排列。
5. 基础配置 - 行业管理:删除印章管理。
6. 体系管理要求 - 客户满意度:附件上传报错,精简上传逻辑。
| | |
| | | <lims-table :tableData="tableData" :column="column" @pagination="pagination" |
| | | :height="'calc(100vh - 280px)'" :key="upIndex" :page="page" :tableLoading="tableLoading"> |
| | | <template #inspectionItem="scope"> |
| | | <div style="white-space: pre-line; text-align: left; padding: 4px 0;">{{ scope.row.inspectionItem }}</div> |
| | | <div style="white-space: pre-line; text-align: center; padding: 4px 0;">{{ scope.row.inspectionItem }}</div> |
| | | </template> |
| | | <template #remark="scope"> |
| | | <span>{{ scope.row.status === 2 && scope.row.rejectRemark ? scope.row.rejectRemark : scope.row.remark }}</span> |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-model="viewDeviceDialog" title="查看设备" width="80%" @close="closeDia"> |
| | | <div style="text-align: right;margin-bottom: 10px"> |
| | | <div v-if="!readOnly" style="text-align: right;margin-bottom: 10px"> |
| | | <el-button size="small" type="primary" @click="addRow">添加</el-button> |
| | | <el-button size="small" type="danger" @click="clearTable">清空</el-button> |
| | | </div> |
| | |
| | | clearable |
| | | filterable |
| | | placeholder="设备名称" |
| | | size="small" @change="(val)=>changeMachineName(val, scope.$index)"> |
| | | size="small" :disabled="readOnly" @change="(val)=>changeMachineName(val, scope.$index)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> |
| | | {{item.label + item.value}} |
| | | </el-option> |
| | |
| | | <p>型号规格</p> |
| | | </template> |
| | | <template #default="{row}"> |
| | | <el-input v-model="row.machineSpecification" size="small"/> |
| | | <el-input v-model="row.machineSpecification" size="small" :disabled="readOnly"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="测量范围" prop="machineMeasuringRange"> |
| | |
| | | <p>测量范围</p> |
| | | </template> |
| | | <template #default="{row}"> |
| | | <el-input v-model="row.machineMeasuringRange" size="small" type="textarea"/> |
| | | <el-input v-model="row.machineMeasuringRange" size="small" type="textarea" :disabled="readOnly"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="①扩展不确定度②最大允差③准确度等级" prop="other"> |
| | |
| | | <p>①扩展不确定度②最大允差③准确度等级</p> |
| | | </template> |
| | | <template #default="{row}"> |
| | | <el-input v-model="row.other" size="small" type="textarea"/> |
| | | <el-input v-model="row.other" size="small" type="textarea" :disabled="readOnly"/> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-button @click="closeDia">取 消</el-button> |
| | | <el-button type="primary" @click="handleDeviceInfo">确 定</el-button> |
| | | <el-button v-if="!readOnly" type="primary" @click="handleDeviceInfo">确 定</el-button> |
| | | </span></template> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | |
| | | export default { |
| | | name: 'ViewDeviceDialog', |
| | | props: { readOnly: { type: Boolean, default: false } }, |
| | | // import 引入的组件需要注入到对象中才能使用 |
| | | components: {}, |
| | | data() { |
| | |
| | | }, |
| | | // 增加表格行数据 |
| | | addRow () { |
| | | if (this.readOnly) return |
| | | this.machineAttachmentList.push({ |
| | | machineName: '', |
| | | machineSpecification: '', |
| | |
| | | }, |
| | | // 清空表格数据 |
| | | clearTable () { |
| | | if (this.readOnly) return |
| | | this.machineAttachmentList = [] |
| | | }, |
| | | // 选择设备的回调 |
| | | changeMachineName (val, index) { |
| | | if (this.readOnly) return |
| | | const index1 = this.equipOptions.findIndex(item => item.value === val); |
| | | if (index1 !== -1) { |
| | | this.machineAttachmentList[index].deviceId = this.equipOptions[index1].id; |
| | |
| | | }, |
| | | // 提交设备信息 |
| | | handleDeviceInfo () { |
| | | if (this.readOnly) return |
| | | if (this.machineAttachmentList.length === 0) { |
| | | this.$message.warning('请添加信息') |
| | | return |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog v-model="filesDialogVisible" title="附件上传" width="80%" @closed="closeFilesLook"> |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <el-dialog v-model="filesDialogVisible" :title="readOnly ? '查看附件' : '附件上传'" width="80%" @closed="closeFilesLook"> |
| | | <div v-if="!readOnly" style="display: flex;justify-content: space-between;"> |
| | | <el-upload ref='upload' |
| | | :action="fileAction" |
| | | :auto-upload="true" |
| | |
| | | <div> |
| | | <lims-table |
| | | ref="yearTable" |
| | | :column="columnData" |
| | | :column="readOnly ? readonlyColumnData : columnData" |
| | | :height="'calc(100vh - 47em)'" |
| | | :highlightCurrentRow="true" |
| | | :table-data="tableData" |
| | |
| | | |
| | | export default { |
| | | name: 'ViewTestRecord', |
| | | props: { readOnly: { type: Boolean, default: false } }, |
| | | // import 引入的组件需要注入到对象中才能使用 |
| | | components: { limsTable }, |
| | | computed: { |
| | | readonlyColumnData() { |
| | | return this.columnData.map(column => column.dataType === 'action' |
| | | ? { ...column, operation: column.operation.filter(item => item.name !== '删除') } |
| | | : column) |
| | | } |
| | | }, |
| | | data() { |
| | | // 这里存放数据 |
| | | return { |
| | |
| | | }, |
| | | // 删除 |
| | | delete (row) { |
| | | if (this.readOnly) return |
| | | this.tableLoading = true |
| | | delVerifyMethodFileList({methodFileId:row.methodFileId}).then(res => { |
| | | this.tableLoading = false |
| | |
| | | }, |
| | | // 上传验证 |
| | | fileBeforeUpload(file) { |
| | | if (this.readOnly) return false |
| | | let flag = true |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('上传文件不超过10M'); |
| | |
| | | </table> |
| | | </fieldset> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-button @click="closeDia">取 消</el-button> |
| | | <el-button @click="closeDia">{{ operationType === 'view' ? '关闭' : '取 消' }}</el-button> |
| | | <el-button v-if="operationType !== 'view'" :loading="editLoad" type="primary" @click="handleEdit">提 交</el-button> |
| | | </span></template> |
| | | </el-dialog> |
| | | <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog> |
| | | <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog"></ViewTestRecord> |
| | | <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" :read-only="operationType === 'view'" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog> |
| | | <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog" :read-only="operationType === 'view'"></ViewTestRecord> |
| | | <ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia> |
| | | <calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia> |
| | | </div> |
| | |
| | | }, |
| | | // 提交 |
| | | handleEdit() { |
| | | if (this.operationType === 'view') return |
| | | this.editLoad = true |
| | | const processMethodSearchNews = this.HaveJson(this.form) |
| | | processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',') |
| | |
| | | }, |
| | | // 评审意见勾选(三选一,再点一次取消) |
| | | toggleReview (value, checked) { |
| | | if (this.operationType === 'view') return |
| | | this.form.reviewResult = checked ? value : '' |
| | | }, |
| | | // 审批意见勾选(三选一,再点一次取消) |
| | | toggleApproval (value, checked) { |
| | | if (this.operationType === 'view') return |
| | | this.form.approvalResult = checked ? value : '' |
| | | }, |
| | | // 查看上岗证 |
| | |
| | | }, |
| | | // 提交设备信息 |
| | | handleDeviceInfo (machineAttachmentList) { |
| | | if (this.operationType === 'view') return |
| | | this.viewDeviceDialog = false |
| | | this.form.machineAttachmentList = machineAttachmentList |
| | | }, |
| | |
| | | <tr> |
| | | <th>标准名称</th> |
| | | <td> |
| | | <el-input v-model="form.standardName"/> |
| | | <el-input v-model="form.standardName" :disabled="isView"/> |
| | | </td> |
| | | <th>标准编号</th> |
| | | <td> |
| | | <el-input v-model="form.standardCode"/> |
| | | <el-input v-model="form.standardCode" :disabled="isView"/> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th>验证项目</th> |
| | | <td colspan="3"> |
| | | <el-input v-model="form.verifyItem"/> |
| | | <el-input v-model="form.verifyItem" :disabled="isView"/> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | |
| | | <tr v-for="(item, index) in content.checks" :key="item.key"> |
| | | <th>{{ index < 7 ? `${index + 1}. ${item.label}` : item.label }}</th> |
| | | <td> |
| | | <el-input v-model="item.requirement" type="textarea" :rows="3"/> |
| | | <el-input v-model="item.requirement" type="textarea" :rows="3" :disabled="isView"/> |
| | | </td> |
| | | <td> |
| | | <el-input v-model="item.capability" type="textarea" :rows="3"/> |
| | | <el-input v-model="item.capability" type="textarea" :rows="3" :disabled="isView"/> |
| | | <div v-if="item.key === 'personnel'" class="row-extra"> |
| | | <span>检测人员</span> |
| | | <el-select v-model="form.confirmUser" multiple :multiple-limit="5" placeholder="请选择检测人员"> |
| | | <el-select v-model="form.confirmUser" multiple :multiple-limit="5" placeholder="请选择检测人员" :disabled="isView"> |
| | | <el-option v-for="user in userList" :key="user.id" :label="user.name" :value="user.id"/> |
| | | </el-select> |
| | | <el-link v-if="operationType !== 'add'" type="primary" @click="viewWorkPermit">查看上岗证</el-link> |
| | |
| | | </div> |
| | | </td> |
| | | <td class="choice-cell"> |
| | | <el-radio-group v-model="item.satisfied"> |
| | | <el-radio-group v-model="item.satisfied" :disabled="isView"> |
| | | <el-radio :value="1">是</el-radio> |
| | | <el-radio :value="0">否</el-radio> |
| | | </el-radio-group> |
| | |
| | | <tr> |
| | | <th>验证结论</th> |
| | | <td colspan="3"> |
| | | <el-input v-model="content.conclusion" type="textarea" :rows="4"/> |
| | | <el-input v-model="content.conclusion" type="textarea" :rows="4" :disabled="isView"/> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="decision in decisions" :key="decision.key"> |
| | | <th>{{ decision.label }}</th> |
| | | <td colspan="3"> |
| | | <div class="decision-row"> |
| | | <el-radio-group v-model="content[decision.key]"> |
| | | <el-radio-group v-model="content[decision.key]" :disabled="isView"> |
| | | <el-radio value="同意使用">同意使用</el-radio> |
| | | <el-radio value="不能使用">不能使用</el-radio> |
| | | <el-radio value="限制使用">限制使用</el-radio> |
| | | </el-radio-group> |
| | | <span>{{ decision.personLabel }}</span> |
| | | <el-input v-model="content[decision.personKey]" class="person-input"/> |
| | | <el-input v-model="content[decision.personKey]" class="person-input" :disabled="isView"/> |
| | | <span>日期</span> |
| | | <el-date-picker v-model="content[decision.dateKey]" type="date" value-format="YYYY-MM-DD" |
| | | placeholder="选择日期"/> |
| | | placeholder="选择日期" :disabled="isView"/> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | </div> |
| | | </div> |
| | | <template #footer> |
| | | <el-button @click="closeDia">取消</el-button> |
| | | <el-button @click="closeDia">{{ isView ? '关闭' : '取消' }}</el-button> |
| | | <el-button v-if="operationType !== 'view'" :loading="loading" type="primary" @click="submit">提交</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | <ViewDeviceDialog v-if="deviceVisible" ref="device" @closDeviceDia="deviceVisible = false" |
| | | <ViewDeviceDialog v-if="deviceVisible" ref="device" :read-only="isView" @closDeviceDia="deviceVisible = false" |
| | | @handleDeviceInfo="setDevices"/> |
| | | <ViewTestRecord v-if="recordVisible" ref="record"/> |
| | | <ViewTestRecord v-if="recordVisible" ref="record" :read-only="isView"/> |
| | | <ViewWorkPermitDia v-if="permitVisible" ref="permit"/> |
| | | <CalibrationsFileDia v-if="calibrationVisible" ref="calibration"/> |
| | | </div> |
| | |
| | | components: {ViewDeviceDialog, ViewTestRecord, ViewWorkPermitDia, CalibrationsFileDia}, |
| | | props: {operationType: {type: String, default: 'add'}}, |
| | | computed: { |
| | | isView() { |
| | | return this.operationType === 'view' |
| | | }, |
| | | dialogTitle() { |
| | | if (this.operationType === 'view') return '查看方法验证' |
| | | return this.operationType === 'edit' ? '编辑方法验证' : '新增方法验证' |
| | |
| | | }) |
| | | }, |
| | | submit() { |
| | | if (this.isView) return |
| | | if (!this.form.standardName?.trim() || !this.form.standardCode?.trim() || !this.form.verifyItem?.trim()) { |
| | | this.$message.warning('请填写标准名称、标准编号和验证项目') |
| | | return |
| | |
| | | this.openChild('recordVisible', 'record', this.info) |
| | | }, |
| | | setDevices(list) { |
| | | if (this.isView) return |
| | | this.deviceVisible = false; |
| | | this.form.machineAttachmentList = list |
| | | }, |
| | |
| | | exportMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '标准(方法)确认记录.docx') |
| | | this.$download.saveAs(blob, '方法验证记录.docx') |
| | | }) |
| | | }, |
| | | // 关闭弹框 |
| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="display: flex; align-items: center"> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button> |
| | | <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> |
| | | <span v-if="cableTagList.length > 0"> 电缆配置:</span> |
| | | <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="请选择" size="small" |
| | | @change="(m) => handleChangeCableTag(currentSample.id, 0, 'cableTag', m) |
| | |
| | | <div style="display: flex; align-items: center"> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button> |
| | | <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> |
| | | <span v-if="cableTagList.length > 0"> 电缆配置:</span> |
| | | <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="请选择" size="small" |
| | | @change="(m) => handleChangeCableTag(currentSample.id, 0, 'cableTag', m) |
| | |
| | | <el-button type="primary" @click="customAdd" :loading="loading">确 定</el-button> |
| | | </span></template> |
| | | </el-dialog> |
| | | <el-dialog title="印章管理" v-model="fileVisible" width="60vw"> |
| | | <div class="btns"> |
| | | <el-button size="default" type="primary" @click="openUpload">更新印章</el-button> |
| | | </div> |
| | | <lims-table :tableData="fileComponentData" :column="fileComponentDataColumn" @pagination="fileComponentPagination" |
| | | height="500px" :page="fileComponentPage" :tableLoading="fileComponentTableLoading"></lims-table> |
| | | </el-dialog> |
| | | <el-dialog title="更新印章" v-model="upFileVisible" width="400px"> |
| | | <el-form ref="dataForm" :model="dataForm" :rules="dataFormRules" label-position="right" label-width="80px"> |
| | | <el-form-item label="印章类型" prop="type"> |
| | | <el-cascader v-model="dataForm.type" :options="options" :show-all-levels="false" :props="props" |
| | | placeholder="请选择" size="small" style="width:100%" collapse-tags clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="印章图片" prop="address"> |
| | | <el-upload class="avatar-uploader" :action="action" :headers="uploadHeader" |
| | | accept='image/jpg,image/jpeg,image/png' :show-file-list="false" :on-success="handleSuccess" |
| | | :on-change="beforeUpload" ref="upload" :on-error="onError"> |
| | | <img v-if="dataForm.address" :src="javaApi + '/img/' + dataForm.address" class="avatar"> |
| | | <lims-icon v-else class="avatar-uploader-icon" name="el-icon-plus"></lims-icon> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-button @click="upFileVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirmConnect" :loading="loading">确 定</el-button> |
| | | </span></template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | | addParameter, |
| | | addSeal, |
| | | delParameter, |
| | | selectItemParameter, |
| | | selectSeal, |
| | | upParameter |
| | | } from "@/api/structural/laboratoryScope"; |
| | | import { getCertificationDetail } from "@/api/structural/laboratory"; |
| | | export default { |
| | | components: { |
| | | limsTable |
| | | |
| | | }, |
| | | computed: { |
| | | action() { |
| | | return this.javaApi + '/deviceScope/uploadFile' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | this.delete(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: '印章管理', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.fileManagement(row); |
| | | }, |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | |
| | | head: [{ required: true, message: '请输入负责人', trigger: 'blur' }], |
| | | phoneNumber: [{ required: true, message: '请输入负责人电话', trigger: 'blur' }], |
| | | }, |
| | | currentRow: {}, |
| | | fileComponentTableLoading: false, |
| | | fileComponentData: [], |
| | | fileComponentDataColumn: [ |
| | | { label: '行业名称', prop: 'laboratoryName' }, |
| | | { label: '印章图片', prop: 'address', dataType: 'image' }, |
| | | { label: '印章类型', prop: 'type' }, |
| | | ], |
| | | fileComponentPage: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1, |
| | | layout: 'total, prev, pager, next' |
| | | }, |
| | | fileVisible: false, |
| | | upFileVisible: false, |
| | | loading: false, |
| | | dataForm: { |
| | | type: '', |
| | | address: '', |
| | | }, |
| | | dataFormRules: { |
| | | type: [{ required: true, message: '请选择印章类型', trigger: 'change' }], |
| | | address: [{ required: false, message: '请上传图片', trigger: 'change' }], |
| | | }, |
| | | props: { multiple: false, emitPath: false, }, |
| | | options: [ |
| | | { |
| | | value: '行业资质', |
| | | label: '行业资质', |
| | | children: [] |
| | | }, |
| | | { |
| | | value: '委托报告', |
| | | label: '委托报告', |
| | | children: null |
| | | }, |
| | | { |
| | | value: '进厂报告', |
| | | label: '进厂报告', |
| | | children: null |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | }) |
| | | }).catch(() => { }) |
| | | }, |
| | | // 打开印章管理弹框 |
| | | fileManagement(row) { |
| | | this.fileVisible = true; |
| | | this.fileComponentTableLoading = true |
| | | this.currentRow = row |
| | | this.getFileComponentList() |
| | | }, |
| | | getFileComponentList() { |
| | | selectSeal({ id: this.currentRow.id, ...this.fileComponentPage }).then(res => { |
| | | this.fileComponentTableLoading = false |
| | | if (res.code === 200) { |
| | | this.fileComponentData = res.data.records |
| | | this.fileComponentPage.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | this.fileComponentTableLoading = false |
| | | }) |
| | | }, |
| | | fileComponentPagination(page) { |
| | | this.fileComponentPage.size = page.limit |
| | | this.getFileComponentList() |
| | | }, |
| | | // 打开更新印章弹框 |
| | | openUpload() { |
| | | this.dataForm.type = ''; |
| | | this.dataForm.address = ''; |
| | | this.upFileVisible = true; |
| | | this.getCertificationOperation() |
| | | }, |
| | | // 查询印章类型 |
| | | getCertificationOperation() { |
| | | const params = { |
| | | current: -1, |
| | | size: -1, |
| | | } |
| | | getCertificationDetail(params).then(res => { |
| | | this.options[0].children = res.data.records.map(m => { |
| | | m.value = m.name; |
| | | m.label = m.name; |
| | | return m |
| | | }); |
| | | }) |
| | | }, |
| | | // 提交更新印章 |
| | | confirmConnect() { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | addSeal({ labId: this.currentRow.id, ...this.dataForm }).then(res => { |
| | | this.loading = false; |
| | | this.getFileComponentList() |
| | | this.upFileVisible = false; |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | handleSuccess(response,) { |
| | | if (response.code === 200) { |
| | | this.dataForm.address = response.data.url |
| | | } |
| | | }, |
| | | beforeUpload(file, type) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('上传文件不超过10M'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | }, |
| | | onError(err, file, fileList, type) { |
| | | this.$message.error('上传失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .btns { |
| | | text-align: right; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | :deep(.el-dialog__body) { |
| | | padding-top: 8px !important; |
| | | } |
| | | |
| | | .avatar-uploader :deep(.el-upload) { |
| | | border: 1px dashed var(--lims-text-2); |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .avatar-uploader :deep(.el-upload:hover) { |
| | | border-color: var(--el-color-primary); |
| | | } |
| | | |
| | | .avatar-uploader-icon { |
| | | font-size: 20px; |
| | | color: #8c939d; |
| | | width: 90px; |
| | | height: 90px; |
| | | line-height: 90px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .avatar { |
| | | width: 90px; |
| | | height: 90px; |
| | | display: block; |
| | | } |
| | | </style> |