luojie 2 months ago
parent
commit
c7f96dcd63
20 changed files with 145 additions and 38 deletions
  1. +6
    -2
      src/views/business/comps/select/SelectTemplate.vue
  2. +1
    -0
      src/views/business/comps/select/SelectTemplateDialog.vue
  3. +10
    -0
      src/views/business/form/drug/comp/tbbdList.vue
  4. +10
    -0
      src/views/business/form/nonTrial/comp/tbbdList.vue
  5. +2
    -1
      src/views/business/study/comp/jhbd/Fh.vue
  6. +2
    -1
      src/views/business/study/comp/jhbd/Xq.vue
  7. +2
    -1
      src/views/business/study/comp/sqbd/Fh.vue
  8. +2
    -1
      src/views/business/study/comp/sqbd/Sy.vue
  9. +2
    -1
      src/views/business/study/comp/sqbd/Xq.vue
  10. +5
    -2
      src/views/business/study/comp/suject.vue
  11. +5
    -3
      src/views/business/study/comp/tbbd.vue
  12. +53
    -15
      src/views/business/study/comp/tbbd/Bj.vue
  13. +2
    -1
      src/views/business/study/comp/tbbd/Fh.vue
  14. +2
    -1
      src/views/business/study/comp/tbbd/Sy.vue
  15. +2
    -1
      src/views/business/study/comp/tbbd/Xq.vue
  16. +20
    -1
      src/views/business/study/comp/tbbdList.vue
  17. +5
    -3
      src/views/business/study/comp/ytbd.vue
  18. +3
    -1
      src/views/business/study/comp/ytbd/Bj.vue
  19. +2
    -1
      src/views/business/study/comp/ytbd/Xq.vue
  20. +9
    -2
      src/views/business/study/comp/ytbdList.vue

+ 6
- 2
src/views/business/comps/select/SelectTemplate.vue View File

