luojie 1 month ago
parent
commit
35ef80bfe2
13 changed files with 2301 additions and 22 deletions
  1. +4
    -0
      src/lang/en/template/lba.js
  2. +8
    -0
      src/lang/en/template/pcr.js
  3. +4
    -0
      src/lang/zh/template/lba.js
  4. +8
    -0
      src/lang/zh/template/pcr.js
  5. +7
    -1
      src/views/business/comps/template/TemplateTable.vue
  6. +4
    -4
      src/views/business/comps/template/comps/gsp/GSP009.vue
  7. +8
    -3
      src/views/business/comps/template/comps/lba/LBA004.vue
  8. +1041
    -0
      src/views/business/comps/template/comps/lba/LBA005.vue
  9. +60
    -10
      src/views/business/comps/template/comps/lba/LBA006.vue
  10. +1041
    -0
      src/views/business/comps/template/comps/lba/LBA007.vue
  11. +3
    -3
      src/views/business/comps/template/comps/pcr/PCR005.vue
  12. +112
    -0
      src/views/business/comps/template/formConfig/PCRTableConfig.js
  13. +1
    -1
      src/views/business/systemLog/comp/dlrz.vue

+ 4
- 0
src/lang/en/template/lba.js View File

@ -26,6 +26,10 @@ export default {
ysjzjrz: '预设基质加入值',
sjjzjrz: '实际基质加入值'
},
lba005: {
bzqxpz: 'Standard Curve Preparation',
zkpz: 'Quality Control Preparation'
},
lba006: {
fxtj: 'Analysis conditions',
fxsj: 'Analysis time',

+ 8
- 0
src/lang/en/template/pcr.js View File

@ -37,6 +37,14 @@ export default {
// PCR分析样品处理表
pcr005: {
clpbh: 'Analysis Batch Number',
ypmc: '样品名称',
ypcsnd: '样品初始浓度',
sxbs: '稀释倍数',
ysypxytj: '预设样品吸样体积',
sjypxytj: '实际样品吸样体积',
ysxsyxytj: '预设稀释液吸样体积',
sjxsyxytj: '实际稀释液吸样体积',
ypznd: '样品终浓度',
},
// 生物样品分析方法学样品制备表-准确度与精密度
sp008: {

+ 4
- 0
src/lang/zh/template/lba.js View File

@ -26,6 +26,10 @@ export default {
ysjzjrz: '预设基质加入值',
sjjzjrz: '实际基质加入值'
},
lba005: {
bzqxpz: '标准曲线配制',
zkpz: '质控配制'
},
lba006: {
fxtj: '分析条件',
fxsj: '分析时间',

+ 8
- 0
src/lang/zh/template/pcr.js View File

@ -36,6 +36,14 @@ export default {
// PCR分析样品处理表
pcr005: {
clpbh: '处理批编号',
ypmc: '样品名称',
ypcsnd: '样品初始浓度',
sxbs: '稀释倍数',
ysypxytj: '预设样品吸样体积',
sjypxytj: '实际样品吸样体积',
ysxsyxytj: '预设稀释液吸样体积',
sjxsyxytj: '实际稀释液吸样体积',
ypznd: '样品终浓度',
},
// 生物样品分析方法学样品制备表-Recovery
sp009: {

+ 7
- 1
src/views/business/comps/template/TemplateTable.vue View File

@ -56,7 +56,9 @@ import PCR005 from "./comps/pcr/PCR005.vue";
import LBA002 from "./comps/lba/LBA002.vue";
import LBA003 from "./comps/lba/LBA003.vue";
import LBA004 from "./comps/lba/LBA004.vue";
import LBA005 from "./comps/lba/LBA005.vue";
import LBA006 from "./comps/lba/LBA006.vue";
import LBA007 from "./comps/lba/LBA007.vue";
//ADA
// ADA001-使SP001
@ -85,7 +87,9 @@ export default {
LBA002,
LBA003,
LBA004,
LBA006
LBA005,
LBA006,
LBA007
},
props: {
sn: {
@ -159,7 +163,9 @@ export default {
'LBA002': 'LBA002',
'LBA003': 'LBA003',
'LBA004': 'LBA004',
'LBA005': 'LBA005',
'LBA006': 'LBA006',
'LBA007': 'LBA007',
//ADA
'ADA001': 'SP001',
'ADA002': 'LBA002',

+ 4
- 4
src/views/business/comps/template/comps/gsp/GSP009.vue View File

@ -130,6 +130,7 @@ export default {
fillType: "actFill",
otherCode: "actOther",
multiple: true,
compareTo: "pre",
options: this.getDictOptions('business_pztj')
}
}
@ -274,7 +275,7 @@ export default {
sxrq: null,
kc: null,
kcdw: null,
type: 1,
type: paralleConfigs.xzlx,
syl: null,
syldw: null,
yxzq: null,
@ -291,7 +292,6 @@ export default {
row.syl = null
});
debugger
//使
this.resourceTmp = tmpResource
this.yqResourceTmp = []
@ -323,7 +323,7 @@ export default {
//
deleteParalleConfig(index) {
if(this.formData.paralleConfigs.length===1){
// this.$message.error("1");
this.$message.error("至少需要1个");
return;
}
this.formData.paralleConfigs.splice(index, 1);
@ -332,7 +332,7 @@ export default {
debugger
},
onTableRegentSubmit(val1,va2,va3){
debugger
this.$refs[`paralleStepFormPackageRef_${va2}`][0].updateFormData('xzlx',va3.selectInfo.selectType)
}
}
};

+ 8
- 3
src/views/business/comps/template/comps/lba/LBA004.vue View File

@ -250,8 +250,9 @@ export default {
prop: 'xsbs',
width: 150,
showWidth: 120,
bodyType: 'input',
bodyFillType: 'preFill'
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10
},
{
label: 'template.lba.lba004.ysypjrz',
@ -264,6 +265,7 @@ export default {
headerSelectKey: 'ysypjrzUnit',
headerSelectTo: 'sjypjrzUnit',
headerOptions: this.getDictOptions('business_tjdw'),
bodyMaxlength: 10
},
{
label: 'template.lba.lba004.sjypjrz',
@ -277,6 +279,7 @@ export default {
copyFrom: 'ysypjrz',
headerSelectKey: 'sjypjrzUnit',
headerOptions: this.getDictOptions('business_tjdw'),
bodyMaxlength: 10
},
{
label: 'template.lba.lba004.ysjzjrz',
@ -289,6 +292,7 @@ export default {
headerSelectKey: 'ysjzjrzUnit',
headerSelectTo: 'sjjzjrzUnit',
headerOptions: this.getDictOptions('business_tjdw'),
bodyMaxlength: 10
},
{
label: 'template.lba.lba004.sjjzjrz',
@ -302,6 +306,7 @@ export default {
copyFrom: 'ysjzjrz',
headerSelectKey: 'sjjzjrzUnit',
headerOptions: this.getDictOptions('business_tjdw'),
bodyMaxlength: 10
}
]
}
@ -458,7 +463,7 @@ export default {
//
deleteParalleConfig(index) {
if(this.formData.paralleConfigs.length===1){
// this.$message.error("1");
this.$message.error("至少需要1个");
return;
}
this.formData.paralleConfigs.splice(index, 1);

+ 1041
- 0
src/views/business/comps/template/comps/lba/LBA005.vue
File diff suppressed because it is too large
View File


+ 60
- 10
src/views/business/comps/template/comps/lba/LBA006.vue View File

@ -16,9 +16,9 @@
</div>
<!-- 平行配制区域 -->
<div :label="$t('template.common.pxpz')"
<div
v-for="(paralleConfig, paralleIndex) in formData.paralleConfigs"
:key="'paralle_' + paralleIndex">
:key="'paralle_' + paralleConfig.uuid">
<div class="template-form-item">
<div class="config-header-end" v-if="fillType === 'actFill'">
@ -26,7 +26,7 @@
</div>
<BaseInfoFormPackage @clickable="(e) => handleClickable('paralle', paralleIndex, e)"
:ref="`paralleStepFormPackageRef_${paralleIndex}`" :formConfig="paralleStepFormConfig"
:formData="paralleConfig" :prefixKey="'paralle' + paralleIndex"
:formData="paralleConfig" :prefixKey="'paralle' + paralleConfig.uuid"
fieldItemLabel="template.lba.lba006.fxxx" />
</div>
</div>
@ -37,10 +37,12 @@
</div>
</div>
<!-- <button @click="onSave">保存</button> -->
<EditSign ref="editSignLAB006Ref" @cancel="signCancel" @callback="signCallback" />
</div>
</template>
<script>
import EditSign from "../../dialog/EditSign.vue";//
import BaseInfoFormPackage from "@/components/Template/BaseInfoFormPackage";
import LineLabel from "@/components/Template/LineLabel";
import TableList from "@/components/Template/Table";
@ -48,14 +50,15 @@ import Step from "@/components/Template/Step";
import templateMixin from "../../mixins/templateMixin";
import { EventBus } from "@/utils/eventBus";
import { uniqeResource,uniqeResourceOne } from "@/utils/calUnitTools";
import { duplicateResource } from "@/utils/index.js";
import { duplicateResource,getuuid } from "@/utils/index.js";
import { debounce } from 'lodash-es';
import CustomTable from '@/components/Template/CustomTable.vue';
import TableOpertaionDelete from "@/components/Template/operation/TableOpertaionDelete.vue"
import moment from "moment";
export default {
name: "LBA006",
components: { BaseInfoFormPackage, LineLabel, TableList, Step,CustomTable,TableOpertaionDelete },
components: { BaseInfoFormPackage, LineLabel, TableList, Step,CustomTable,TableOpertaionDelete,EditSign },
mixins: [templateMixin],
props: {
fillType: {
@ -179,7 +182,8 @@ export default {
},
data() {
return {
formData: {}
formData: {},
deleteIndex:-1
};
},
mounted() {
@ -201,7 +205,8 @@ export default {
paralleConfigsData.push({
...paralleFormData,
showParalleConfig: true
showParalleConfig: true,
uuid:this.formData.paralleConfigs[i].uuid
});
}
}
@ -259,18 +264,63 @@ export default {
}
//
this.formData.paralleConfigs.push({
showParalleConfig: true
showParalleConfig: true,
uuid:getuuid()
});
}
},
//
deleteParalleConfig(index) {
debugger
if(this.formData.paralleConfigs.length===1){
// this.$message.error("1");
this.$message.error("至少需要1个");
return;
}
this.checkDelete(index)
},
checkDelete(index){
let content = this.getFilledFormData()
let thisItem = content.paralleConfigs[index]
if(!thisItem.jcb && !thisItem.jg && !thisItem.sjwjm){
this.doDeleteParalleConfig(index,null)
}else{
this.deleteIndex = index
this.$refs.editSignLAB006Ref.show();
}
},
//
signCancel() {
},
//
signCallback(data) {
let content = this.getFilledFormData()
let record = [
{
"userNameCn": data.qmrMc,
"userNameEn": data.qmrMcEn,
"key": "paralle",
"fieldCn": this.$t('template.lba.lba006.fxxx','zh_CN'),
"fieldEn": this.$t('template.lba.lba006.fxxx','en_US'),
// "oldValue": content.paralleConfigs[this.deleteIndex].jcb+";"+content.paralleConfigs[this.deleteIndex].jg+";"+(content.paralleConfigs[this.deleteIndex].jg===''?''(content.paralleConfigs[this.deleteIndex].jgOther+";"))+content.paralleConfigs[this.deleteIndex].sjwjm,
"oldValue": content.paralleConfigs[this.deleteIndex].jcb+";"+content.paralleConfigs[this.deleteIndex].jg+";"+content.paralleConfigs[this.deleteIndex].jgOther+";"+content.paralleConfigs[this.deleteIndex].sjwjm,
"value": "",
"title": "修改",
"time": moment().format("YYYY-MM-DD HH:mm:ss"),
"reason": data.remark
}
]
this.doDeleteParalleConfig(this.deleteIndex,record)
},
doDeleteParalleConfig(index,newRecord){
this.formData.paralleConfigs.splice(index, 1);
const params = {
type: "fieldChanged",
newRecord: newRecord,
resourceList: null,
}
setTimeout(() => {
EventBus.$emit('onModifyRecord', params,)
}, 10);
},
//
deleteRow(rowIndex, type, configIndex = 0) {

+ 1041
- 0
src/views/business/comps/template/comps/lba/LBA007.vue
File diff suppressed because it is too large
View File


+ 3
- 3
src/views/business/comps/template/comps/pcr/PCR005.vue View File

@ -20,7 +20,7 @@
<el-button type="primary" @click="exportExcel(['a', 'b', 'c', 'd'])">{{ $t('template.common.downloadTemplate') }}</el-button>
<el-button type="primary" @click="showImportExcelDialog">{{ $t('template.common.importTemplate') }}</el-button>
<CustomTable @blur="onHandleTableBlur" :ref="`stepTableRef`" :columns="tableStepColumns"
:formData="formData" :prefixKey="`table`" @clickable="handleClickable"
:formData="formData" :prefixKey="`table`"
fieldItemLabel="template.common.operationSteps">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaion :fillType="fillType" :row="row" :rowIndex="rowIndex" :columns="columns"
@ -50,7 +50,7 @@ import CustomTable from '@/components/Template/CustomTable.vue';
import { getLatestSnArr } from '@/api/template';
import { EventBus } from "@/utils/eventBus";
import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue';
import { getLadderColumnsConfig } from "../../formConfig/PCRTableConfig.js";
import { getPCR005Config } from "../../formConfig/PCRTableConfig.js";
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import { addTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools";
@ -66,7 +66,7 @@ export default {
},
computed: {
tableStepColumns() {
return getLadderColumnsConfig(this, 'business_pcr_fxzkypzbb');
return getPCR005Config(this);
},
//
storageFormConfig() {

+ 112
- 0
src/views/business/comps/template/formConfig/PCRTableConfig.js View File

@ -579,3 +579,115 @@ export const getParalleStepFormConfig = ($this) => {
}
]
}
// PCR005
export const getPCR005Config = ($this) => {
return [
{
label: 'template.pcr.pcr005.ypmc',
prop: 'ypmc',
width: 280,
bodyType: 'input',
fillType: 'preFill',
otherCode: 'bhOther',
bodyFillType: 'preFill',
},
{
label: 'template.pcr.pcr005.ypcsnd',
prop: 'ypcsnd',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'ypcsndUnit',
headerOptions: $this.getDictOptions('business_nddw'),
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10,
},
{
label: 'template.pcr.pcr005.sxbs',
prop: 'sxbs',
width: 280,
showWidth: 180,
fillType: 'preFill',
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10,
},
{
label: 'template.pcr.pcr005.ysypxytj',
prop: 'ysypxytj',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'ysypxytjUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10,
},
{
label: 'template.pcr.pcr005.sjypxytj',
prop: 'sjypxytj',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'sjypxytjUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'actFill',
bodyMaxlength: 10,
},
{
label: 'template.pcr.pcr005.ysxsyxytj',
prop: 'ysxsyxytj',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'ysxsyxytjUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10,
bodySubType: 'inputNumber',
bodySubKey: 'actSolutionVolumePrecision',
bodyFillType: 'preFill',
bodySubFillType: 'preFill',
showBodySub: $this.fillType === 'preFill',
bodyPrecisionKey: 0,
bodyMaxlength: 10,
bodySubPlaceholder: 'template.common.xswsPlaceholder',
},
{
label: 'template.pcr.pcr005.sjxsyxytj',
prop: 'sjxsyxytj',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'sjxsyxytjUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'actFill',
bodyMaxlength: 10,
},
{
label: 'template.pcr.pcr005.ypznd',
prop: 'ypznd',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'ypzndUnit',
headerOptions: $this.getDictOptions('business_nddw'),
bodyType: 'inputNumber',
bodyFillType: 'preFill',
bodyMaxlength: 10,
bodySubType: 'inputNumber',
bodySubKey: 'targetDiluentVolumePrecision',
bodyPrecisionKey: 'targetDiluentVolumePrecision',
bodySubFillType: 'preFill',
showBodySub: $this.fillType === 'preFill',
bodyMaxlength: 10,
bodySubPlaceholder: 'template.common.xswsPlaceholder',
},
]
}

+ 1
- 1
src/views/business/systemLog/comp/dlrz.vue View File

@ -28,7 +28,7 @@
</el-table-column>
<el-table-column :label="$t('page.system.systemLog.czxq')">
<template slot-scope="scope">
<span>{{scope.row.msg}}</span>
<span>{{$i18n.locale === 'zh_CN' ? scope.row.msg : scope.row.msgEn}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('page.business.archive.czsj')" align="center" prop="accessTime" width="200" />

Loading…
Cancel
Save