Browse Source

<el-popconfirm

ouqian
luojie 1 month ago
parent
commit
ba05e96c90
35 changed files with 2497 additions and 8 deletions
  1. +147
    -2
      src/components/Template/Step.vue
  2. +118
    -0
      src/components/Template/StepComponents/jcb/czqx.vue
  3. +77
    -0
      src/components/Template/StepComponents/jcb/czzx.vue
  4. +79
    -0
      src/components/Template/StepComponents/jcb/czzy.vue
  5. +1
    -1
      src/components/Template/StepComponents/jcb/dbmby.vue
  6. +37
    -0
      src/components/Template/StepComponents/jcb/js_jcb.vue
  7. +37
    -0
      src/components/Template/StepComponents/jcb/qb.vue
  8. +109
    -0
      src/components/Template/StepComponents/jcb/sjbj.vue
  9. +111
    -0
      src/components/Template/StepComponents/jcb/ychy.vue
  10. +1
    -1
      src/components/Template/StepComponents/qxwdx/qxfz.vue
  11. +37
    -0
      src/components/Template/StepComponents/ry/fz.vue
  12. +55
    -0
      src/components/Template/StepComponents/xbjzpz/cd.vue
  13. +90
    -0
      src/components/Template/StepComponents/xbjzpz/cdmd.vue
  14. +107
    -0
      src/components/Template/StepComponents/xbjzpz/cdxs.vue
  15. +71
    -0
      src/components/Template/StepComponents/xbjzpz/copy.vue
  16. +43
    -0
      src/components/Template/StepComponents/xbjzpz/dypyy.vue
  17. +65
    -0
      src/components/Template/StepComponents/xbjzpz/fr_xbjzpz.vue
  18. +51
    -0
      src/components/Template/StepComponents/xbjzpz/gc.vue
  19. +86
    -0
      src/components/Template/StepComponents/xbjzpz/jzzy.vue
  20. +118
    -0
      src/components/Template/StepComponents/xbjzpz/lxqy.vue
  21. +53
    -0
      src/components/Template/StepComponents/xbjzpz/qjz.vue
  22. +53
    -0
      src/components/Template/StepComponents/xbjzpz/qxb.vue
  23. +59
    -0
      src/components/Template/StepComponents/xbjzpz/xbzy.vue
  24. +96
    -0
      src/components/Template/StepComponents/xbjzpz/xd.vue
  25. +1
    -1
      src/components/Template/StepFormPackage.vue
  26. +12
    -0
      src/lang/en/template/lba.js
  27. +5
    -0
      src/lang/en/template/pcr.js
  28. +12
    -0
      src/lang/zh/template/lba.js
  29. +5
    -0
      src/lang/zh/template/pcr.js
  30. +6
    -1
      src/views/business/comps/template/TemplateTable.vue
  31. +363
    -0
      src/views/business/comps/template/comps/lba/LBA008.vue
  32. +1
    -1
      src/views/business/comps/template/comps/pcr/PCR003.vue
  33. +1
    -1
      src/views/business/comps/template/comps/pcr/PCR004.vue
  34. +313
    -0
      src/views/business/comps/template/comps/pcr/PCR012.vue
  35. +77
    -0
      src/views/business/comps/template/formConfig/lba/lba008.js

+ 147
- 2
src/components/Template/Step.vue View File

