| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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> | |||
| @ -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, | |||
| } | |||
| ] | |||
| } | |||