|
|
@@ -0,0 +1,665 @@
|
|
|
+<!--该组件实际差值和实际偏倚有正负值-->
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div v-if="show" class="reagentChange">
|
|
|
+ <el-row type="flex">
|
|
|
+ <el-col class="button">
|
|
|
+ <!-- <div class="title">111</div> -->
|
|
|
+ <div v-if="readonly" />
|
|
|
+ <div v-else>
|
|
|
+ <!-- <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ icon="ibps-icon-add"
|
|
|
+ @click="handleAdd"
|
|
|
+ >
|
|
|
+ 添加</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ size="mini"
|
|
|
+ icon="ibps-icon-remove"
|
|
|
+ @click="handleDelete"
|
|
|
+ >
|
|
|
+ 删除</el-button
|
|
|
+ > -->
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row type="flex">
|
|
|
+ <el-col>
|
|
|
+ <el-table
|
|
|
+ ref="reagent"
|
|
|
+ :data="reagentDataFilter"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column
|
|
|
+ label="试剂名称"
|
|
|
+ prop="shiJiMingCheng"
|
|
|
+ width="130"
|
|
|
+ />
|
|
|
+ <el-table-column label="品牌" prop="pinPai" width="130" />
|
|
|
+ <el-table-column label="批号" prop="piHao" width="130">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-input
|
|
|
+ v-if="!disabled"
|
|
|
+ v-model="row.piHao"
|
|
|
+ size="mini"
|
|
|
+ placeholder="请输入"
|
|
|
+ />
|
|
|
+ <span v-else>{{ row.piHao || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="失效期" prop="shiXiaoQiYi" width="140">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!disabled"
|
|
|
+ v-model="row.shiXiaoQiYi"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ format="yyyyMMdd"
|
|
|
+ value-format="yyyyMMdd"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <span v-else>{{ row.shiXiaoQiYi || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Mon${daysArr.length > 0 ? ':' + daysArr[0] : ''}`"
|
|
|
+ prop="zhouYi"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouYi">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouYi || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Tues${daysArr.length > 0 ? ':' + daysArr[1] : ''}`"
|
|
|
+ prop="zhouEr"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouEr">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouEr || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Wed${daysArr.length > 0 ? ':' + daysArr[2] : ''}`"
|
|
|
+ prop="zhouSan"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouSan">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouSan || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Thur${daysArr.length > 0 ? ':' + daysArr[3] : ''}`"
|
|
|
+ prop="zhouSi"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouSi">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouSi || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Fri${daysArr.length > 0 ? ':' + daysArr[4] : ''}`"
|
|
|
+ prop="zhouWu"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouWu">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouWu || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Sat${daysArr.length > 0 ? ':' + daysArr[5] : ''}`"
|
|
|
+ prop="zhouLiu"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouLiu">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouLiu || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :label="`Sun${daysArr.length > 0 ? ':' + daysArr[6] : ''}`"
|
|
|
+ prop="zhouQi"
|
|
|
+ width="90"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-radio-group v-if="!disabled" v-model="row.zhouQi">
|
|
|
+ <el-radio label="Y">Y</el-radio>
|
|
|
+ <el-radio label="N">N</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <span v-else>{{ row.zhouQi || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="更换日期" prop="gengHuanRiQi" width="140">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!disabled"
|
|
|
+ v-model="row.gengHuanRiQi"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ format="yyyyMMdd"
|
|
|
+ value-format="yyyyMMdd"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <span v-else>{{ row.gengHuanRiQi || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="批号" prop="piHaoEr" width="130">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-input
|
|
|
+ v-if="!disabled"
|
|
|
+ v-model="row.piHaoEr"
|
|
|
+ size="mini"
|
|
|
+ placeholder="请输入"
|
|
|
+ />
|
|
|
+ <span v-else>{{ row.piHaoEr || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="失效期" prop="shiXiaoQiEr" width="140">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!disabled"
|
|
|
+ v-model="row.shiXiaoQiEr"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ format="yyyyMMdd"
|
|
|
+ value-format="yyyyMMdd"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <span v-else>{{ row.shiXiaoQiEr || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" prop="beiZhu" width="140">
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-input
|
|
|
+ v-if="!disabled"
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ v-model="row.beiZhu"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ <span v-else>{{ row.beiZhu || '/' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <template v-if="lastShow" slot="append">
|
|
|
+ <!-- 自定义内容,例如一个按钮 -->
|
|
|
+ <div class="lastRow">
|
|
|
+ <div class="labelSty">操作人:</div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen1"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen2"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen3"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen4"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen5"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen6"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="chooseSty">
|
|
|
+ <ibps-user-selector
|
|
|
+ v-model="caoZuoRen7"
|
|
|
+ type="user"
|
|
|
+ readonly-text="text"
|
|
|
+ :disabled="disabled"
|
|
|
+ :multiple="false"
|
|
|
+ size="mini"
|
|
|
+ :filter="filter"
|
|
|
+ filtrate
|
|
|
+ style="width: 100%"
|
|
|
+ @change-link-data="changeGuanLiRen"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ layout="total,sizes,prev, pager, next,jumper"
|
|
|
+ :current-page="requestPage.pageNo"
|
|
|
+ :page-size="requestPage.limit"
|
|
|
+ :page-sizes="[10, 15, 20, 30, 50, 100]"
|
|
|
+ :total="reagentData.length"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import importTable from '@/business/platform/form/formrender/dynamic-form/components/import-table'
|
|
|
+import IbpsImport from '@/plugins/import'
|
|
|
+import { downloadFile } from '@/business/platform/file/utils'
|
|
|
+import { cloneDeep } from 'lodash'
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ importTable,
|
|
|
+ IbpsUserSelector: () => ({
|
|
|
+ component: import('@/business/platform/org/selector'),
|
|
|
+ delay: 200
|
|
|
+ })
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ formData: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {}
|
|
|
+ },
|
|
|
+ readonly: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ params: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ reagentData: [],
|
|
|
+ disabled: false,
|
|
|
+ show: true,
|
|
|
+ lastShow: false,
|
|
|
+ requestPage: {
|
|
|
+ limit: 20,
|
|
|
+ pageNo: 1
|
|
|
+ },
|
|
|
+ multipleSelection: [],
|
|
|
+ daysArr: [],
|
|
|
+ filter: [
|
|
|
+ {
|
|
|
+ descVal: '1',
|
|
|
+ includeSub: true,
|
|
|
+ old: 'position',
|
|
|
+ partyId: this.$store.getters.userInfo.employee.positions,
|
|
|
+ partyName: '',
|
|
|
+ scriptContent: '',
|
|
|
+ type: 'user',
|
|
|
+ userType: 'position'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ caoZuoRen1: '',
|
|
|
+ caoZuoRen2: '',
|
|
|
+ caoZuoRen3: '',
|
|
|
+ caoZuoRen4: '',
|
|
|
+ caoZuoRen5: '',
|
|
|
+ caoZuoRen6: '',
|
|
|
+ caoZuoRen7: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ reagentDataFilter() {
|
|
|
+ return this.reagentData.slice(
|
|
|
+ (this.requestPage.pageNo - 1) * this.requestPage.limit,
|
|
|
+ (this.requestPage.pageNo - 1) * this.requestPage.limit +
|
|
|
+ this.requestPage.limit
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ 'formData.mrzkjlzb': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value.length > 0) {
|
|
|
+ this.reagentData = value
|
|
|
+ this.lastShow = true
|
|
|
+ } else {
|
|
|
+ this.reagentData = []
|
|
|
+ this.lastShow = false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.kaiShiShiJian': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.daysArr = this.getNextSevenDays(value)
|
|
|
+ } else {
|
|
|
+ this.daysArr = []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheYi': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen1 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen1 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheEr': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen2 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen2 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheSan': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen3 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen3 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheSi': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen4 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen4 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheWu': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen5 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen5 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheLiu': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen6 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen6 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ 'formData.caoZuoZheQi': {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value && value !== '') {
|
|
|
+ this.caoZuoRen7 = value
|
|
|
+ } else {
|
|
|
+ this.caoZuoRen7 = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ },
|
|
|
+ reagentData: {
|
|
|
+ handler(value, old) {
|
|
|
+ if (value.length > 0) {
|
|
|
+ this.$emit('change-data', 'mrzkjlzb', value)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen1: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheYi', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen2: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheEr', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen3: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheSan', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen4: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheSi', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen5: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheWu', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen6: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheLiu', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ },
|
|
|
+ caoZuoRen7: {
|
|
|
+ handler(value, old) {
|
|
|
+ this.$emit('change-data', 'caoZuoZheQi', value)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ const { first = '' } = this.$store.getters.level
|
|
|
+ const { deptList = [] } = this.$store.getters || {}
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleSelectionChange(val) {
|
|
|
+ this.multipleSelection = val
|
|
|
+ },
|
|
|
+ // 当前页码改变
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.requestPage.pageNo = val
|
|
|
+ },
|
|
|
+ // 页码选择器改变
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.requestPage.limit = val
|
|
|
+ this.requestPage.pageNo = 1
|
|
|
+ },
|
|
|
+ changeGuanLiRen(key, data) {
|
|
|
+ // this.form.fuZeRenDianHua = data?.mobile
|
|
|
+ },
|
|
|
+ // 去除小数*100精度方法(支持负数)
|
|
|
+ deleteAccuracy(num) {
|
|
|
+ // 处理负数
|
|
|
+ const isNegative = num < 0
|
|
|
+ const absoluteNum = Math.abs(num)
|
|
|
+
|
|
|
+ // 是否带小数点
|
|
|
+ if (absoluteNum.toString().includes('.')) {
|
|
|
+ // 保留小数点后面3位
|
|
|
+ const numArry = absoluteNum.toFixed(3).toString().split('.')
|
|
|
+ let result
|
|
|
+
|
|
|
+ // 整数位是否大于0
|
|
|
+ if (numArry[0] > 0) {
|
|
|
+ result =
|
|
|
+ Number(
|
|
|
+ numArry[0] +
|
|
|
+ numArry[1].substring(0, 2) +
|
|
|
+ '.' +
|
|
|
+ numArry[1].substring(2, 3)
|
|
|
+ ) + '%'
|
|
|
+ } else {
|
|
|
+ // 小数位第一位是否大于0
|
|
|
+ if (numArry[1][0] > 0) {
|
|
|
+ result =
|
|
|
+ Number(
|
|
|
+ numArry[1].substring(0, 2) + '.' + numArry[1].substring(2, 3)
|
|
|
+ ) + '%'
|
|
|
+ } else {
|
|
|
+ // 小数位第二位是否大于0
|
|
|
+ if (numArry[1][1] > 0) {
|
|
|
+ result =
|
|
|
+ Number(
|
|
|
+ numArry[1].substring(1, 2) + '.' + numArry[1].substring(2, 3)
|
|
|
+ ) + '%'
|
|
|
+ } else {
|
|
|
+ result = Number(0 + '.' + numArry[1].substring(2, 3)) + '%'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 恢复负号
|
|
|
+ return isNegative ? '-' + result : result
|
|
|
+ } else {
|
|
|
+ const result = absoluteNum * 100 + '%'
|
|
|
+ return isNegative ? '-' + result : result
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取指定日期之后连续7天的日期数组
|
|
|
+ **/
|
|
|
+ getNextSevenDays(inputDate) {
|
|
|
+ // 转换为Date对象
|
|
|
+ const date = new Date(inputDate)
|
|
|
+ if (isNaN(date)) {
|
|
|
+ throw new Error('Invalid date')
|
|
|
+ }
|
|
|
+ const result = []
|
|
|
+ for (let i = 0; i < 7; i++) {
|
|
|
+ // 基于原始日期增加 i 天,避免修改原对象
|
|
|
+ const nextDate = new Date(date)
|
|
|
+ nextDate.setDate(date.getDate() + i)
|
|
|
+ const day = String(nextDate.getDate()).padStart(2, '0')
|
|
|
+ result.push(day)
|
|
|
+ }
|
|
|
+ return result
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.reagentChange {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ .button {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 0px 0px 0px 15px;
|
|
|
+ background: #f0ffff;
|
|
|
+ .title {
|
|
|
+ color: #999;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: bold;
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ .el-button {
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ::v-deep .el-table__append-wrapper {
|
|
|
+ width: 1765px;
|
|
|
+ .lastRow {
|
|
|
+ display: flex;
|
|
|
+ .labelSty {
|
|
|
+ width: 585px;
|
|
|
+ text-align: end;
|
|
|
+ }
|
|
|
+ .chooseSty {
|
|
|
+ width: 90px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|