luojie 2 months ago
parent
commit
5ac419cf0d
27 changed files with 674 additions and 93 deletions
  1. +8
    -0
      src/api/business/public/public.js
  2. +65
    -0
      src/api/business/step/step.js
  3. +9
    -9
      src/lang/en/business/resource/gyzj.js
  4. +9
    -9
      src/lang/en/business/resource/mjy.js
  5. +1
    -1
      src/lang/en/business/study/studyFormApply.js
  6. +3
    -3
      src/lang/en/business/study/studyFormFill.js
  7. +2
    -2
      src/lang/en/business/study/studyFormPlan.js
  8. +1
    -1
      src/lang/en/business/study/studyFormPre.js
  9. +20
    -0
      src/lang/en/template/sp.js
  10. +20
    -0
      src/lang/zh/template/sp.js
  11. +29
    -25
      src/layout/components/Navbar.vue
  12. +11
    -11
      src/views/business/comps/template/comps/gsp/MJYLQSQD.vue
  13. +6
    -4
      src/views/business/comps/template/comps/sp/SWYPFXCBYPZB.vue
  14. +4
    -4
      src/views/business/comps/template/comps/sp/SWYPFXRYPZB.vue
  15. +8
    -2
      src/views/business/resource/gsp/comps/ffjlList.vue
  16. +7
    -1
      src/views/business/resource/gsp/comps/gspList.vue
  17. +8
    -2
      src/views/business/resource/gsp/comps/rkjlList.vue
  18. +5
    -2
      src/views/business/resource/gsp/index.vue
  19. +3
    -2
      src/views/business/resource/gyzj/comps/gyzj/Xq.vue
  20. +3
    -2
      src/views/business/resource/mjy/comps/mjy/Xq.vue
  21. +7
    -2
      src/views/business/resource/sj/list.vue
  22. +5
    -1
      src/views/business/resource/yq/comps/detail.vue
  23. +6
    -5
      src/views/business/resource/yq/list.vue
  24. +180
    -0
      src/views/business/step/list.vue
  25. +224
    -0
      src/views/business/stepGroup/list.vue
  26. +1
    -0
      src/views/business/study/comp/wzlb/mjyList.vue
  27. +29
    -5
      src/views/business/template/list.vue

+ 8
- 0
src/api/business/public/public.js View File

@ -99,3 +99,11 @@ export function public_gspList(query) {
params: query
})
}
// 模板的可选步骤列表
export function public_templateStepList(query) {
return request({
url: '/system/business/public/templateStepList',
method: 'get',
params: query
})
}

+ 65
- 0
src/api/business/step/step.js View File

@ -0,0 +1,65 @@
import request from '@/utils/request'
export function step_list(query) {
return request({
url: '/system/business/step/list',
method: 'get',
params: query
})
}
export function step_info(query) {
return request({
url: '/system/business/step/info',
method: 'get',
params: query
})
}
export function step_save(data) {
return request({
url: '/system/business/step/save',
method: 'post',
data: data
})
}
export function step_delete(data) {
return request({
url: '/system/business/step/delete',
method: 'post',
data: data
})
}
export function stepGroup_list(query) {
return request({
url: '/system/business/stepGroup/list',
method: 'get',
params: query
})
}
export function stepGroup_info(query) {
return request({
url: '/system/business/stepGroup/info',
method: 'get',
params: query
})
}
export function stepGroup_save(data) {
return request({
url: '/system/business/stepGroup/save',
method: 'post',
data: data
})
}
export function stepGroup_delete(data) {
return request({
url: '/system/business/stepGroup/delete',
method: 'post',
data: data
})
}

+ 9
- 9
src/lang/en/business/resource/gyzj.js View File

