Procházet zdrojové kódy

测量不确定度评定报告组件

luoaoxuan před 1 rokem
rodič
revize
79fe860889
1 změnil soubory, kde provedl 225 přidání a 0 odebrání
  1. 225 0
      src/views/component/inspectionProcess/uncertainty.vue

+ 225 - 0
src/views/component/inspectionProcess/uncertainty.vue

@@ -0,0 +1,225 @@
+<!-- lax -->
+<template>
+    <div class="uncertainty">
+        <div v-if="!isReadonly" class="button">
+            <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>
+        <div class="table">
+            <el-table :data="showData" @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="55" />
+                <el-table-column type="index" width="55" label="序号" />
+                <el-table-column label="检查项目" prop="canShuId" width="260">
+                    <template slot-scope="{row}">
+                        <ibps-custom-dialog
+                            v-model="row.canShuId"
+                            size="mini"
+                            template-key="xznlfwdd"
+                            type="dialog"
+                            class="custom-dialog"
+                            placeholder="请选择"
+                            icon="el-icon-search"
+                            style="width:100%"
+                            :disabled="isReadonly"
+                            @change-link-data="(key,data)=>canShuIdChange(key,data,row)"
+                        />
+                    </template>
+                </el-table-column>
+                <el-table-column label="质控数据评定的实验室内测量复现性引入的测量不确定度">
+                    <el-table-column label="n" prop="zhiKongCiShuN">
+                        <template slot-scope="{row}">
+                            <el-input v-if="!isReadonly" v-model="row.zhiKongCiShuN" size="mini" />
+                            <span v-else>{{ row.zhiKongCiShuN || '' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="x̄" prop="junZhi">
+                        <template slot-scope="{row}">
+                            <el-input v-if="!isReadonly" v-model="row.junZhi" size="mini" />
+                            <span v-else>{{ row.junZhi || '' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="CV%" prop="bianYi">
+                        <template slot-scope="{row}">
+                            <el-input v-if="!isReadonly" v-model="row.bianYi" size="mini" />
+                            <span v-else>{{ row.bianYi || '' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="u(Rw)" prop="buQueDingDu">
+                        <template slot-scope="{row}">
+                            <el-input v-if="!isReadonly" v-model="row.buQueDingDu" size="mini" />
+                            <span v-else>{{ row.buQueDingDu || '' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="uᵣₑₗ(Rᴡ)" prop="xiangDui">
+                        <template slot-scope="{row}">
+                            <el-input v-if="!isReadonly" v-model="row.xiangDui" size="mini" />
+                            <span v-else>{{ row.xiangDui || '' }}</span>
+                        </template>
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="校准品不确定度uᵣₑₗ(CRM)" prop="chongFuCeLiang">
+                    <template slot-scope="{row}">
+                        <el-input v-if="!isReadonly" v-model="row.chongFuCeLiang" size="mini" />
+                        <span v-else>{{ row.chongFuCeLiang || '' }}</span>
+                    </template>
+                </el-table-column>
+
+                <el-table-column label="ucᵣₑₗ" prop="xiangDuiKuoZhan">
+                    <template slot-scope="{row}">
+                        <el-input v-if="!isReadonly" v-model="row.xiangDuiKuoZhan" size="mini" />
+                        <span v-else>{{ row.xiangDuiKuoZhan || '' }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="Uᵣₑₗ (k=2)" prop="muBiao">
+                    <template slot-scope="{row}">
+                        <el-input v-if="!isReadonly" v-model="row.muBiao" size="mini" />
+                        <span v-else>{{ row.muBiao || '' }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="目标不确定度(TEa)" prop="heCheng">
+                    <template slot-scope="{row}">
+                        <el-input v-if="!isReadonly" v-model="row.heCheng" size="mini" />
+                        <span v-else>{{ row.heCheng || '' }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="结果判定" prop="panDing">
+                    <template slot-scope="{row}">
+                        <el-select v-if="!isReadonly" v-model="row.panDing" placeholder="请选择" size="mini" style="width:100%">
+                            <el-option
+                                v-for="item in ['符合','不符合']"
+                                :key="item"
+                                :label="item"
+                                :value="item"
+                            />
+                        </el-select>
+                        <span v-else>{{ row.panDing || '' }}</span>
+                    </template>
+                </el-table-column>
+
+            </el-table>
+        </div>
+        <el-pagination
+            style="margin-top: 5px; padding-bottom: 10px"
+            :current-page="pagination.currentPage"
+            :page-sizes="[10, 20,30, 50]"
+            :page-size="pagination.pageSize"
+            layout="prev,pager,next,jumper,sizes,->,total"
+            :total="tableData.length"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+        />
+    </div>
+</template>
+
+<script>
+export default {
+    components: {
+        IbpsCustomDialog: () => import('@/business/platform/data/templaterender/custom-dialog')
+    },
+    props: {
+        formData: {
+            type: Object,
+            default: () => ({})
+        },
+        readonly: {
+            type: Boolean,
+            default: false
+        }
+    },
+    data () {
+        return {
+            tableData: [],
+            multipleSelection: [],
+            pagination: {
+                pageSize: 10,
+                currentPage: 1
+            }
+        }
+    },
+    computed: {
+        showData () {
+            const start = (this.pagination.currentPage - 1) * this.pagination.pageSize
+            const end = start + this.pagination.pageSize
+            return this.tableData.slice(start, end)
+        },
+        isReadonly () {
+            return this.readonly
+        }
+    },
+    watch: {
+        tableData: {
+            handler (val) {
+                this.$emit('change-data', 'clbqddpdbgzb', val)
+            },
+            deep: true
+        },
+        'formData.clbqddpdbgzb': {
+            handler (val) {
+                this.tableData = val
+                // console.log('val', val)
+            }
+        }
+    },
+    methods: {
+        // 当前页码改变
+        handleCurrentChange (val) {
+            this.pagination.currentPage = val
+        },
+        // 页码选择器改变
+        handleSizeChange (val) {
+            this.pagination.pageSize = val
+            this.pagination.currentPage = 1
+        },
+        // 分页连续序号
+        showIndex (index) {
+            return index + 1 + (this.pagination.currentPage - 1) * this.pagination.pageSize
+        },
+        canShuIdChange (key, data, row) {
+            row.pingDingCanShu = data['jian_yan_xiang_mu'] || ''
+        },
+        handleAdd () {
+            this.tableData.push({
+                'id': '',
+                'diDian': '',
+                'parentId': '',
+                'canShuId': '',
+                'pingDingCanShu': '',
+                'zhiKongCiShuN': '',
+                'junZhi': '',
+                'bianYi': '',
+                'buQueDingDu': '',
+                'xiangDui': '',
+                'chongFuCeLiang': '',
+                'fangFa': '',
+                'duoCi': '',
+                'pianYi': '',
+                'xiangDuiKuoZhan': '',
+                'muBiao': '',
+                'heCheng': '',
+                'panDing': '符合'
+            })
+        },
+        handleDelete () {
+            this.tableData = this.tableData.filter(item => !this.multipleSelection.includes(item))
+        },
+        handleSelectionChange (val) {
+            this.multipleSelection = val
+        }
+    }
+}
+</script>
+
+<style lang="scss">
+.uncertainty{
+    .button{
+        display: flex;
+        justify-content: flex-end;
+        .el-button+.el-button{
+            margin-left: 0;
+            margin-right: 0;
+        }
+    }
+}
+
+</style>
+