@ -79,6 +79,7 @@ import kbyq from "./StepComponents/ry/kbyq.vue";//溶液-空白仪器
import kbsjgsp from "./StepComponents/ry/kbsjgsp.vue";//-/ import kbsjgsp from "./StepComponents/ry/kbsjgsp.vue";//-/
import kb from "./StepComponents/ry/kb.vue";//- import kb from "./StepComponents/ry/kb.vue";//-
import jr from "./StepComponents/ry/jr.vue";//- import jr from "./StepComponents/ry/jr.vue";//-
import fz from "./StepComponents/ry/fz.vue";//-
// //
// //
@ -225,6 +226,61 @@ import cbygxz from './StepComponents/pcrfxyp/cbygxz.vue';//PCR分析样品处理
import yxpcry from './StepComponents/pcrfxyp/yxpcry.vue';//PCR-PCR import yxpcry from './StepComponents/pcrfxyp/yxpcry.vue';//PCR-PCR
import cdnsypfz from './StepComponents/pcrfxyp/cdnsypfz.vue';//PCR-cDNA import cdnsypfz from './StepComponents/pcrfxyp/cdnsypfz.vue';//PCR-cDNA
//
import bb from './StepComponents/jcb/bb.vue';//-
//-使-
//-使-
import jy from './StepComponents/jcb/jy.vue';//-
//-使-
//-使-
//-使-
import sjjy_jcb from './StepComponents/jcb/sjjy_jcb.vue';//-
import zhfy from './StepComponents/jcb/zhfy.vue';//-
//-使-
import xs_jcb from './StepComponents/jcb/xs_jcb.vue';//-
//-使-
//-使-
import dbmby from './StepComponents/jcb/dbmby.vue';//-
//-使-
import dbdhxfgxt from './StepComponents/jcb/dbdhxfgxt.vue';//-
import dbygxt from './StepComponents/jcb/dbygxt.vue';//-
import dzacl from './StepComponents/jcb/dzacl.vue';//-ACL
import qb from './StepComponents/jcb/qb.vue';//-
import jzks from './StepComponents/jcb/jzks.vue';//-
import fyxks from './StepComponents/jcb/fyxks.vue';//-
import ycfyks from './StepComponents/jcb/ycfyks.vue';//-
import ycks from './StepComponents/jcb/ycks.vue';//-
import js_jcb from './StepComponents/jcb/js_jcb.vue';//-
//-使-ACL
//-使-ACL
import czqx from './StepComponents/jcb/czqx.vue';//-
import czzx from './StepComponents/jcb/czzx.vue';//-
import ychy from './StepComponents/jcb/ychy.vue';//-
import czzy from './StepComponents/jcb/czzy.vue';//-
import sjbj from './StepComponents/jcb/sjbj.vue';//-
///
import qxb from './StepComponents/xbjzpz/qxb.vue';///-
import qjz from './StepComponents/xbjzpz/qjz.vue';///-
import fr_xbjzpz from './StepComponents/xbjzpz/fr_xbjzpz.vue';///-
import lxqy from './StepComponents/xbjzpz/lxqy.vue';///-
import cd from './StepComponents/xbjzpz/cd.vue';///-
import xbzy from './StepComponents/xbjzpz/xbzy.vue';///-
import jzzy from './StepComponents/xbjzpz/jzzy.vue';///-
import dypyy from './StepComponents/xbjzpz/dypyy.vue';///-
import xd from './StepComponents/xbjzpz/xd.vue';///-
///-使/-
///-使/-
import copy from './StepComponents/xbjzpz/copy.vue';///-CO2
import gc from './StepComponents/xbjzpz/gc.vue';///-
import cdmd from './StepComponents/xbjzpz/cdmd.vue';///-
///-使/-
///-使/-
import cdxs from './StepComponents/xbjzpz/cdxs.vue';///-/
import { public_templateStepList } from '@/api/business/public/public'; import { public_templateStepList } from '@/api/business/public/public';
@ -345,6 +401,7 @@ export default {
kbsjgsp, kbsjgsp,
kb, kb,
jr, jr,
fz,
// //
// //
@ -432,6 +489,43 @@ export default {
yxpcry, yxpcry,
cdnsypfz, cdnsypfz,
//
bb,
jy,
sjjy_jcb,
zhfy,
xs_jcb,
dbmby,
dbdhxfgxt,
dbygxt,
dzacl,
qb,
jzks,
fyxks,
ycfyks,
ycks,
js_jcb,
czqx,
czzx,
ychy,
czzy,
sjbj,
///
qxb,
qjz,
fr_xbjzpz,
lxqy,
cd,
xbzy,
jzzy,
dypyy,
xd,
copy,
gc,
cdmd,
cdxs,
}, },
computed: { computed: {
stepComponentMap() { stepComponentMap() {
@ -483,7 +577,7 @@ export default {
'kbsjgsp': 'kbsjgsp', 'kbsjgsp': 'kbsjgsp',
'kb': 'kb', 'kb': 'kb',
'jr': 'jr', 'jr': 'jr',
// 'fz': 'fz',
'fz': 'fz',
// //
// //
@ -608,7 +702,58 @@ export default {
'cbygxz':'cbygxz', 'cbygxz':'cbygxz',
'yxpcry':'yxpcry', 'yxpcry':'yxpcry',
'cdnsypfz':'cdnsypfz', 'cdnsypfz':'cdnsypfz',
//
'bb':'bb',
'xb':'bb',
'fb_jcb':'bb',
'jy':'jy',
'zh':'bb',
'jjcsj':'bb',
'sj':'bb',
'sjjy_jcb':'sjjy_jcb',
'zhfy':'zhfy',
'ecsj_jcb':'bb',
'xs_jcb':'xs_jcb',
'zz':'bb',
'jc':'bb',
'dbmby':'dbmby',
'dbhxfgxt':'dbmby',
'dbdhxfgxt':'dbdhxfgxt',
'dbygxt':'dbygxt',
'dzacl':'dzacl',
'qb':'qb',
'jzks':'jzks',
'fyxks':'fyxks',
'ycfyks':'ycfyks',
'ycks':'ycks',
'js_jcb':'js_jcb',
'fm':'dzacl',
'pg':'dzacl',
'czqx':'czqx',
'czzx':'czzx',
'ychy':'ychy',
'czzy':'czzy',
'sjbj':'sjbj',
///
'qxb':'qxb',
'qjz':'qjz',
'fr_xbjzpz':'fr_xbjzpz',
'lxqy':'lxqy',
'cd':'cd',
'xbzy':'xbzy',
'jzzy':'jzzy',
'dypyy':'dypyy',
'xd':'xd',
'xh':'xd',
'zzxh':'xd',
'copy':'copy',
'gc':'gc',
'cdmd':'cdmd',
'ds':'xd',
'gd':'xd',
'cdxs':'cdxs',
} }
} }
return this.componentMap return this.componentMap

+ 118
- 0
src/components/Template/StepComponents/jcb/czqx.vue View File

@ -0,0 +1,118 @@
<!-- 磁珠清洗 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_czqx'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'czqx',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,吸取磁珠,预计吸取",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text4:{
label: ",实际吸取",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5:{
label: ",再使用",
type: "text",
},
yqmc1: {
fillType: "preFill",
type: "input",
},
yq1: {
fillType: "actFill",
type: "yq",
},
text6:{
type:"text",
label:"进行磁珠清洗,清洗",
},
startDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button1:{
type:"button",
buttonName:"开始",
},
text7:{
type:"text",
label:",清洗",
},
endDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button2:{
type:"button",
buttonName:"结束",
},
text8: {
type: "text",
label: "。",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 77
- 0
src/components/Template/StepComponents/jcb/czzx.vue View File

@ -0,0 +1,77 @@
<!-- 磁珠重悬 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_czzx'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'czzx',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,加入",
type: "text",
},
rymc:{
fillType: "preFill",
type: "input",
},
ry:{
fillType: "actFill",
type: "sj",
ylCode: "sjtj",
dwCode: "sjtjdw",
},
text3:{
label: "溶液,按清洗体积实际加入",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5:{
label: ",进行磁珠重悬。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 79
- 0
src/components/Template/StepComponents/jcb/czzy.vue View File

@ -0,0 +1,79 @@
<!-- 磁珠转移 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_czzy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'czzy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,转移磁珠,预计转移体积",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text4:{
label: ",实际转移体积",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5:{
label: "至深孔板。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 1
- 1
src/components/Template/StepComponents/jcb/dbmby.vue View File

@ -1,5 +1,5 @@
<!-- 读板酶标仪 --> <!-- 读板酶标仪 -->
<!-- 读板化学发光系统 -->
<!-- 读板化学发光系统 -->
<template> <template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_dbmby'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" /> <StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_dbmby'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template> </template>

+ 37
- 0
src/components/Template/StepComponents/jcb/js_jcb.vue View File

@ -0,0 +1,37 @@
<!-- 结束 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_js_jcb'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'js_jcb',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "待处理。。。。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 37
- 0
src/components/Template/StepComponents/jcb/qb.vue View File

@ -0,0 +1,37 @@
<!-- 取板 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_qb'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'qb',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "待处理。。。。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 109
- 0
src/components/Template/StepComponents/jcb/sjbj.vue View File

@ -0,0 +1,109 @@
<!-- 试剂标记 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_sjbj'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'sjbj',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,分别向",
type: "text",
},
jg: {
fillType: "preFill",
type: "input",
},
tyz: {
fillType: "preFill",
type: "input",
},
text3: {
label: "加入",
type: "text",
},
rymc:{
fillType: "preFill",
type: "input",
},
ry:{
fillType: "actFill",
type: "sj",
ylCode: "sjtj",
dwCode: "sjtjdw",
},
text4:{
label: "溶液,预计各加入体积为",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text5:{
label: ",实际各加入体积为",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text6:{
label: "。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 111
- 0
src/components/Template/StepComponents/jcb/ychy.vue View File

@ -0,0 +1,111 @@
<!-- 摇床混匀 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'jcb_ychy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'ychy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用摇床",
type: "text",
},
yq: {
type: "yq",
fillType: "actFill",
},
text2: {
label: "仪器,设置预计转速为",
type: "text",
},
sjjrl: {
type: "inputNumber",
fillType: "preFill",
},
sjjrldw: {
type: "select",
options: this.getDictOptions("business_zsdw"),
selectTo: "sjzsdw",
fillType: "preFill",
},
text3: {
label: ",实际设置转速为",
type: "text",
},
jxry: {
type: "inputNumber",
fillType: "actFill",
compareTo:"sjjrl",
copyFrom:"sjjrl"
},
sjzsdw: {
type: "select",
options: this.getDictOptions("business_zsdw"),
fillType: "preFill",
},
text4: {
label: ",振荡",
type: "text",
},
zdtime: {
type: "input",
fillType: "preFill",
},
text5: {
label: ",振荡",
type: "text",
},
startDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button1:{
type:"button",
buttonName:"开始",
},
text6:{
type:"text",
label:",振荡",
},
endDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button2:{
type:"button",
buttonName:"结束",
},
text7: {
type: "text",
label: "。",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 1
- 1
src/components/Template/StepComponents/qxwdx/qxfz.vue View File

@ -1,4 +1,4 @@
<!-- 匀浆液分装2 -->
<!-- 全血分装 -->
<template> <template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'qxwdx_qxfz'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" /> <StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'qxwdx_qxfz'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template> </template>

+ 37
- 0
src/components/Template/StepComponents/ry/fz.vue View File

@ -0,0 +1,37 @@
<!-- 分装 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'ry_fz'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'fz',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "待处理。。。。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 55
- 0
src/components/Template/StepComponents/xbjzpz/cd.vue View File

@ -0,0 +1,55 @@
<!-- 吹打 -->
<template>
<StepFormPackage ref = "stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_cd'" @resetRecord = "resetRecord" :form-config="formConfig" :formData = "formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'cd',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config:{
text1:{
label:"使用",
type:"text",
},
yqmc:{
type:"input",
fillType:"preFill",
},
yq:{
type:"yq",
fillType:"actFill",
},
text2:{
label:"仪器,吹打均匀。",
type:"text",
},
check:{
type:"checkbox",
fillType:"actFill",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped>
</style>

+ 90
- 0
src/components/Template/StepComponents/xbjzpz/cdmd.vue View File

@ -0,0 +1,90 @@
<!-- 测定密度 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_cdmd'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'cdmd',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用倒置显微镜",
type: "text",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,进行",
type: "text",
},
cs: {
fillType: "preFill",
type: "inputNumber",
},
text3: {
label: "次测定,每次滴片体积预计为",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text4:{
label: ",实际滴片体积为",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5:{
label: "平均细胞密度为",
type: "text",
},
gs: {
fillType: "actFill",
type: "inputNumber",
},
text6:{
label: "个/mL。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 107
- 0
src/components/Template/StepComponents/xbjzpz/cdxs.vue View File

@ -0,0 +1,107 @@
<!-- 传代/稀释 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_cdxs'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'cdxs',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,吸取细胞悬液",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
},
sjtjdw:{
fillType: "actFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text3:{
label: ",同时使用",
type: "text",
},
yqmc1: {
fillType: "preFill",
type: "input",
},
yq1: {
fillType: "actFill",
type: "yq",
},
text4: {
label: "吸取",
type: "text",
},
rymc:{
fillType: "preFill",
type: "input",
},
ry:{
fillType: "actFill",
type: "sj",
ylCode: "sjtj2",
dwCode: "sjtjdw2",
},
sjtj2:{
fillType: "actFill",
type: "inputNumber",
},
sjtjdw2:{
fillType: "actFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5: {
label: "至",
type: "text",
},
pyp:{
fillType: "preFill",
type: "input",
},
text6: {
label: "中。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 71
- 0
src/components/Template/StepComponents/xbjzpz/copy.vue View File

@ -0,0 +1,71 @@
<!-- CO2培养 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_copy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'copy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用CO2培养箱",
type: "text",
},
yq: {
type: "yq",
fillType: "actFill",
},
text2: {
label: "仪器,在温度为37±2°C、CO2浓度为5%±0.5%的条件下进行培养,培养",
type: "text",
},
startDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button1:{
type:"button",
buttonName:"开始",
},
text7:{
type:"text",
label:",培养",
},
endDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button2:{
type:"button",
buttonName:"结束",
},
text8: {
type: "text",
label: "。",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 43
- 0
src/components/Template/StepComponents/xbjzpz/dypyy.vue View File

@ -0,0 +1,43 @@
<!-- 倒原培养液 -->
<template>
<StepFormPackage ref = "stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_dypyy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData = "formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'dypyy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config:{
text1:{
label:"倒掉原培养液。",
type:"text",
},
check:{
type:"checkbox",
fillType:"actFill",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped>
</style>

+ 65
- 0
src/components/Template/StepComponents/xbjzpz/fr_xbjzpz.vue View File

@ -0,0 +1,65 @@
<!-- 复溶 -->
<template>
<StepFormPackage ref = "stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_fr_xbjzpz'" @resetRecord = "resetRecord" :form-config="formConfig" :formData = "formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'fr_xbjzpz',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config:{
text1:{
label:"使用恒温水浴锅",
type:"text",
},
yq:{
type:"yq",
fillType:"actFill",
},
text2:{
label:",设置预计温度",
type:"text",
},
temp:{
type:"inputNumber",
fillType:"preFill",
},
text3:{
label:"°C,设置实际温度",
type:"text",
},
actTemp:{
type:"inputNumber",
fillType:"actFill",
compareTo:"temp",
copyFrom:"temp",
},
text4:{
label:"°C,进行融化。",
type:"text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped>
</style>

+ 51
- 0
src/components/Template/StepComponents/xbjzpz/gc.vue View File

@ -0,0 +1,51 @@
<!-- 观察 -->
<template>
<StepFormPackage ref = "stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_gc'" @resetRecord = "resetRecord" :form-config="formConfig" :formData = "formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'gc',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config:{
text1:{
label:"使用显微镜",
type:"text",
},
yq:{
type:"yq",
fillType:"actFill",
},
text2:{
label:"仪器,进行观察。",
type:"text",
},
check:{
type:"checkbox",
fillType:"actFill",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped>
</style>

+ 86
- 0
src/components/Template/StepComponents/xbjzpz/jzzy.vue View File

@ -0,0 +1,86 @@
<!-- 菌株转移 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_jzzy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'jzzy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,将菌株取出,预计取出体积",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text3:{
label: ",实际取出",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text4:{
label: ",转移到",
type: "text",
},
yqmc1: {
fillType: "preFill",
type: "input",
},
text5:{
label: "。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 118
- 0
src/components/Template/StepComponents/xbjzpz/lxqy.vue View File

@ -0,0 +1,118 @@
<!-- 离心弃液 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_lxqy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'lxqy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用离心机",
type: "text",
},
yq: {
type: "yq",
fillType: "actFill",
},
text2: {
label: "仪器,设置预计转速为",
type: "text",
},
sjjrl: {
type: "inputNumber",
fillType: "preFill",
},
sjjrldw: {
type: "select",
options: this.getDictOptions("business_zsdw"),
selectTo: "sjzsdw",
fillType: "preFill",
},
text5: {
label: ",实际设置转速为",
type: "text",
},
jxry: {
type: "inputNumber",
fillType: "actFill",
compareTo:"sjjrl",
copyFrom:"sjjrl"
},
sjzsdw: {
type: "select",
options: this.getDictOptions("business_zsdw"),
fillType: "preFill",
},
text6: {
label: ",设置预计时长为",
type: "text",
},
sjjrl1: {
type: "inputNumber",
fillType: "preFill",
},
yqsc: {
type: "select",
options: this.getDictOptions("business_yqscdw"),
selectTo: "sjscdw",
fillType: "preFill",
},
text7: {
label: ",实际设置时长为",
type: "text",
},
sjsc: {
type: "inputNumber",
fillType: "actFill",
compareTo:"sjjrl1",
copyFrom:"sjjrl1"
},
sjscdw: {
type: "select",
options: this.getDictOptions("business_yqscdw"),
fillType: "preFill",
},
text8: {
label: ",进行离心。离心",
type: "text",
},
startDate: {
type: "input",
fillType: "actFill",
disabled: true,
},
button1: {
type: "button",
buttonName: "开始",
},
text9: {
label: "离心后倒掉上层清液。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 53
- 0
src/components/Template/StepComponents/xbjzpz/qjz.vue View File

@ -0,0 +1,53 @@
<!-- 取菌株 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_qjz'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'qjz',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "选择液氮罐",
type: "text",
},
yq: {
type: "yq",
fillType: "actFill",
},
text2: {
label: ",取出菌株",
type: "text",
},
xb: {
type: "xj",
fillType: "actFill",
},
text3: {
label: "。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 53
- 0
src/components/Template/StepComponents/xbjzpz/qxb.vue View File

@ -0,0 +1,53 @@
<!-- 取细胞 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_qxb'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'qxb',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "选择液氮罐",
type: "text",
},
yq: {
type: "yq",
fillType: "actFill",
},
text2: {
label: ",取出细胞",
type: "text",
},
xb: {
type: "xb",
fillType: "actFill",
},
text3: {
label: "。",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 59
- 0
src/components/Template/StepComponents/xbjzpz/xbzy.vue View File

@ -0,0 +1,59 @@
<!-- 细胞转移 -->
<template>
<StepFormPackage ref = "stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_xbzy'" @resetRecord = "resetRecord" :form-config="formConfig" :formData = "formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'xbzy',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config:{
text1:{
label:"使用",
type:"text",
},
yqmc:{
type:"input",
fillType:"preFill",
},
yq:{
type:"yq",
fillType:"actFill",
},
text2:{
label:"仪器,将细胞取出,转移到",
type:"text",
},
yqmc1:{
type:"input",
fillType:"preFill",
},
text3:{
label:"。",
type:"text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped>
</style>

+ 96
- 0
src/components/Template/StepComponents/xbjzpz/xd.vue View File

@ -0,0 +1,96 @@
<!-- 洗涤 -->
<!-- 消化 -->
<!-- 终止消化 -->
<!-- 低渗 -->
<!-- 固定 -->
<template>
<StepFormPackage ref="stepFormPackageRef" :prefixKey="stepIndex+'_'+'xbjzpz_xd'" @resetRecord = "resetRecord" :form-config="formConfig" :formData="formData" />
</template>
<script>
import StepFormPackage from '@/components/Template/StepFormPackage.vue';
import stepMixins from '@/components/Template/mixins/stepMixins.js';
export default {
mixins: [stepMixins],
props: {
sn: {
type: String,
default: 'xd',
},
},
components: {
StepFormPackage
},
computed: {
formConfig() {
let config = [{
config: {
text1: {
label: "使用",
type: "text",
},
yqmc: {
fillType: "preFill",
type: "input",
},
yq: {
fillType: "actFill",
type: "yq",
},
text2: {
label: "仪器,吸取",
type: "text",
},
rymc:{
fillType: "preFill",
type: "input",
},
ry:{
fillType: "actFill",
type: "sj",
ylCode: "sjtj",
dwCode: "sjtjdw",
},
text3:{
label: "溶液,预计吸取体积为",
type: "text",
},
yjtj:{
fillType: "preFill",
type: "inputNumber",
},
yjtjdw:{
fillType: "preFill",
type: "select",
selectTo: "sjtjdw",
options:this.getDictOptions('business_tjdw'),
},
text4:{
label: ",实际体积为",
type: "text",
},
sjtj:{
fillType: "actFill",
type: "inputNumber",
compareTo:"yjtj",
copyFrom:"yjtj"
},
sjtjdw:{
fillType: "preFill",
type: "select",
options: this.getDictOptions('business_tjdw'),
},
text5:{
label: this.sn==='xd'? "加入容器中,进行洗涤。":this.sn==='xh'? "加入容器中,进行消化。":this.sn==='zzxh'? "加入容器中,终止消化。":this.sn==='ds'? "加入容器中,进行低渗。":this.sn==='gd'? "加入容器中,进行固定。":"",
type: "text",
},
}
}]
return config
}
},
}
</script>
<style lang="scss" scoped></style>

+ 1
- 1
src/components/Template/StepFormPackage.vue View File

@ -177,7 +177,7 @@ export default {
const sjResource = [],yqResource = []; const sjResource = [],yqResource = [];
for(const key in allFieldsConfig){ for(const key in allFieldsConfig){
const item = allFieldsConfig[key]; const item = allFieldsConfig[key];
if(item.type === "xb" || item.type === "sj" || item.type === "gsp" || item.type === "mix"){
if(item.type === "xj" || item.type === "xb" || item.type === "sj" || item.type === "gsp" || item.type === "mix"){
if(formFields[key]){ if(formFields[key]){
let o = { let o = {
...formFields[`selectInfo_${key}`], ...formFields[`selectInfo_${key}`],

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

@ -37,5 +37,17 @@ export default {
jcb: 'Analysis Plate', jcb: 'Analysis Plate',
jg: 'Result', jg: 'Result',
sjwjm: 'Data file name' sjwjm: 'Data file name'
},
lba008: {
yjtj: '匀浆条件',
yjsj: '匀浆时间',
yjry: '匀浆溶液',
bs: '倍数',
dztpbh: '电子天平编号',
dwbh: '动物编号',
zzlx: '组织类型',
cqzl: '称取重量',
ysyjrybjrl: '预设匀浆溶液补加入量',
sjyjrybjrl: '实际匀浆溶液补加入量',
} }
} }

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

@ -100,6 +100,11 @@ export default {
ysyjrybjrl: '预设匀浆溶液补加入量', ysyjrybjrl: '预设匀浆溶液补加入量',
sjyjrybjrl: '实际匀浆溶液补加入量', sjyjrybjrl: '实际匀浆溶液补加入量',
}, },
pcr012: {
sjwj: '数据文件',
hsndcdwjm: '核酸浓度测定文件名',
hsndcdwjlj: '核酸浓度测定文件路径',
},
// 生物样品分析方法学样品制备表-准确度与精密度 // 生物样品分析方法学样品制备表-准确度与精密度
sp008: { sp008: {
title: title:

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

@ -37,5 +37,17 @@ export default {
jcb: '检测板', jcb: '检测板',
jg: '结果', jg: '结果',
sjwjm: '数据文件名' sjwjm: '数据文件名'
},
lba008: {
yjtj: '匀浆条件',
yjsj: '匀浆时间',
yjry: '匀浆溶液',
bs: '倍数',
dztpbh: '电子天平编号',
dwbh: '动物编号',
zzlx: '组织类型',
cqzl: '称取重量',
ysyjrybjrl: '预设匀浆溶液补加入量',
sjyjrybjrl: '实际匀浆溶液补加入量',
} }
} }

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

@ -99,6 +99,11 @@ export default {
ysyjrybjrl: '预设匀浆溶液补加入量', ysyjrybjrl: '预设匀浆溶液补加入量',
sjyjrybjrl: '实际匀浆溶液补加入量', sjyjrybjrl: '实际匀浆溶液补加入量',
}, },
pcr012: {
sjwj: '数据文件',
hsndcdwjm: '核酸浓度测定文件名',
hsndcdwjlj: '核酸浓度测定文件路径',
},
// 生物样品分析方法学样品制备表-Recovery // 生物样品分析方法学样品制备表-Recovery
sp009: { sp009: {
title: '生物样品分析方法学样品制备表(Recovery)', title: '生物样品分析方法学样品制备表(Recovery)',

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

@ -60,6 +60,7 @@ import PCR008 from "./comps/pcr/PCR008.vue";
import PCR009 from "./comps/pcr/PCR009.vue"; import PCR009 from "./comps/pcr/PCR009.vue";
import PCR010 from "./comps/pcr/PCR010.vue"; import PCR010 from "./comps/pcr/PCR010.vue";
import PCR011 from "./comps/pcr/PCR011.vue"; import PCR011 from "./comps/pcr/PCR011.vue";
import PCR012 from "./comps/pcr/PCR012.vue";
//LBA //LBA
// LBA001-使SP001 // LBA001-使SP001
@ -69,6 +70,7 @@ import LBA004 from "./comps/lba/LBA004.vue";
import LBA005 from "./comps/lba/LBA005.vue"; import LBA005 from "./comps/lba/LBA005.vue";
import LBA006 from "./comps/lba/LBA006.vue"; import LBA006 from "./comps/lba/LBA006.vue";
import LBA007 from "./comps/lba/LBA007.vue"; import LBA007 from "./comps/lba/LBA007.vue";
import LBA008 from "./comps/lba/LBA008.vue";
//ADA //ADA
// ADA001-使SP001 // ADA001-使SP001
@ -135,7 +137,7 @@ export default {
// //
SP001, SP003, SP00456,SP007, SP008, SP009,SP0019,SP0020,SP0021, SP001, SP003, SP00456,SP007, SP008, SP009,SP0019,SP0020,SP0021,
// PCR // PCR
PCR002, PCR003, PCR004, PCR005,PCR007, PCR008, PCR009,PCR010, PCR011,
PCR002, PCR003, PCR004, PCR005,PCR007, PCR008, PCR009,PCR010, PCR011, PCR012,
//LBA //LBA
LBA002, LBA002,
LBA003, LBA003,
@ -143,6 +145,7 @@ export default {
LBA005, LBA005,
LBA006, LBA006,
LBA007, LBA007,
LBA008,
// //
YP002, YP002,
YP003, YP003,
@ -273,6 +276,7 @@ export default {
'PCR009': 'PCR009', 'PCR009': 'PCR009',
'PCR010': 'PCR010', 'PCR010': 'PCR010',
'PCR011': 'PCR011', 'PCR011': 'PCR011',
'PCR012': 'PCR012',
//LBA //LBA
'LBA001': 'SP001', 'LBA001': 'SP001',
'LBA002': 'LBA002', 'LBA002': 'LBA002',
@ -281,6 +285,7 @@ export default {
'LBA005': 'SP00456', 'LBA005': 'SP00456',
'LBA006': 'LBA006', 'LBA006': 'LBA006',
'LBA007': 'SP00456', 'LBA007': 'SP00456',
'LBA008': 'LBA008',
//ADA //ADA
'ADA001': 'SP001', 'ADA001': 'SP001',
'ADA002': 'LBA002', 'ADA002': 'LBA002',

+ 363
- 0
src/views/business/comps/template/comps/lba/LBA008.vue View File

@ -0,0 +1,363 @@
<!-- 配体结合分析组织匀浆表 -->
<template>
<div>
<div class="detail-container">
<div class="detail-title"><img src="@/assets/images/detail-title.png">{{ formData.bdmc }}<img
src="@/assets/images/detail-title.png" /></div>
<div class="detail-content">
<div class="content">
<BaseInfoFormPackage fieldItemLabel="template.common.baseInfo" label="template.common.baseInfo"
ref="baseInfoRef" :formConfig="baseInfoFormConfig" :formData="formData" />
<TableList label="template.common.reagentInfo" :columns="sysjColumns" :dataSource="resource" />
<TableList label="template.common.wzInfo" :columns="sywzColumns" :dataSource="resourceWz" />
<TableList label="template.common.instrumentInfo" :columns="yqColumns" :dataSource="yqResource" />
<LineLabel label="template.common.operationSteps" />
<div class="template-form-item">
<BaseInfoFormPackage fieldItemLabel="template.common.operationSteps" ref="stepFormPackageRef"
:formConfig="stepFormConfig" @blur="onHandleBlur" :formData="formData" />
<div v-if="fillType == 'preFill'">
<el-button type="primary" @click="downloadExcelTemplate">{{
$t('template.common.downloadTemplate') }}</el-button>
<el-button type="primary" @click="showImportExcelDialog">{{
$t('template.common.importTemplate')
}}</el-button>
</div>
<CustomTable @blur="onHandleTableBlur" @headerSelectChange="onHandleTableBlur"
:ref="`stepTableRef`" :columns="tableStepColumns" :formData="formData" :prefixKey="`table`"
:showOperation="fillType === 'preFill'" fieldItemLabel="template.common.operationSteps">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaion :fillType="fillType" :row="row" :rowIndex="rowIndex" :columns="columns"
@deleteRow="(rowIndex) => deleteRow(rowIndex)"></TableOpertaion>
</template>
</CustomTable>
</div>
<Step ref="stepRef" :formData="formData.stepData"></Step>
<BaseInfoFormPackage fieldItemLabel="template.common.remark" label="template.common.remark"
ref="remarkRef" :formConfig="remarkConig" :formData="formData" />
</div>
</div>
</div>
<!-- <button @click="onSave">保存</button> -->
<ImportExcelDialog ref="ImportExcelDialog" @onLoadData="onLoadExcelData" />
</div>
</template>
<script>
import BaseInfoFormPackage from "@/components/Template/BaseInfoFormPackage";
import LineLabel from "@/components/Template/LineLabel";
import TableList from "@/components/Template/Table";
import Step from "@/components/Template/Step";
import templateMixin from "../../mixins/templateMixin.js";
import CustomTable from '@/components/Template/CustomTable.vue';
import { isValueEmpty } from '@/utils/index';
import { getLatestSnArr } from '@/api/template';
import { EventBus } from "@/utils/eventBus";
import { volumeConverter } from "@/utils/volConverter";//
import { convertConcentration } from "@/utils/conConverter";//
import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue';
import { getLBA008Config } from "../../formConfig/lba/lba008.js";
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import { addTj, subTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools";
import ImportExcelDialog from '../../dialog/ImportExcelDialog'
export default {
name: "LBA008",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog, ImportExcelDialog },
mixins: [templateMixin],
props: {
fillType: {
type: String,
default: 'preFill',
},
},
computed: {
tableStepColumns() {
return getLBA008Config(this);
},
//
getFjFormConfig() {
return [
{
type: "attachment",
config: {
attTitle: {
label: 'template.pcr.pcr005.fj',
type: "attachment",
fillType: "actFill",
},
}
}
]
},
//
storageFormConfig() {
return [
{
type: "conditionItem",
config: {
storageCondition: {
label: 'template.common.storageConditionLabel',
type: "select",
fillType: "preFill",
options: this.getDictOptions("business_cctj"),
otherCode: "storageConditionOther",
},
}
}
];
},
//
remarkConig() {
return [
{
type: "cellItem",
config: {
remark: {
label: "",
type: "textarea",
fillType: "actFill",
span: 1,
placeholder: 'template.common.remarkPlaceholder',
maxlength: 1000,
rows: 5
}
}
}
]
},
//
baseInfoFormConfig() {
return [
{
type: "cardItem",
config: {
studyMc: {
label: 'template.common.testName',
type: "input",
disabled: true,
},
studySn: {
label: 'template.common.testNumber',
type: "input",
disabled: true,
},
}
},
{
type: "conditionItem",
label: 'template.lba.lba008.yjtj',
config: {
pre: {
label: 'template.common.preFill',
type: "select",
multiple: true,
fillType: "preFill",
options: this.getDictOptions('business_pztj'),
otherCode: "preOther",
},
act: {
label: 'template.common.actualFill',
type: "select",
fillType: "actFill",
otherCode: "actOther",
multiple: true,
compareTo: "pre",
options: this.getDictOptions('business_pztj')
}
}
},
{
type: "cellItem",
label: 'template.lba.lba008.yjsj',
config: {
startDate: {
label: 'template.common.startTime',
type: "input",
},
endDate: {
label: 'template.common.endTime',
type: "input",
},
}
}
]
},
//
stepFormConfig() {
return [
{
type: 'step',
config: {
yjry: {
label: 'template.lba.lba008.yjry',
type: 'input',
fillType: 'preFill',
subType: 'sj',
subKey: 'yjrybh',
subFillType: 'actFill',
maxlength: 20
},
bs: {
label: 'template.lba.lba008.bs',
type: 'inputNumber',
fillType: 'actFill',
maxlength: 20
},
dztpbh: {
label: 'template.lba.lba008.dztpbh',
type: 'yq',
fillType: 'actFill',
},
}
}
]
},
},
data() {
return {
reagentType: null, // 1- 2-
formData: {},
currentSubKey: "",//key
currentType: "",//
currentRowIndex: "",//
};
},
mounted() {
const formData = this.getFormDataByTemplateData();
this.onHandleTableBlur()
},
methods: {
downloadExcelTemplate() {
this.exportExcel(['动物编号', '组织类型'], '配体结合分析组织匀浆表导入模板')
},
//
onSelectReagentSubmit(code, row) {
},
showImportExcelDialog() {
this.$refs.ImportExcelDialog.show()
},
onLoadExcelData(excelData) {
excelData.shift()
let list = []
excelData.forEach(item => {
list.push({
dwbh: item[0],
zzlx: item[1],
targetStartSolutionVolumePrecision: 3
})
})
this.$refs.stepTableRef.addRows(list)
this.$refs.ImportExcelDialog.cancel()
setTimeout(() => {
this.justUpdateFilledFormData();
}, 100);
},
//
onHandleTableBlur() {
this.updateTable()
},
onHandleBlur(fields) {
this.updateTable()
},
//
updateTable() {
let content = this.getFilledFormData();
let bs = content.bs
if (this.fillType === "actFill") {
let tableList = content.stepTableFormData
if (tableList && tableList.length > 0) {
for (let i = 0; i < tableList.length; i++) {
let item = tableList[i]
if(item.cqzl && bs) {
tableList[i].ysyjrybjrl = item.cqzl * bs
}
}
}
this.$refs.stepTableRef.updateDataSource(tableList);
}
},
//
getFilledFormData() {
return this.getFilledFormDataByRefs(["baseInfoRef", "stepFormPackageRef", "stepTableRef", "stepRef", "remarkRef"])
},
async getFormData() {
let content = await this.validFormFields(["baseInfoRef", "stepFormPackageRef", "stepTableRef", "stepRef", "remarkRef"]);
return content;
},
getResource() {
let content = this.getFilledFormData();
//resource
let tmpResource = []
if (this.fillType === "actFill") {
let tableList = content.stepTableFormData
if (tableList && tableList.length > 0) {
for (let i = 0; i < tableList.length; i++) {
let item = tableList[i]
console.log('表格item:' + JSON.stringify(item))
//使
tmpResource.push({
mc: null,
bh: content.yjrybh,
ph: null,
ndz: null,
nd: null,
nddw: null,
ly: 'ELN配制',
sxrq: null,
kc: null,
kcdw: null,
syl: item.sjyjrybjrl,
type: 1,
elnType: this.product,
syldw: content.headerSelectFields.sjyjrybjrlUnit,
yxzq: null,
yxzqdw: null,
})
}
}
}
if (tmpResource.length > 0) {
tmpResource = uniqeResourceOne(tmpResource)
}
//使
const stepResource = this.$refs.stepRef.getStepResource()
this.resourceTmp = uniqeResource(tmpResource, stepResource.sjResource || [])
this.yqResourceTmp = stepResource.yqResource || []
return this.resourceTmp;
},
//
async onSave() {
let content = this.$refs.stepRef.getStepResource();
console.log(content);
},
//
deleteRow(rowIndex) {
const stepTableRef = this.$refs['stepTableRef'];
if (stepTableRef) {
stepTableRef.deleteRow(rowIndex);
}
},
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
.mt-20 {
margin-top: 20px;
}
.print-btn {
margin-bottom: 20px;
}
</style>

+ 1
- 1
src/views/business/comps/template/comps/pcr/PCR003.vue View File

@ -68,7 +68,7 @@ import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import { addTj,uniqeResource,uniqeResourceOne,addDecimals } from "@/utils/calUnitTools"; import { addTj,uniqeResource,uniqeResourceOne,addDecimals } from "@/utils/calUnitTools";
export default { export default {
name: "PCR002",
name: "PCR003",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog }, components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog },
mixins: [templateMixin], mixins: [templateMixin],
props: { props: {

+ 1
- 1
src/views/business/comps/template/comps/pcr/PCR004.vue View File

@ -68,7 +68,7 @@ import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import { addTj,uniqeResource,uniqeResourceOne,addDecimals } from "@/utils/calUnitTools"; import { addTj,uniqeResource,uniqeResourceOne,addDecimals } from "@/utils/calUnitTools";
export default { export default {
name: "PCR002",
name: "PCR004",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog }, components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog },
mixins: [templateMixin], mixins: [templateMixin],
props: { props: {

+ 313
- 0
src/views/business/comps/template/comps/pcr/PCR012.vue View File

@ -0,0 +1,313 @@
<!-- PCR分析核酸提前浓度测定表 -->
<template>
<div>
<div class="detail-container">
<div class="detail-title"><img src="@/assets/images/detail-title.png">{{ formData.bdmc }}<img
src="@/assets/images/detail-title.png" /></div>
<div class="detail-content">
<div class="content">
<BaseInfoFormPackage fieldItemLabel="template.common.baseInfo" label="template.common.baseInfo"
ref="baseInfoRef" :formConfig="baseInfoFormConfig" :formData="formData" />
<TableList label="template.common.reagentInfo" :columns="sysjColumns" :dataSource="resource" />
<TableList label="template.common.instrumentInfo" :columns="yqColumns" :dataSource="yqResource" />
<LineLabel label="template.common.operationSteps" />
<Step ref="stepRef" :formData="formData.stepData"></Step>
<BaseInfoFormPackage fieldItemLabel="template.pcr.pcr005.fj" label="template.pcr.pcr005.fj"
ref="fjRef" :formConfig="getFjFormConfig" :formData="formData" />
<BaseInfoFormPackage fieldItemLabel="template.pcr.pcr012.sjwj" label="template.pcr.pcr012.sjwj"
ref="dataFileRef" :formConfig="dataFormConfig" :formData="formData" />
<BaseInfoFormPackage fieldItemLabel="template.common.remark" label="template.common.remark"
ref="remarkRef" :formConfig="remarkConig" :formData="formData" />
</div>
</div>
</div>
<!-- <button @click="onSave">保存</button> -->
</div>
</template>
<script>
import BaseInfoFormPackage from "@/components/Template/BaseInfoFormPackage";
import LineLabel from "@/components/Template/LineLabel";
import TableList from "@/components/Template/Table";
import Step from "@/components/Template/Step";
import templateMixin from "../../mixins/templateMixin.js";
import CustomTable from '@/components/Template/CustomTable.vue';
import { isValueEmpty } from '@/utils/index';
import { getLatestSnArr } from '@/api/template';
import { EventBus } from "@/utils/eventBus";
import { volumeConverter } from "@/utils/volConverter";//
import { convertConcentration } from "@/utils/conConverter";//
import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue';
import { getPCR010Config } from "../../formConfig/PCRTableConfig.js";
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import { addTj, subTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools";
import ImportExcelDialog from '../../dialog/ImportExcelDialog'
export default {
name: "PCR011",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog, ImportExcelDialog },
mixins: [templateMixin],
props: {
fillType: {
type: String,
default: 'preFill',
},
},
computed: {
tableStepColumns() {
return getPCR010Config(this);
},
//
storageFormConfig() {
return [
{
type: "conditionItem",
config: {
storageCondition: {
label: 'template.common.storageConditionLabel',
type: "select",
fillType: "preFill",
options: this.getDictOptions("business_cctj"),
otherCode: "storageConditionOther",
},
}
}
];
},
//
remarkConig() {
return [
{
type: "cellItem",
config: {
remark: {
label: "",
type: "textarea",
fillType: "actFill",
span: 1,
placeholder: 'template.common.remarkPlaceholder',
maxlength: 1000,
rows: 5
}
}
}
]
},
//
getFjFormConfig() {
return [
{
type: "attachment",
config: {
attTitle: {
label: 'template.pcr.pcr005.fj',
type: "attachment",
fillType: "actFill",
},
}
}
]
},
//
baseInfoFormConfig() {
return [
{
type: "cardItem",
config: {
studyMc: {
label: 'template.common.testName',
type: "input",
disabled: true,
},
studySn: {
label: 'template.common.testNumber',
type: "input",
disabled: true,
},
}
},
{
type: "conditionItem",
label: 'template.common.processCondition',
config: {
pre: {
label: 'template.common.preFill',
type: "select",
multiple: true,
fillType: "preFill",
options: this.getDictOptions('business_pztj'),
otherCode: "preOther",
},
act: {
label: 'template.common.actualFill',
type: "select",
fillType: "actFill",
otherCode: "actOther",
multiple: true,
compareTo: "pre",
options: this.getDictOptions('business_pztj')
}
}
},
{
type: "cellItem",
label: 'template.pcr.pcr010.clsj',
config: {
startDate: {
label: 'template.common.startTime',
type: "input",
},
endDate: {
label: 'template.common.endTime',
type: "input",
},
}
}
]
},
//
dataFormConfig() {
return [
{
type: "cellItem",
label: '',
config: {
hsndcdwjm: {
label: 'template.pcr.pcr012.hsndcdwjm',
type: "input",
fillType: "actFill",
},
hsndcdwjlj: {
label: 'template.pcr.pcr012.hsndcdwjlj',
type: "input",
fillType: "actFill",
},
}
}
]
},
//
stepFormConfig() {
return [
{
type: 'step',
config: {
yjry: {
label: 'template.pcr.pcr010.yjry',
type: 'input',
fillType: 'preFill',
subType: 'sj',
subKey: 'yjrybh',
subFillType: 'actFill',
maxlength: 20
},
bs: {
label: 'template.pcr.pcr010.bs',
type: 'inputNumber',
fillType: 'actFill',
maxlength: 20
},
dztpbh: {
label: 'template.pcr.pcr010.dztpbh',
type: 'yq',
fillType: 'actFill',
},
}
}
]
},
},
data() {
return {
reagentType: null, // 1- 2-
formData: {},
currentSubKey: "",//key
currentType: "",//
currentRowIndex: "",//
};
},
mounted() {
const formData = this.getFormDataByTemplateData();
},
methods: {
//
getFilledFormData() {
return this.getFilledFormDataByRefs(["baseInfoRef", "stepRef", "fjRef", "remarkRef"])
},
async getFormData() {
let content = await this.validFormFields(["baseInfoRef", "stepRef", "fjRef", "remarkRef"]);
return content;
},
getResource() {
let content = this.getFilledFormData();
//resource
let tmpResource = []
if (this.fillType === "actFill") {
let tableList = content.stepTableFormData
if (tableList && tableList.length > 0) {
for (let i = 0; i < tableList.length; i++) {
//
let item = tableList[i]
console.log('表格item:' + JSON.stringify(item))
//使
tmpResource.push({
mc: null,
bh: content.subSolution,
ph: null,
ndz: null,
nd: null,
nddw: null,
ly: 'ELN配制',
sxrq: null,
kc: null,
kcdw: null,
syl: item.ysxsyxytj,
type: 1,
elnType: this.product,
syldw: content.headerSelectFields.sjxsyxytjUnit,
yxzq: null,
yxzqdw: null,
})
}
}
}
if (tmpResource.length > 0) {
tmpResource = uniqeResourceOne(tmpResource)
}
//使
const stepResource = this.$refs.stepRef.getStepResource()
this.resourceTmp = uniqeResource(tmpResource, stepResource.sjResource || [])
this.yqResourceTmp = stepResource.yqResource || []
return this.resourceTmp;
},
//
async onSave() {
let content = this.$refs.stepRef.getStepResource();
console.log(content);
},
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
.mt-20 {
margin-top: 20px;
}
.print-btn {
margin-bottom: 20px;
}
</style>

+ 77
- 0
src/views/business/comps/template/formConfig/lba/lba008.js View File

@ -0,0 +1,77 @@
// LBA008
export const getLBA008Config = ($this) => {
return [
{
label: 'template.lba.lba008.dwbh',
prop: 'dwbh',
width: 280,
bodyType: 'input',
fillType: 'preFill',
otherCode: 'bhOther',
bodyFillType: 'preFill',
},
{
label: 'template.lba.lba008.zzlx',
prop: 'zzlx',
width: 280,
showWidth: 180,
fillType: 'preFill',
bodyType: 'input',
bodyFillType: 'preFill',
bodyMaxlength: 10,
},
{
label: 'template.lba.lba008.cqzl',
prop: 'cqzl',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'cqzlUnit',
headerOptions: $this.getDictOptions('business_zldw'),
bodyType: 'inputNumber',
bodyFillType: 'actFill',
bodySubType: 'button',
bodySubButtonName: 'form.hqz',
bodyMaxlength: 10,
bodySubFillType: 'actFill',
subPrecision: 0,
showBodySub: $this.fillType === 'actFill',
bodyMaxlength: 10,
bodySubPlaceholder: 'template.common.xswsPlaceholder',
},
{
label: 'template.lba.lba008.ysyjrybjrl',
prop: 'ysyjrybjrl',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'ysyjrybjrlUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'actFill',
bodyMaxlength: 10,
bodySubType: 'inputNumber',
bodySubKey: 'targetStartSolutionVolumePrecision',
bodySubFillType: 'preFill',
showBodySub: $this.fillType === 'preFill',
bodyPrecisionKey: 'targetStartSolutionVolumePrecision',
bodyMaxlength: 10,
bodyDisabled: $this.fillType === 'preFill',
bodySubPlaceholder: 'template.common.xswsPlaceholder',
headerSelectTo:"actStartSolutionVolumeUnit",
},
{
label: 'template.lba.lba008.sjyjrybjrl',
prop: 'sjyjrybjrl',
width: 280,
showWidth: 180,
fillType: 'preFill',
headerSelectKey: 'sjyjrybjrlUnit',
headerOptions: $this.getDictOptions('business_tjdw'),
bodyType: 'inputNumber',
bodyFillType: 'actFill',
copyFrom: 'ysyjrybjrl', //复制哪个字段
bodyMaxlength: 10,
}
]
}

Loading…
Cancel
Save