@ -72,7 +72,7 @@ export default {
ssbd: 'In Record',
bdssr: 'By User',
syr: 'User',
lqghr: 'Recipient/Returner/入库申请人',
lqghr: 'Recipient/Returner/Check-in Applicant',
ffjsr: 'Issuer/Receiver',
czlx: 'Action',
czl: 'Amount',
@ -127,12 +127,12 @@ export default {
sfcc:'To Storage',
bdmc:'Preset Name',
gyzjda:'Formulation Archive',
lqffda:'领取发放档案',
tygd:'同意归档',
jjgd:'拒绝归档',
tyjd:'同意解档',
jjjd:'拒绝解档',
tyjy:'同意借阅',
jjjy:'拒绝借阅',
qrgh:'确认归还',
lqffda:'Transfer Archive',
tygd:'Approve Archiving',
jjgd:'Reject Archiving',
tyjd:'Approve De-archiving',
jjjd:'Reject De-archiving',
tyjy:'Approve Check-out',
jjjy:'Reject Check-out',
qrgh:'Confirm Check-in',
}

+ 9
- 9
src/lang/en/business/resource/mjy.js View File

@ -105,7 +105,7 @@ export default {
jysj: 'Checkout Period',
mjyxq: 'Drug Information',
ffjlxq: 'In-and-Out Record Information',
sswjj:'所属文件夹',
sswjj:'Folder',
ssbd:'In Record',
qmr1Id:'Signed By 1',
qmr2Id:'Signed By 2',
@ -128,12 +128,12 @@ export default {
sfcc:'To Storage',
bdmc:'Preset Name',
mjyda:'Drug Archive',
lqffda:'领取发放档案',
tygd:'同意归档',
jjgd:'拒绝归档',
tyjd:'同意解档',
jjjd:'拒绝解档',
tyjy:'同意借阅',
jjjy:'拒绝借阅',
qrgh:'确认归还',
lqffda:'Transfer Archive',
tygd:'Approve Archiving',
jjgd:'Reject Archiving',
tyjd:'Approve De-archiving',
jjjd:'Reject De-archiving',
tyjy:'Approve Check-out',
jjjy:'Reject Check-out',
qrgh:'Confirm Check-in',
}

+ 1
- 1
src/lang/en/business/study/studyFormApply.js View File

@ -15,7 +15,7 @@ export default {
pre: 'Pre',
save: 'Save',
submit: 'Submit',
bdnr: '表单内容',
bdnr: 'Record Information',
qmxx: 'Signature information',
qmr: 'Signed By',
qmyy: 'Meaning of Signature',

+ 3
- 3
src/lang/en/business/study/studyFormFill.js View File

@ -23,7 +23,7 @@ export default {
pre: 'Pre',
save: 'Save',
submit: 'Submit',
bdnr: '表单内容',
bdnr: 'Record Information',
qmxx: 'Signature information',
qmr: 'Signed By',
qmyy: 'Meaning of Signature',
@ -72,6 +72,6 @@ export default {
bcsm: 'Additional Remark',
fztgjj: 'Approve/Reject Record Abolition',
ysy: 'Reviewed',
bcjl:'保存记录',
txbbc:'填写并保存'
bcjl:'Save',
txbbc:'Fill In And Save'
}

+ 2
- 2
src/lang/en/business/study/studyFormPlan.js View File

@ -12,7 +12,7 @@ export default {
pre: 'Pre',
save: 'Save',
submit: 'Submit',
bdnr: '表单内容',
bdnr: 'Record Information',
qmxx: 'Signature information',
qmr: 'Signed By',
qmyy: 'Meaning of Signature',
@ -23,7 +23,7 @@ export default {
xzpzjhb: 'Create',
yes: 'Yes',
no: 'No',
shryId: '复核人员',
shryId: 'Reviewer',
tjjl: 'Submit Record',
dcqbjcgj: 'Export (All Track Records)',
dclcjcgj: 'Export (Milestone Track Record)',

+ 1
- 1
src/lang/en/business/study/studyFormPre.js View File

@ -16,7 +16,7 @@ export default {
shtg: 'Approved',
shjj: 'Reject after Review',
tb: 'Create Record',
bdnr: '表单内容',
bdnr: 'Record Information',
qmxx: 'Signature information',
qmr: 'Signed By',
qmyy: 'Meaning of Signature',

+ 20
- 0
src/lang/en/template/sp.js View File

@ -1,5 +1,25 @@
//色谱
export default {
// 生物样品分析溶液配制表
sp001:{
title: '生物样品分析溶液配制表',
},
// 生物样品分析储备液配制表
sp002:{
title: '生物样品分析储备液配制表',
},
// 生物样品标曲工作液制备表
sp003:{
title: '生物样品标曲工作液制备表',
},
// 生物样品内标工作液制备表
sp004:{
title: '生物样品内标工作液制备表',
},
// 生物样品分析方法学样品制备表-准确度与精密度
sp008: {
title:

+ 20
- 0
src/lang/zh/template/sp.js View File

@ -1,5 +1,25 @@
//色谱
export default {
// 生物样品分析溶液配制表
sp001:{
title: '生物样品分析溶液配制表',
},
// 生物样品分析储备液配制表
sp002:{
title: '生物样品分析储备液配制表',
},
// 生物样品标曲工作液制备表
sp003:{
title: '生物样品标曲工作液制备表',
},
// 生物样品内标工作液制备表
sp004:{
title: '生物样品内标工作液制备表',
},
// 生物样品分析方法学样品制备表-准确度与精密度
sp008: {
title: '生物样品分析方法学样品制备表(准确度与精密度)',

+ 29
- 25
src/layout/components/Navbar.vue View File

@ -2,38 +2,42 @@
<div class="navbar">
<div class="navbar-header">
<div class="right-menu">
<template v-if="device !== 'mobile'">
<div>
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar" />
<!-- <screenfull id="screenfull" class="right-menu-item hover-effect" />
<breadcrumb v-if="!topNav" id="breadcrumb-container" class="breadcrumb-container" />
<top-nav v-if="topNav" id="topmenu-container" class="topmenu-container" />
</div>
<div>
<div class="right-menu">
<template v-if="device !== 'mobile'">
<!-- <screenfull id="screenfull" class="right-menu-item hover-effect" />
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> -->
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover">
<div class="avatar-wrapper">
<img src="@/assets/images/profile.jpg" class="user-avatar">
<span class="user-nickname"> {{ nickName }} </span>
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/user/profile">
<el-dropdown-item>{{ $t('login.profile') }}</el-dropdown-item>
</router-link>
<el-dropdown-item divided @click.native="logout">
<span>{{ $t('login.logOut') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover">
<div class="avatar-wrapper">
<img src="@/assets/images/profile.jpg" class="user-avatar">
<span class="user-nickname"> {{ nickName }} </span>
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/user/profile">
<el-dropdown-item>{{ $t('login.profile') }}</el-dropdown-item>
</router-link>
<el-dropdown-item divided @click.native="logout">
<span>{{ $t('login.logOut') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<lang-select class="set-language" style="margin-left: 10px;"/>
</div>
</div>
<lang-select class="set-language" />
</div>
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar" />
<breadcrumb v-if="!topNav" id="breadcrumb-container" class="breadcrumb-container" />
<top-nav v-if="topNav" id="topmenu-container" class="topmenu-container" />
</div>
</template>
@ -117,7 +121,7 @@ export default {
height: 50px;
line-height: 50px;
display: flex;
justify-content: flex-end;
justify-content: space-between;
}

+ 11
- 11
src/views/business/comps/template/comps/gsp/MJYLQSQD.vue View File

@ -249,12 +249,12 @@ export default {
this.gyjlOptions = tmp
if (reset) {
this.gyndOptions = []
setTimeout(() => {
that.$refs.baseInfoRef.batchUpdateFormData({
gyjl: '',
xynd: '',
});
}, 10)
// setTimeout(() => {
// that.$refs.baseInfoRef.batchUpdateFormData({
// gyjl: '',
// xynd: '',
// });
// }, 10)
}
},
filterGynd(val, reset) {
@ -273,11 +273,11 @@ export default {
})
this.gyndOptions = tmp
if (reset) {
setTimeout(() => {
that.$refs.baseInfoRef.batchUpdateFormData({
xynd: '',
});
}, 10)
// setTimeout(() => {
// that.$refs.baseInfoRef.batchUpdateFormData({
// xynd: '',
// });
// }, 10)
}
},
//

+ 6
- 4
src/views/business/comps/template/comps/sp/SWYPFXCBYPZB.vue View File

@ -3,7 +3,7 @@
<div>
<div class="detail-container">
<div class="detail-title"><img src="@/assets/images/detail-title.png">{{ formData.bdmc ||
$t('template.common.pageTitle') }}<img src="@/assets/images/detail-title.png" /></div>
$t('template.sp.sp002.title') }}<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"
@ -109,7 +109,7 @@ export default {
},
versionNum: {
label: 'template.common.versionNumber',
type: "input",
type: "inputNumber",
fillType: "actFill",
prepend:"V",
maxlength: 50
@ -181,7 +181,8 @@ export default {
subKey: "targetPreConcentrationUnit",
fillType: "preFill",
subOptions: this.getDictOptions('business_nddw'),
maxlength: 10
maxlength: 10,
selectTo:"targetActConcentrationUnit",//
},
targetActConcentration: {
label: 'template.common.targetActConcentration',
@ -202,7 +203,8 @@ export default {
subKey: "targetPreVolumeUnit",
subOptions: this.getDictOptions('business_tjdw'),
fillType: "preFill",
maxlength: 10
maxlength: 10,
selectTo:"targetActVolumeUnit",//
},
targetActVolume: {
label: 'template.common.targetActVolume',

+ 4
- 4
src/views/business/comps/template/comps/sp/SWYPFXRYPZB.vue View File

@ -3,7 +3,7 @@
<div>
<div class="detail-container">
<div class="detail-title"><img src="@/assets/images/detail-title.png">{{ formData.bdmc ||
$t('template.common.pageTitle') }}<img src="@/assets/images/detail-title.png" /></div>
$t('template.sp.sp001.title') }}<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"
@ -28,7 +28,7 @@
</div>
</div>
</div>
<button @click = "onSave">保存</button>
<!-- <button @click = "onSave">保存</button> -->
</div>
</template>
@ -42,7 +42,7 @@ import CustomTable from '@/components/Template/CustomTable.vue';
import { getLatestSn } from '@/api/template';
import { EventBus } from "@/utils/eventBus";
export default {
name: "SWYPFXRYPZB",
name: "Sp001",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable },
mixins: [templateMixin],
props: {
@ -111,7 +111,7 @@ export default {
},
versionNum: {
label: 'template.common.versionNumber',
type: "input",
type: "inputNumber",
fillType: "actFill",
prepend:"V",
maxlength: 50

+ 8
- 2
src/views/business/resource/gsp/comps/ffjlList.vue View File

@ -163,11 +163,11 @@
v-hasPermi="['business:resource:gsp:ffjlgd']">{{
$t('page.business.resource.gsp.guidang') }}</el-button>
<!-- 解档 -->
<el-button type="text" v-if="scope.row.jlzt == 7" @click="handleJd(scope.row)"
<el-button type="text" v-if="scope.row.jlzt == 7 && id == scope.row.dasqrId" @click="handleJd(scope.row)"
v-hasPermi="['business:resource:gsp:ffjljd']">{{
$t('page.business.resource.gsp.jiedang') }}</el-button>
<!-- 借阅 -->
<el-button type="text" v-if="scope.row.jlzt == 7 && scope.row.jyzt == 1" @click="handleJy(scope.row)"
<el-button type="text" v-if="scope.row.jlzt == 7 && scope.row.jyzt == 1 && id == scope.row.dasqrId" @click="handleJy(scope.row)"
v-hasPermi="['business:resource:gsp:ffjljy']">{{
$t('page.business.resource.gsp.jieyue') }}</el-button>
</template>
@ -204,6 +204,7 @@ import Jd from "./ffjl/Jd";
import Xq from "./ffjl/Xq";
import Jq from "./ffjl/Jq";
import { deepClone } from "@/utils/index";
import { mapGetters } from 'vuex'
export default {
name: "FfjlList",
components: { Sd, Js, Gd, Jd, Jy, Xq, Jq },
@ -238,6 +239,11 @@ export default {
created() {
this.getList()
},
computed: {
...mapGetters([
'id'
]),
},
methods: {
//
exportExcel() {

+ 7
- 1
src/views/business/resource/gsp/comps/gspList.vue View File

@ -182,7 +182,7 @@
<el-button type="text" @click="handleGh(scope.row)" v-hasPermi="['business:resource:gsp:gh']">{{
$t('page.business.resource.gsp.guihuan') }}</el-button>
</template>
<template v-if="scope.row.zjzt == 9 && scope.row.jyzt == 1">
<template v-if="scope.row.zjzt == 9 && scope.row.jyzt == 1 && id == scope.row.dasqrId">
<!-- 解档 -->
<el-button type="text" @click="handleJd(scope.row)" v-hasPermi="['business:resource:gsp:jd']">{{
$t('page.business.resource.gsp.jiedang') }}</el-button>
@ -252,6 +252,7 @@ import Cz from "./gsp/Cz";
import CzBatch from "./gsp/CzBatch";
import Ysff from "./gsp/Ysff";
import { deepClone } from "@/utils/index";
import { mapGetters } from 'vuex'
export default {
name: "GspList",
components: { Xz, Sd, Js, Gd, Xq, Jd, Bj, Shbj, Xgkc, Shxgkc, Jy, Gh, Cz, CzBatch, Ff, Ysff },
@ -282,6 +283,11 @@ export default {
created() {
this.getList()
},
computed: {
...mapGetters([
'id'
]),
},
methods: {
//
exportExcel() {

+ 8
- 2
src/views/business/resource/gsp/comps/rkjlList.vue View File

@ -146,11 +146,11 @@
v-hasPermi="['business:resource:gsp:rkgd']">{{
$t('page.business.resource.gsp.guidang') }}</el-button>
<!-- 解档 -->
<el-button type="text" v-if="scope.row.jlzt == 7" @click="handleJd(scope.row)"
<el-button type="text" v-if="scope.row.jlzt == 7 && id == scope.row.dasqrId" @click="handleJd(scope.row)"
v-hasPermi="['business:resource:gsp:rkjd']">{{
$t('page.business.resource.gsp.jiedang') }}</el-button>
<!-- 借阅 -->
<el-button type="text" v-if="scope.row.jlzt == 7 && scope.row.jyzt == 1" @click="handleJy(scope.row)"
<el-button type="text" v-if="scope.row.jlzt == 7 && scope.row.jyzt == 1 && id == scope.row.dasqrId" @click="handleJy(scope.row)"
v-hasPermi="['business:resource:gsp:rkjy']">{{
$t('page.business.resource.gsp.jieyue') }}</el-button>
</template>
@ -190,6 +190,7 @@ import Xq from "./rkjl/Xq";
import Xz from "./rkjl/Xz";
import Bj from "./rkjl/Bj";
import { deepClone } from "@/utils/index";
import { mapGetters } from 'vuex'
export default {
name: "FfjlList",
components: { Sd, Js, Gd, Jd, Jy, Xq, Xz, Bj },
@ -221,6 +222,11 @@ export default {
},
}
},
computed: {
...mapGetters([
'id'
]),
},
created() {
this.getList()
},

+ 5
- 2
src/views/business/resource/gsp/index.vue View File

@ -32,10 +32,13 @@ export default {
{ key: 'rkjlList', name: this.$t('page.business.resource.gsp.gsprkjl') },
{ key: 'ffjlList', name: this.$t('page.business.resource.gsp.ffhsjl') },
],
active: 'gspList',
active: this.$route.params.tab || 'gspList',
}
},
created() { },
created() {
const obj = Object.assign({}, this.$route, { title: this.$t('page.business.resource.gsp.gspgl') })
this.$tab.updatePage(obj);
},
methods: {
show(row) {
this.study = row

+ 3
- 2
src/views/business/resource/gyzj/comps/gyzj/Xq.vue View File

@ -62,6 +62,7 @@
<div class="right-title">{{ $t('page.business.resource.gyzj.zjzt') }}</div>
<el-select v-model="form.zjzt" disabled style="width: 100%;">
<el-option key="1" :label="$t('page.business.resource.resource.zjzt.rk')" :value="1" />
<el-option key="2" :label="$t('page.business.resource.resource.zjzt.wrk')" :value="2" />
<el-option key="3" :label="$t('page.business.resource.resource.zjzt.yff')" :value="3" />
<el-option key="5" :label="$t('page.business.resource.resource.zjzt.ysd')" :value="5" />
<el-option key="7" :label="$t('page.business.resource.resource.zjzt.dgd')" :value="7" />
@ -103,7 +104,7 @@
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.lqghr')" align="center"
:show-overflow-tooltip="true">
:show-overflow-tooltip="true" width="200px">
<template slot-scope="scope">
{{ scope.row.lqrMc }}{{ scope.row.ghrMc }}
@ -118,7 +119,7 @@
<el-table-column :label="$t('page.business.resource.gyzj.czlx')" align="center"
:prop="$i18n.locale === 'zh_CN' ? 'qmyy' : 'qmyyEn'" width="100" />
<el-table-column :label="$t('page.business.resource.gyzj.bdmc')" align="center"
prop="bdmc" width="100" />
prop="bdMc" width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('page.business.resource.gyzj.czl')" align="center"
:show-overflow-tooltip="true">
<template slot-scope="scope">

+ 3
- 2
src/views/business/resource/mjy/comps/mjy/Xq.vue View File

@ -62,6 +62,7 @@
<div class="right-title">{{ $t('page.business.resource.mjy.zjzt') }}</div>
<el-select v-model="form.zjzt" disabled style="width: 100%;">
<el-option key="1" :label="$t('page.business.resource.resource.zjzt.rk')" :value="1" />
<el-option key="2" :label="$t('page.business.resource.resource.zjzt.wrk')" :value="2" />
<el-option key="3" :label="$t('page.business.resource.resource.zjzt.yff')" :value="3" />
<el-option key="5" :label="$t('page.business.resource.resource.zjzt.ysd')" :value="5" />
<el-option key="7" :label="$t('page.business.resource.resource.zjzt.dgd')" :value="7" />
@ -103,7 +104,7 @@
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.mjy.lqghr')" align="center"
:show-overflow-tooltip="true">
:show-overflow-tooltip="true" width="200px">
<template slot-scope="scope">
{{ scope.row.lqrMc }}{{ scope.row.ghrMc }}
</template>
@ -117,7 +118,7 @@
<el-table-column :label="$t('page.business.resource.mjy.czlx')" align="center"
:prop="$i18n.locale === 'zh_CN' ? 'qmyy' : 'qmyyEn'" width="100" />
<el-table-column :label="$t('page.business.resource.mjy.bdmc')" align="center"
prop="bdmc" width="100" />
prop="bdMc" width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('page.business.resource.mjy.czl')" align="center"
:show-overflow-tooltip="true">
<template slot-scope="scope">

+ 7
- 2
src/views/business/resource/sj/list.vue View File

@ -160,7 +160,7 @@
<el-button type="text" @click="handleGd(scope.row)" v-hasPermi="['business:resource:sj:gd']">{{
$t('page.business.resource.sj.guidang') }}</el-button>
</template>
<template v-if="scope.row.zjzt == 9 && scope.row.jyzt == 1">
<template v-if="scope.row.zjzt == 9 && scope.row.jyzt == 1 && scope.row.dasqrId == id">
<!-- 解档 -->
<el-button type="text" @click="handleJd(scope.row)" v-hasPermi="['business:resource:sj:jd']">{{
$t('page.business.resource.sj.jiedang') }}</el-button>
@ -212,7 +212,7 @@ import Xgkc from "./comps/Xgkc";
import Jy from "./comps/Jy";
import Cz from "./comps/Cz";
import CzBatch from "./comps/CzBatch";
import { mapGetters } from 'vuex'
export default {
name: "Sj",
components: { Sd, Js, Gd, Xq, Jd, Bj, Xgkc, Jy, Cz, CzBatch },
@ -240,6 +240,11 @@ export default {
},
}
},
computed: {
...mapGetters([
'id'
]),
},
created() {
this.handleQuery()
},

+ 5
- 1
src/views/business/resource/yq/comps/detail.vue View File

@ -81,8 +81,12 @@
<script>
import { yq_info, yqJcgj_list } from '@/api/business/yq/yq'
import SelectDept from "@/views/business/comps/select/SelectDept";
export default {
name: "YqDetail",
components: {
SelectDept
},
data() {
return {
loading: true,
@ -114,7 +118,7 @@ export default {
yqJcgj_list(this.queryParams).then((response) => {
this.qmList = response.rows
this.qmList.forEach(item => {
if(item.jcnr) {
if (item.jcnr) {
item.jcnrList = JSON.parse(item.jcnr)
//item.jcnr = Object.entries(JSON.parse(item.jcnr)).map(([key, value]) => `${key}:${value}`).join('\r\n');
} else {

+ 6
- 5
src/views/business/resource/yq/list.vue View File

@ -14,8 +14,8 @@
:start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')">
</el-date-picker>
</el-form-item>
<el-form-item :label="$t('page.business.resource.yq.ssbm') + ':'" prop="bmId">
<el-input v-model="queryParams.bmId" placeholder="" clearable @keyup.enter.native="handleQuery" />
<el-form-item :label="$t('page.business.resource.yq.ssbm') + ':'" prop="bmMc">
<el-input v-model="queryParams.bmMc" placeholder="" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
@ -94,8 +94,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('page.business.resource.yq.ssbm')" prop="bmMc">
<el-input v-model="form.bmMc" :placeholder="$t('form.placeholderSelect')" />
<el-form-item :label="$t('page.business.resource.yq.ssbm')" prop="bmId">
<!-- <el-input v-model="form.bmMc" :placeholder="$t('form.placeholderSelect')" /> -->
<SelectDept v-model="form.bmId" />
</el-form-item>
</el-col>
</el-row>
@ -214,7 +215,7 @@ export default {
jzrq: [
{ required: true, message: this.$t('page.business.resource.yq.xcjzrq') + this.$t('form.notEmpty'), trigger: "change" },
],
bmMc: [
bmId: [
{ required: true, message: this.$t('page.business.resource.yq.ssbm') + this.$t('form.notEmpty'), trigger: "change" },
],
wc: [

+ 180
- 0
src/views/business/step/list.vue View File

@ -0,0 +1,180 @@
<template>
<div class="app-container template-page">
<el-form :model="searchForm" ref="searchForm" :inline="true">
<el-form-item label="编号:" prop="sn">
<el-input v-model="searchForm.sn" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px"
@keyup.enter.native="search" />
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="searchForm.name" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px"
@keyup.enter.native="search" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button>
<el-button type="primary" plain icon="el-icon-plus" @click="edit(null)">新增</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list">
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="编号" align="center" prop="sn" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column :label="$t('form.operate')" fixed="right" align="center" width="100">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
<el-button type="text" @click="del(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize"
@pagination="getList" />
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="infoDialog.title" :visible.sync="infoDialog.visible" width="800px"
append-to-body>
<el-form ref="infoDialogForm" :model="infoDialog.formData" :rules="infoDialog.rules" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="编号:" prop="sn">
<el-input v-model="infoDialog.formData.sn" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称:" prop="name">
<el-input v-model="infoDialog.formData.name" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save"> </el-button>
<el-button @click="infoDialog.visible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { step_list, step_info, step_save, step_delete } from "@/api/business/step/step";
const EmptyDialogData = {
id: '',
name: '',
sn: '',
}
export default {
name: "StepPage",
props: {
},
components: {
},
computed: {
},
filters: {
},
data() {
return {
searchForm: {
pageNum: 1,
pageSize: 10,
sn: '',
name: '',
},
loading: true,
total: 0,
list: [],
infoDialog: {
title: '',
visible: false,
formData: {},
rules: {
sn: [
{ required: true, message:'请输入', trigger: "blur" }
],
name: [
{ required: true, message:'请输入', trigger: "blur" }
],
},
},
};
},
created() {
this.getList();
},
methods: {
getList() {
this.loading = true;
step_list(this.searchForm).then(response => {
this.list = response.rows;
this.total = response.total;
this.loading = false;
});
},
search() {
this.searchForm.pageNum = 1;
this.getList();
},
reset() {
this.searchForm = {
pageNum: 1,
pageSize: 10,
sn: '',
name: '',
}
this.search()
},
edit(row) {
this.$refs['infoDialogForm'] && this.$refs['infoDialogForm'].resetFields()
this.infoDialog.title = '新增'
this.infoDialog.formData = _.merge({}, EmptyDialogData)
if (row && row.id) {
this.infoDialog.title = '编辑'
this.$modal.loading()
step_info({ id: row.id }).then(({ data }) => {
this.infoDialog.formData = data
}).finally(() => {
this.$modal.closeLoading()
})
}
this.infoDialog.visible = true
},
save() {
this.$refs['infoDialogForm'].validate(valid => {
if (valid) {
this.$modal.loading()
step_save(this.infoDialog.formData).then(() => {
this.infoDialog.visible = false
this.getList()
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
del(row) {
this.$confirm('确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.$modal.loading()
step_delete({ id: row.id }).then(() => {
this.getList()
})
.finally(() => {
this.$modal.closeLoading()
})
})
.catch(() => { })
},
}
};
</script>
<style lang="scss"></style>

+ 224
- 0
src/views/business/stepGroup/list.vue View File

@ -0,0 +1,224 @@
<template>
<div class="app-container template-page">
<el-form :model="searchForm" ref="searchForm" :inline="true">
<el-form-item label="名称:" prop="name">
<el-input v-model="searchForm.name" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px"
@keyup.enter.native="search" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button>
<el-button type="primary" plain icon="el-icon-plus" @click="edit(null)">新增</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list">
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
<el-button type="text" @click="del(scope.row)">删除</el-button>
<el-button type="text" @click="selectStep(scope.row)">设置步骤</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize"
@pagination="getList" />
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="infoDialog.title" :visible.sync="infoDialog.visible" width="800px"
append-to-body>
<el-form ref="infoDialogForm" :model="infoDialog.formData" :rules="infoDialog.rules" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="名称:" prop="name">
<el-input v-model="infoDialog.formData.name" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save"> </el-button>
<el-button @click="infoDialog.visible = false"> </el-button>
</div>
</el-dialog>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="stepDialog.title" :visible.sync="stepDialog.visible" width="800px"
append-to-body>
<el-table v-loading="stepDialog.loading" :data="stepDialog.stepList" ref="multipleTable" @selection-change="handleSelectionChange" height="400px">
<el-table-column type="selection" width="55" />
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="编号" align="center" prop="sn" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="创建时间" align="center" prop="createTime" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveStep"> </el-button>
<el-button @click="stepDialog.visible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { step_list, stepGroup_list, stepGroup_info, stepGroup_save, stepGroup_delete } from "@/api/business/step/step";
const EmptyDialogData = {
id: '',
name: '',
}
export default {
name: "StepGroupPage",
props: {
},
components: {
},
computed: {
},
filters: {
},
data() {
return {
searchForm: {
pageNum: 1,
pageSize: 10,
name: '',
},
loading: true,
total: 0,
list: [],
infoDialog: {
title: '',
visible: false,
formData: {},
rules: {
name: [
{ required: true, message:'请输入', trigger: "blur" }
],
},
},
stepDialog:{
title: '设置步骤',
visible: false,
loading:false,
stepList:[],
data:{id:'',stepIds:''},
}
};
},
created() {
this.getList();
},
methods: {
getList() {
this.loading = true;
stepGroup_list(this.searchForm).then(response => {
this.list = response.rows;
this.total = response.total;
this.loading = false;
});
},
search() {
this.searchForm.pageNum = 1;
this.getList();
},
reset() {
this.searchForm = {
pageNum: 1,
pageSize: 10,
sn: '',
name: '',
}
this.search()
},
edit(row) {
this.$refs['infoDialogForm'] && this.$refs['infoDialogForm'].resetFields()
this.infoDialog.title = '新增'
this.infoDialog.formData = _.merge({}, EmptyDialogData)
if (row && row.id) {
this.infoDialog.title = '编辑'
this.$modal.loading()
stepGroup_info({ id: row.id }).then(({ data }) => {
this.infoDialog.formData = data
}).finally(() => {
this.$modal.closeLoading()
})
}
this.infoDialog.visible = true
},
save() {
this.$refs['infoDialogForm'].validate(valid => {
if (valid) {
this.$modal.loading()
stepGroup_save(this.infoDialog.formData).then(() => {
this.infoDialog.visible = false
this.getList()
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
del(row) {
this.$confirm('确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.$modal.loading()
stepGroup_delete({ id: row.id }).then(() => {
this.getList()
})
.finally(() => {
this.$modal.closeLoading()
})
})
.catch(() => { })
},
selectStep(row){
this.stepDialog.visible = true
this.stepDialog.data = _.clone(row)
this.stepDialog.loading = true
step_list({ pageNum: 1, pageSize:9999}).then(response => {
this.stepDialog.stepList = response.rows
setTimeout(() => {
let cuurStepIdList = this.stepDialog.data.stepIds ? this.stepDialog.data.stepIds.split(',') : []
this.stepDialog.stepList.forEach(item => {
this.$refs.multipleTable.toggleRowSelection(item,cuurStepIdList.indexOf(item.id+'')>-1)
});
this.stepDialog.loading = false
}, 1000);
}).catch(() => {
this.stepDialog.loading = false
})
},
handleSelectionChange(val){
if(!this.stepDialog.loading){
this.stepDialog.data.stepIds = _.map(val, 'id').join(',')
}
},
saveStep(){
this.$modal.loading()
stepGroup_save(this.stepDialog.data).then(() => {
this.stepDialog.visible = false
this.getList()
}).finally(() => {
this.$modal.closeLoading()
})
},
}
};
</script>
<style lang="scss"></style>

+ 1
- 0
src/views/business/study/comp/wzlb/mjyList.vue View File

@ -65,6 +65,7 @@
<el-table-column :label="$t('page.business.resource.mjy.zjzt')" align="center" width="100px" fixed="right">
<template slot-scope="scope">
<span v-if="scope.row.zjzt == 1"><span class="status-circle rk"></span>{{ $t('page.business.resource.resource.zjzt.rk') }}</span>
<span v-if="scope.row.zjzt == 2"><span class="status-circle wrk"></span>{{ $t('page.business.resource.resource.zjzt.wrk') }}</span>
<span v-if="scope.row.zjzt == 3"><span class="status-circle yff"></span>{{ $t('page.business.resource.resource.zjzt.yff') }}</span>
<span v-if="scope.row.zjzt == 5"><span class="status-circle ysd"></span>{{ $t('page.business.resource.resource.zjzt.ysd') }}</span>
<span v-if="scope.row.zjzt == 7"><span class="status-circle dgd"></span>{{ $t('page.business.resource.resource.zjzt.dgd') }}</span>

+ 29
- 5
src/views/business/template/list.vue View File

@ -24,8 +24,7 @@
<el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button>
<el-button type="primary" plain icon="el-icon-plus" @click="edit(null)"
v-hasPermi="['system:user:add']">新增-后期不需要</el-button>
<el-button type="primary" plain icon="el-icon-plus" @click="edit(null)">新增-后期不需要</el-button>
</el-form-item>
</el-form>
@ -106,7 +105,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="24">
<el-form-item label="产物:" prop="product">
<el-select v-model="infoDialog.formData.product" :placeholder="$t('form.placeholderSelect')" style="width:100%">
<el-option label="试剂" :value="1" />
@ -116,7 +115,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="24">
<el-form-item label="填报是否显示观察按钮:" prop="showGc">
<el-select v-model="infoDialog.formData.showGc" :placeholder="$t('form.placeholderSelect')" style="width:100%">
<el-option label="否" :value="1" />
@ -132,6 +131,14 @@
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="步骤库:" prop="stepGroupIds">
<el-select multiple v-model="stepGroupIdArr" :placeholder="$t('form.placeholderSelect')" style="width:100%" @change="changeStepGroup">
<el-option v-for="item in stepGroupList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
@ -149,6 +156,7 @@
<script>
import { template_list, template_info, template_save, template_delete } from "@/api/business/template/template";
import { stepGroup_list } from "@/api/business/step/step";
import SelectDept from '@/views/business/comps/select/SelectDept.vue';
import TemplateTable from '@/views/business/comps/template/TemplateTable';
const EmptyDialogData = {
@ -159,6 +167,8 @@ const EmptyDialogData = {
status:10,
needPre: 10,
type: 10,
stepGroupIds: '',
}
export default {
name: "Template",
@ -187,10 +197,14 @@ export default {
total: 0,
list: [],
stepGroupList:[],
stepGroupIdArr:[],
infoDialog: {
title: '',
visible: false,
formData: {},
formData: {
},
rules: {
showGc: [
@ -228,8 +242,14 @@ export default {
},
created() {
this.getList();
this.getGroupList()
},
methods: {
getGroupList(){
stepGroup_list({ pageNum: 1, pageSize:9999}).then(response => {
this.stepGroupList = response.rows;
});
},
bdpz(row) {
this.tableDialog.title = '表单配置'
this.tableDialog.sn=row.sn
@ -267,6 +287,7 @@ export default {
this.$modal.loading()
template_info({ id: row.id }).then(({ data }) => {
this.infoDialog.formData = data
this.stepGroupIdArr = this.infoDialog.formData.stepGroupIds ? _.map(this.infoDialog.formData.stepGroupIds.split(','),(o)=>{return parseInt(o)}): []
}).finally(() => {
this.$modal.closeLoading()
})
@ -281,6 +302,9 @@ export default {
// this.$modal.closeLoading()
// })
},
changeStepGroup(val){
this.infoDialog.formData.stepGroupIds = val.join(',')
},
save() {
this.$refs['infoDialogForm'].validate(valid => {
if (valid) {

Loading…
Cancel
Save