@ -37,6 +37,10 @@ export default {
type: Number,
default: null
},
selectedDeptId: {
type: Number,
default: null
},
},
watch: {
value: {
@ -50,7 +54,7 @@ export default {
handler(v) {
this.selected.name=v || ''
}
},
}
},
data() {
return {
@ -65,7 +69,7 @@ export default {
methods: {
showSelectTemplate(){
if(!this.disabled){
this.$refs.selectTemplateDialog.show({needPre:this.needPre,studyType:this.studyType,studyFormType:this.studyFormType})
this.$refs.selectTemplateDialog.show({needPre:this.needPre,studyType:this.studyType,studyFormType:this.studyFormType,selectedDeptId:this.selectedDeptId})
}
},
handleChange(obj) {

+ 1
- 0
src/views/business/comps/select/SelectTemplateDialog.vue View File

@ -81,6 +81,7 @@ export default {
this.selectedId = row.id
},
show(val) {
this.searchForm.deptId=val.selectedDeptId
this.searchForm = _.merge({}, this.searchForm, val)
this.selectedId = null
this.search()

+ 10
- 0
src/views/business/form/drug/comp/tbbdList.vue View File

@ -188,6 +188,7 @@ import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDi
import { caesarCipher } from "@/utils/index";
import { mapGetters } from 'vuex'
import moment from "moment";
import { EventBus } from "@/utils/eventBus";
export default {
name: 'YtbdList',
props: {
@ -251,6 +252,15 @@ export default {
}
},
created() { this.getIsQa() },
mounted() {
EventBus.$on('onRefreshDrugTbbdList',(data) => {
this.getList()
});
},
beforeDestroy() {
//
EventBus.$off('onRefreshDrugTbbdList');
},
methods: {
checkPermi,
checkRole,

+ 10
- 0
src/views/business/form/nonTrial/comp/tbbdList.vue View File

@ -195,6 +195,7 @@ import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDi
import { caesarCipher } from "@/utils/index";
import { mapGetters } from 'vuex'
import moment from "moment";
import { EventBus } from "@/utils/eventBus";
export default {
name: 'YtbdList',
props: {
@ -259,6 +260,15 @@ export default {
}
},
created() { this.getIsQa() },
mounted() {
EventBus.$on('onRefreshNonTrialTbbdList',(data) => {
this.getList()
});
},
beforeDestroy() {
//
EventBus.$off('onRefreshNonTrialTbbdList');
},
methods: {
checkPermi,
checkRole,

+ 2
- 1
src/views/business/study/comp/jhbd/Fh.vue View File

@ -49,7 +49,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/jhbd/Xq.vue View File

@ -94,7 +94,8 @@
<div class="subtitle"> {{ $t('page.business.study.studyFormPlan.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v small layout="prev, pager, next" :total="jcgjTotal" @pagination="getJjcgjList" />
<pagination v small layout="prev, pager, next" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize" :total="jcgjTotal" @pagination="getJjcgjList" />
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/sqbd/Fh.vue View File

@ -49,7 +49,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/sqbd/Sy.vue View File

@ -46,7 +46,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/sqbd/Xq.vue View File

@ -94,7 +94,8 @@
<div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v small layout="prev, pager, next" :total="jcgjTotal" @pagination="getJjcgjList" />
<pagination v small layout="prev, pager, next" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize" :total="jcgjTotal" @pagination="getJjcgjList" />
</div>
</div>
</div>

+ 5
- 2
src/views/business/study/comp/suject.vue View File

@ -131,26 +131,29 @@ export default {
getList(){
if(this.study.id){
this.selectedSubjectId = ''
let selectedDeptId = ''
studySubject_listByStudyId({studyId:this.study.id}).then(response => {
this.subjectList = response.data;
for(let i=0;i<this.subjectList.length;i++){
let item = this.subjectList[i]
if(item.leader==this.userId || (item.userIdList && item.userIdList.length>0 && item.userIdList.indexOf(this.userId)>-1)){
this.selectedSubjectId = item.id
selectedDeptId = item.deptId
break
}
}
if(this.selectedSubjectId === ''){
this.selectedSubjectId = this.subjectList.length>0?this.subjectList[0].id:''
selectedDeptId = this.subjectList.length>0?this.subjectList[0].deptId:''
}
this.$emit('change',this.selectedSubjectId)
this.$emit('change',this.selectedSubjectId,selectedDeptId)
})
}
},
changeSelectedSubject(item){
this.selectedSubjectId = item.id
this.$emit('change',this.selectedSubjectId)
this.$emit('change',this.selectedSubjectId,item.deptId)
},
editSubject(){
this.infoDialog.list = []

+ 5
- 3
src/views/business/study/comp/tbbd.vue View File

@ -4,7 +4,7 @@
<sbject :study="study" @change="changeSubject" />
</div>
<div class="tbbd-right" v-if="studyInfo.studySubjectId!='' && studyInfo.studySubjectId!=undefined">
<tbbdList :study="studyInfo" @showDetail="showDetailCallback" @changeTab="changeTab"/>
<tbbdList :study="studyInfo" :selectedDeptId="selectedDeptId" @showDetail="showDetailCallback" @changeTab="changeTab"/>
</div>
</div>
</template>
@ -39,13 +39,15 @@ export default {
showDetail:false,
studyInfo:{
studySubjectId:''
}
},
selectedDeptId:''
}
},
created() {},
methods: {
changeSubject(val){
changeSubject(val,deptId){
this.studyInfo.studySubjectId = val
this.selectedDeptId = deptId || ''
},
showDetailCallback(val){
this.showDetail=val

+ 53
- 15
src/views/business/study/comp/tbbd/Bj.vue View File

@ -46,7 +46,7 @@
<el-form-item :label="bdmbTitle" prop="templateId">
<SelectTemplate v-model="form.templateId" :disabled="form.id && form.id !== ''"
:name="form.templateMc" :studyType="studyType" :studyFormType="studyFormType"
@change="selectTemplateChange" :needPre="1" />
@change="selectTemplateChange" :needPre="1" :selectedDeptId="selectedDeptId"/>
</el-form-item>
</el-col>
</el-row>
@ -139,16 +139,18 @@
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div style="display: flex;">
<div> 存储条件</div>
<div> 存储位置</div>
<div>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" style="width: 200px;">
</BusinessSelect>
<el-select v-model="citem.ccwz" :placeholder="$t('form.placeholderSelect')"
@change="ccwzChange(cindex)" filterable>
<el-option v-for="item in ccwzlist" :key="item.id" :label="item.bh" :value="item.id" />
</el-select>
</div>
</div>
<div style="display: flex; margin-left: 10px;">
<div> 存储位置</div>
<div> 存储条件</div>
<div>
<BusinessSelect v-model="citem.ccwz" dictType="business_ccwz" style="width: 200px;">
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" style="width: 200px;">
</BusinessSelect>
</div>
</div>
@ -171,7 +173,7 @@
<el-form-item>
<div>{{ $t('page.business.study.studyFormFill.yltj') }}</div>
<div style=" display: flex; flex-wrap: wrap; gap: 16px;">
<div v-for="(item, index) in resource" :key="'r' + index" style=" flex: 0 0 calc(33.333% - 11px);">
<div v-for="(item, index) in resource" :key="'r' + index" style=" flex: 0 0 calc(50% - 11px);">
{{ item.bh }}
<el-input type="number" v-model="item.syl" maxlength="50" style="width:150px;">
<template slot="append">
@ -248,8 +250,10 @@
<div style="display: flex;">
<div> 存储位置</div>
<div>
<BusinessSelect v-model="citem.ccwz" dictType="business_ccwz" style="width: 200px;">
</BusinessSelect>
<el-select v-model="citem.ccwz" :placeholder="$t('form.placeholderSelect')"
@change="ccwzYjChange(cindex)" filterable>
<el-option v-for="item in ccwzlist" :key="item.id" :label="item.bh" :value="item.id" />
</el-select>
</div>
</div>
<div style="display: flex; margin-left: 10px;">
@ -365,6 +369,7 @@
</template>
<script>
import { listData } from "@/api/system/dict/data"
import { studyFormFill_bc, studyFormFill_yjccFilter, studyFormFill_yjcc, studyFormFill_bcOnly, studyFormFill_updateBdnr, studyFormFill_tj, studyFormFill_info, studyFormFill_updateFhyjjl } from "@/api/business/study/studyFormFill"
import { study_info } from "@/api/business/study/study"
import { mapGetters } from 'vuex'
@ -373,6 +378,7 @@ import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser';
import TemplateTable from '@/views/business/comps/template/TemplateTable';
import BusinessSelect from '@/views/business/comps/select/BusinessSelect';
import { deepClone, caesarDecipher } from "@/utils/index";
import { EventBus } from "@/utils/eventBus";
export default {
name: "Bj",
@ -417,7 +423,7 @@ export default {
bdnr: '',
resource: '',
yqResource: '',
jcbList:'',
jcbList: '',
qmrmm: '',
sfcz: false,
czfs: '',
@ -446,7 +452,7 @@ export default {
resourceYj: [],
resource: [],
yqResource: [],
jcbList:[],
jcbList: [],
bdmbTitle: this.$t('page.business.form.bdmb'),
rulesApprove: {
qmrmm: [{
@ -471,7 +477,9 @@ export default {
},
templateData: {},
studyType: null,
studyFormType: null
studyFormType: null,
ccwzlist: [],
selectedDeptId:null,
}
},
computed: {
@ -481,11 +489,32 @@ export default {
},
created() {
this.getInfo()
this.getCcwz()
},
methods: {
yjccCcwzChange(cindex,val){
debugger
this.cclistYj[cindex].cctj=val.wc
getCcwz() {
listData({
pageNum: 1,
pageSize: 999999,
dictType: 'business_ccwz',
status: 0
}).then(response => {
this.ccwzlist = response.rows
})
},
ccwzChange(cindex) {
let that = this
let _index = _.findIndex(this.ccwzlist, function (item) {
return item.id == that.cclist[cindex].ccwz
})
that.cclist[cindex].cctj = that.ccwzlist[_index].wc
},
ccwzYjChange(cindex) {
let that = this
let _index = _.findIndex(this.ccwzlist, function (item) {
return item.id == that.cclistYj[cindex].ccwz
})
that.cclistYj[cindex].cctj = that.ccwzlist[_index].wc
},
onFillCallback(data) {
console.log("data:" + JSON.stringify(data))
@ -548,6 +577,7 @@ export default {
params = JSON.parse(caesarDecipher(this.$route.params.key))
this.studyType = params.studyType || null
this.studyFormType = params.studyFormType || null
this.selectedDeptId = params.selectedDeptId || null
} catch (e) {
console.log('参数错误')
}
@ -745,6 +775,14 @@ export default {
},
cancelSave() {
try {
// 1510
if (this.form.studyType == 1) {
EventBus.$emit('onRefreshStudyTbbdList', {});
} else if (this.form.studyType == 5) {
EventBus.$emit('onRefreshNonTrialTbbdList', {});
} else if (this.form.studyType == 10) {
EventBus.$emit('onRefreshDrugTbbdList', {});
}
let key = caesarDecipher(this.$route.params.key)
let data = JSON.parse(key)
if (data && data != undefined && data != '') {

+ 2
- 1
src/views/business/study/comp/tbbd/Fh.vue View File

@ -51,7 +51,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/>
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/tbbd/Sy.vue View File

@ -46,7 +46,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 2
- 1
src/views/business/study/comp/tbbd/Xq.vue View File

@ -94,7 +94,8 @@
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v small layout="prev, pager, next" :total="jcgjTotal" @pagination="getJjcgjList" />
<pagination v small layout="prev, pager, next" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize" :total="jcgjTotal" @pagination="getJjcgjList" />
</div>
</div>
</div>

+ 20
- 1
src/views/business/study/comp/tbbdList.vue View File

@ -193,6 +193,8 @@ import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDi
import { caesarCipher } from "@/utils/index";
import { mapGetters } from 'vuex'
import moment from "moment";
import { EventBus } from "@/utils/eventBus";
export default {
name: 'YtbdList',
props: {
@ -201,7 +203,13 @@ export default {
default: () => {
return {}
}
}
},
selectedDeptId:{
type:[Number,String],
default:()=>{
return null
}
},
},
computed: {
...mapGetters([
@ -223,6 +231,15 @@ export default {
deep: true
}
},
mounted() {
EventBus.$on('onRefreshStudyTbbdList',(data) => {
this.getList()
});
},
beforeDestroy() {
//
EventBus.$off('onRefreshStudyTbbdList');
},
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
data() {
return {
@ -415,6 +432,7 @@ export default {
studyId: this.searchForm.studyId,
studyType: 1,
studyFormType:5,
selectedDeptId:this.selectedDeptId,
id: null
}))
this.$tab.openPage(this.$t('page.business.study.studyFormFill.xzbd'), '/study/formFillBj/' + params)
@ -437,6 +455,7 @@ export default {
studyId: this.searchForm.studyId,
studyType: 1,
studyFormType:5,
selectedDeptId:this.selectedDeptId,
formId: row.id
}))
this.$tab.openPage(row.bdmc, '/study/formFillBj/' + params)

+ 5
- 3
src/views/business/study/comp/ytbd.vue View File

@ -4,7 +4,7 @@
<sbject :study="study" :operate="true" @change="changeSubject" />
</div>
<div class="ytbd-right" v-if="studyInfo.studySubjectId!='' && studyInfo.studySubjectId!=undefined">
<ytbdList :study="studyInfo" @showDetail="showDetailCallback" @changeTab="changeTab"/>
<ytbdList :study="studyInfo" :selectedDeptId="selectedDeptId" @showDetail="showDetailCallback" @changeTab="changeTab"/>
</div>
</div>
</template>
@ -39,13 +39,15 @@ export default {
showDetail:false,
studyInfo:{
studySubjectId:''
}
},
selectedDeptId:''
}
},
created() {},
methods: {
changeSubject(val){
changeSubject(val,deptId){
this.studyInfo.studySubjectId = val
this.selectedDeptId = deptId || ''
},
showDetailCallback(val){
this.showDetail=val

+ 3
- 1
src/views/business/study/comp/ytbd/Bj.vue View File

@ -42,7 +42,7 @@
<el-col :span="24">
<el-form-item :label="$t('page.business.form.bdmb')" prop="templateId">
<SelectTemplate v-model="form.templateId" :disabled="form.id && form.id !== ''" :needPre="10"
:name="form.templateMc" :studyType="studyType" :studyFormType="studyFormType" @change="selectTemplateChange" />
:name="form.templateMc" :studyType="studyType" :selectedDeptId="selectedDeptId" :studyFormType="studyFormType" @change="selectTemplateChange" />
</el-form-item>
</el-col>
</el-row>
@ -155,6 +155,7 @@ export default {
open: false,
openSubmit: false,
permitForSecectUser: '',
selectedDeptId:null,
rulesApprove: {
qmrmm: [{
required: true,
@ -267,6 +268,7 @@ export default {
this.permitForSecectUser = row.permitForSecectUser
this.studyType = row.studyType||null
this.studyFormType = row.studyFormType||null
this.selectedDeptId=row.selectedDeptId||null
if (row && row.id) {
this.showIndex = 2
this.$modal.loading()

+ 2
- 1
src/views/business/study/comp/ytbd/Xq.vue View File

@ -48,7 +48,8 @@
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showBj="false" :showXg="true" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>

+ 9
- 2
src/views/business/study/comp/ytbdList.vue View File

@ -215,7 +215,13 @@ export default {
default: () => {
return {}
}
}
},
selectedDeptId:{
type:[Number,String],
default:()=>{
return null
}
},
},
computed: {
...mapGetters([
@ -439,6 +445,7 @@ export default {
studySn: this.searchForm.studySn,
studyMc: this.searchForm.studyMc,
studyId: this.searchForm.studyId,
selectedDeptId:this.selectedDeptId,
studyType: 1,
studySubjectId: this.searchForm.studySubjectId,
permitForSecectUser: 'business:studyFormPre:sh'
@ -446,7 +453,7 @@ export default {
},
edit(row) {
this.$modal.loading()
studyMethod_getReadAllMethodStatus({ userId: this.id, studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }).then(response => {
studyMethod_getReadAllMethodStatus({ selectedDeptId:this.selectedDeptId,userId: this.id, studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }).then(response => {
if (response.data.toUrl) {
this.toRead(response.data)
} else {

Loading…
Cancel
Save