华西海圻ELN前端工程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

917 lines
34 KiB

<template>
<div>
<div class="edit-container">
<div class="edit-top">
<div class="left-top">
<img src="@/assets/images/back.png" @click="cancel()" />
<div class="left-title"></div>
</div>
<div class="center-top">
<div>
<div :class="showIndex == 1 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'">
<div class="el-step__icon-inner">1</div>
</div>
{{ $t('page.business.study.studyFormFill.jcsz') }}
</div>
<div class="line"></div>
<div>
<div :class="showIndex == 2 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'">
<div class="el-step__icon-inner">2</div>
</div>
{{ $t('page.business.study.studyFormFill.bdtb') }}
</div>
</div>
<div class="right-top">
<el-button @click="cancel()">{{ $t('form.cancel') }}</el-button>
<template v-if="showIndex == 1">
<el-button @click="save">{{ $t('page.business.study.studyFormFill.zc') }}</el-button>
<el-button type="primary" @click="next">{{ $t('page.business.study.studyFormFill.next') }}</el-button>
</template>
<template v-else>
<el-button @click="showYjcc" v-if="form.templateShowYjcc == 10">{{
$t('page.business.study.studyFormFill.yjcc')
}}</el-button>
<el-button @click="showSave">{{ $t('page.business.study.studyFormFill.save') }}</el-button>
<el-button type="primary" @click="showApprove">{{ $t('page.business.study.studyFormFill.submit')
}}</el-button>
<el-button type="primary" @click="pre">{{ $t('page.business.study.studyFormFill.pre') }}</el-button>
</template>
</div>
</div>
<div class="edit-content">
<div class="content" style="width:60%" v-show="showIndex == 1">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<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" :selectedDeptId="selectedDeptId" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.form.bdmc')" prop="bdmc">
<el-input type="text" v-model="form.bdmc" maxlength="50" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormFill.sfbl')" prop="sfbl">
<el-select v-model="form.sfbl" :placeholder="$t('form.placeholderSelect')" style="width: 100%;">
<el-option :label="$t('page.business.study.studyFormFill.yes')" value="是" />
<el-option :label="$t('page.business.study.studyFormFill.no')" value="否" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormFill.bdsm')" prop="bdsm">
<el-input type="textarea" v-model="form.bdsm" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="content" v-if="showIndex == 2">
<TemplateTable emitName="onFillCallback" @onFillCallback="onFillCallback" ref="templateTable"
:sn="form.templateSn" :templateData="templateData" fillType="actFill" />
</div>
</div>
</div>
<el-dialog :title="$t('page.business.study.studyFormFill.tjjl')" :visible.sync="openApprove" width="1200px"
append-to-body :close-on-click-modal="false">
<el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px" v-if="openApprove">
<div class="sbzdtcma"> <input type="text"> <input type="password" show-password> </div>
<el-row v-if="form.sftb == 1">
<el-col :psna="24">
<el-form-item>
<div><el-checkbox v-model="formApprove.sfcz" @change="sfczChange">{{
$t('page.business.study.studyFormFill.cz') }}</el-checkbox>
<el-button type="primary" v-if="formApprove.sfcz" @click="addCz" style="margin-left: 10px;">{{
$t('page.business.study.studyFormFill.tjcz') }}</el-button>
</div>
<template v-if="formApprove.sfcz">
<div v-if="czlist.length > 0">
<el-card class="box-card" v-for="(citem, cindex) in czlist" :key="'cz' + cindex"
style="margin-top: 10px;">
<div slot="header" class="clearfix">
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div> 处置方式:</div>
<div>
<BusinessSelect v-model="citem.czfs" dictType="business_czfs" style="width: 200px;">
</BusinessSelect>
</div>
</div>
<div>
<el-button type="danger" icon="el-icon-delete" circle @click="delcz(cindex)"></el-button>
</div>
</div>
</div>
<el-checkbox-group v-model="citem.list">
<el-checkbox :label="item.bh" v-for="item in resource" :key="'icz' + item.bh"
:disabled="getDisabledCz(item.bh, cindex)"></el-checkbox>
</el-checkbox-group>
</el-card>
</div>
</template>
</el-form-item>
</el-col>
<el-col :psna="24">
<el-form-item>
<div><el-checkbox v-model="formApprove.sfcc" @change="sfccChange">{{
$t('page.business.study.studyFormFill.cc') }}</el-checkbox>
<el-button type="primary" v-if="formApprove.sfcc" @click="addCc" style="margin-left: 10px;">{{
$t('page.business.study.studyFormFill.tjcc') }}</el-button>
</div>
<template v-if="formApprove.sfcc">
<div v-if="cclist.length > 0">
<el-card class="box-card" v-for="(citem, cindex) in cclist" :key="'cz' + cindex"
style="margin-top: 10px;">
<div slot="header" class="clearfix">
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div style="display: flex;">
<div> 存储位置:</div>
<div>
<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>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" style="width: 200px;">
</BusinessSelect>
</div>
</div>
</div>
<div>
<el-button type="danger" icon="el-icon-delete" circle @click="delcc(cindex)"></el-button>
</div>
</div>
</div>
<el-checkbox-group v-model="citem.list">
<el-checkbox :label="item.bh" v-for="item in resource" :key="'icz' + item.bh"
:disabled="getDisabledCc(item.bh, cindex)"></el-checkbox>
</el-checkbox-group>
</el-card>
</div>
</template>
</el-form-item>
</el-col>
<el-col :psna="24">
<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(50% - 11px);">
<div style="display: flex;">
<div> {{ item.bh }}</div>
<div>
<el-input type="number" v-model="item.syl" maxlength="50" style="width:100px; margin:0px 0px 0px 5px;" />
</div>
<div>
<div style="width: 70px;">
<BusinessSelect v-model="item.syldw" :showMax="false" dictType="business_tjdw">
</BusinessSelect>
</div>
</div>
</div>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formApprove.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="formApprove.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<div class="sbzdtcma"> <input type="text"></div>
<el-input type="password" show-password v-model="formApprove.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="tj">{{ $t('form.confirm') }}</el-button>
<el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
<el-dialog :title="$t('page.business.study.studyFormFill.yjcc')" :visible.sync="openYjcc" width="1200px"
append-to-body :close-on-click-modal="false">
<el-form ref="formYjcc" :model="formYjcc" :rules="rulesYjcc" label-width="120px" v-if="openYjcc">
<div class="sbzdtcma"> <input type="text"> <input type="password" show-password> </div>
<el-row>
<el-col :psna="24">
<el-form-item>
<div>
<el-button type="primary" @click="addCcYj" style="margin-left: 10px;">{{
$t('page.business.study.studyFormFill.tjcc') }}</el-button>
</div>
<template>
<div v-if="cclistYj.length > 0">
<el-card class="box-card" v-for="(citem, cindex) in cclistYj" :key="'cz' + cindex"
style="margin-top: 10px;">
<div slot="header" class="clearfix">
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div style="display: flex;">
<div> 存储位置:</div>
<div>
<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;">
<div> 存储条件:</div>
<div>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" style="width: 200px;">
</BusinessSelect>
</div>
</div>
</div>
<div>
<el-button type="danger" icon="el-icon-delete" v-if="cclistYj.length > 1" circle
@click="delccYj(cindex)"></el-button>
</div>
</div>
</div>
<el-checkbox-group v-model="citem.list">
<el-checkbox :label="item.bh" v-for="item in resourceYj" :key="'icz' + item.bh"
:disabled="getDisabledCcYj(item.bh, cindex)"></el-checkbox>
</el-checkbox-group>
</el-card>
</div>
</template>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formYjcc.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="formYjcc.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<div class="sbzdtcma"> <input type="text"></div>
<el-input type="password" show-password v-model="formYjcc.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="yjcc">{{ $t('form.confirm') }}</el-button>
<el-button @click="openYjcc = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
<el-dialog :title="$t('page.business.study.studyFormFill.bcjl')" :visible.sync="openSave" width="600px"
append-to-body :close-on-click-modal="false">
<el-form ref="formSave" :model="formSave" :rules="rulesSave" label-width="120px" v-if="openSave">
<div class="sbzdtcma"> <input type="text"> <input type="password" show-password> </div>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formSave.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="formSave.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<div class="sbzdtcma"> <input type="text"></div>
<el-input type="password" show-password v-model="formSave.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveNext">{{ $t('form.confirm') }}</el-button>
<el-button @click="openSave = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</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'
import SelectTemplate from "@/views/business/comps/select/SelectTemplate";
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",
components: { SelectTemplate, SelectDeptUser, TemplateTable, BusinessSelect },
data() {
return {
showIndex: 1,
form: {},
rules: {
bdmc: [{
required: true,
message: ' ',
trigger: 'blur'
}],
templateId: [{
required: true,
message: ' ',
trigger: 'blur'
}],
sfbl: [{
required: true,
message: ' ',
trigger: 'blur'
}],
},
czlist: [],
cclist: [],
cclistYj: [],
openSave: false,
openApprove: false,
openYjcc: false,
formSave: {
qmyy: this.$t('page.business.study.studyFormFill.txbbc'),
remark: '',
qmrmm: '',
},
formApprove: {
id: null,
qmyy: this.$t('page.business.study.studyFormFill.txbtjjl'),
remark: '',
bdnr: '',
resource: '',
yqResource: '',
jcbList: '',
qmrmm: '',
sfcz: false,
czfs: '',
czfsqt: '',
czids: '',
sfcc: false,
cctj: '',
ccwz: '',
ccids: '',
},
formYjcc: {
id: null,
qmyy: this.$t('page.business.study.studyFormFill.yjcc'),
remark: '',
resource: '',
qmrmm: '',
sfcz: false,
czfs: '',
czfsqt: '',
czids: '',
sfcc: false,
cctj: '',
ccwz: '',
ccids: '',
},
resourceYj: [],
resource: [],
yqResource: [],
jcbList: [],
bdmbTitle: this.$t('page.business.form.bdmb'),
rulesApprove: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
},
rulesYjcc: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
},
rulesSave: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
},
templateData: {},
studyType: null,
studyFormType: null,
ccwzlist: [],
selectedDeptId: null,
}
},
computed: {
...mapGetters([
'nickName', 'name'
]),
},
created() {
this.getInfo()
this.getCcwz()
},
methods: {
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))
console.log("formdata:" + JSON.stringify(this.$refs.templateTable.getFilledFormData()))
if (data.type == 'fieldChanged') {
studyFormFill_updateBdnr(
{
id: this.form.id,
bdnr: JSON.stringify(this.$refs.templateTable.getFilledFormData()),
zdxgjl: data.resourceList ? JSON.stringify(data.resourceList) : '',
filedValue: data.newRecord ? JSON.stringify(data.newRecord) : ''
}
).then(response => {
})
} else if (data.type == 'reply') {
studyFormFill_updateFhyjjl(
{
id: this.form.id,
reply: JSON.stringify(data.newRecord),
fhyjjl: JSON.stringify(data.resourceList)
}
).then(response => {
})
}
},
delcc(index) {
this.cclist.splice(index, 1)
},
delccYj(index) {
this.cclistYj.splice(index, 1)
},
delcz(index) {
this.czlist.splice(index, 1)
},
addCz() {
this.czlist.push({
list: [],
czfs: ''
})
},
addCc() {
this.cclist.push({
list: [],
cctj: '',
ccwz: ''
})
},
addCcYj() {
this.cclistYj.push({
list: [],
cctj: '',
ccwz: ''
})
},
getInfo() {
let key = this.$route.params.key
if (key && key != undefined && key != '') {
let params = null
try {
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('参数错误')
}
if (params) {
this.reset()
if (params.formId && params.formId != '') {
if (params.fromYt) {
this.showIndex = 1
this.bdmbTitle = this.$t('page.business.study.studyFormFill.ytbd')
} else {
this.showIndex = 2
}
this.$modal.loading()
studyFormFill_info({ id: params.formId }).then(response => {
this.form = response.data
this.form.qmyy = this.$t('page.business.study.studyFormFill.zztjyzbd')
this.templateData = deepClone(this.form)
const obj = Object.assign({}, this.$route, { title: this.form.bdmc })
this.$tab.updatePage(obj);
this.saveSimpleLog({ jcmc: '填报表单编辑', jcmcEn: 'Record Edit', name: this.form.bdmc + '(' + this.form.bdbh + ')', nameEn: this.form.bdmc + '(' + this.form.bdbh + ')' })
this.$modal.closeLoading()
})
} else {
this.showIndex = 1
this.$modal.loading()
study_info({ id: params.studyId }).then(response => {
this.form = _.merge({}, this.form, { stydyId: params.studyId, resourceStudy: response.data.resource, sftb: 1 })
this.templateData = deepClone(this.form)
const obj = Object.assign({}, this.$route, { title: this.$t('page.business.study.studyFormFill.xzbd') })
this.$tab.updatePage(obj);
let name = this.studyType == 1 ? '试验' : (this.studyType == 5 ? '非试验表单' : '麻精药表单')
let nameEn = this.studyType == 1 ? 'Study' : (this.studyType == 5 ? 'Non-study' : 'ontrolled Drug')
this.saveSimpleLog({ jcmc: '填报表单新增', jcmcEn: 'Record Create', name: name, nameEn: nameEn })
this.$modal.closeLoading()
})
}
} else {
this.$tab.closeOpenPage('/404')
}
}
},
getDisabledCz(bh, idx) {
let mark = false
for (var i = 0; i < this.czlist.length; i++) {
if (idx != i) {
for (var j = 0; j < this.czlist[i].list.length; j++) {
if (this.czlist[i].list[j] == bh) {
mark = true;
break
}
}
}
}
return mark
},
getDisabledCc(bh, idx) {
let mark = false
for (var i = 0; i < this.cclist.length; i++) {
if (idx != i) {
for (var j = 0; j < this.cclist[i].list.length; j++) {
if (this.cclist[i].list[j] == bh) {
mark = true;
break
}
}
}
}
return mark
},
getDisabledCcYj(bh, idx) {
let mark = false
for (var i = 0; i < this.cclistYj.length; i++) {
if (idx != i) {
for (var j = 0; j < this.cclistYj[i].list.length; j++) {
if (this.cclistYj[i].list[j] == bh) {
mark = true;
break
}
}
}
}
return mark
},
sfczChange() {
if (!this.formApprove.sfcz) {
this.czlist = []
}
},
sfccChange() {
if (!this.formApprove.sfcc) {
this.cclist = []
}
},
async showApprove() {
let that = this
let content = await that.$refs.templateTable.getFormData()
if (content) {
that.resetApprove()
that.formApprove.id = that.form.id
that.formApprove.bdnr = JSON.stringify(content)
that.resource = that.$refs.templateTable.getResource()
that.yqResource = that.$refs.templateTable.getYqResource()
that.jcbList = that.$refs.templateTable.getJcbList()
that.openApprove = true
}
},
async showYjcc() {
let that = this
that.resetYjcc()
that.formYjcc.id = that.form.id
that.cclistYj = []
that.addCcYj()
that.$refs.templateTable.getFilledFormData()
let resource = that.$refs.templateTable.getResource()
if (resource.length > 0) {
that.$modal.loading()
studyFormFill_yjccFilter({ id: this.form.id, resource: JSON.stringify(resource) }).then(response => {
let tmpResource = JSON.parse(response.msg)
if (tmpResource.length > 0) {
that.resourceYj = tmpResource
that.openYjcc = true
} else {
that.$modal.msgError("没有可存储的药剂")
}
}).finally(() => {
that.$modal.closeLoading()
})
} else {
that.$modal.msgError("没有可存储的药剂")
}
},
resetYjcc() {
this.formYjcc = {
id: null,
qmyy: this.$t('page.business.study.studyFormFill.yjcc'),
remark: '',
bdnr: '',
resource: '',
qmrmm: '',
sfcz: false,
czlist: '',
sfcc: false,
cclist: '',
}
this.resetForm("formYjcc")
},
resetApprove() {
this.formApprove = {
id: null,
qmyy: this.$t('page.business.study.studyFormFill.txbtjjl'),
remark: '',
bdnr: '',
resource: '',
qmrmm: '',
sfcz: false,
czlist: '',
sfcc: false,
cclist: '',
}
this.resetForm("formApprove")
},
pre() {
this.showIndex = 1
},
next() {
this.$refs["form"].validate(valid => {
if (valid) {
this.showIndex = 2
this.$modal.loading()
studyFormFill_bcOnly(this.form).then(response => {
this.form = response.data
this.templateData.bdmc = this.form.bdmc
this.showIndex = 2
const obj = Object.assign({}, this.$route, { title: this.form.bdmc })
this.$tab.updatePage(obj);
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
selectTemplateChange(val) {
this.form.bdnr = val.content
this.form.templateMc = val.name
this.form.bdmc = val.name
this.form.templateSn = val.sn
},
cancel() {
try {
let key = caesarDecipher(this.$route.params.key)
let data = JSON.parse(key)
if (data && data != undefined && data != '') {
const obj = { path: data.url }
this.$tab.closeOpenPage(obj)
}
} catch (e) {
this.$tab.closeOpenPage('/404')
}
},
cancelSave() {
try {
// 类型1试验,5非试验表单,10麻精药表单
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 != '') {
const obj = { path: data.urlTj ? data.urlTj : data.url }
this.$tab.closeOpenPage(obj)
}
} catch (e) {
this.$tab.closeOpenPage('/404')
}
},
reset() {
this.form = {
id: null,
studyId: null,
bdbh: null,
bdmc: null,
bdsm: null,
templateId: null,
templateMc: null,
templateSn: null,
bdnr: null,
resource: null,
resourceStudy: null,
fzrsh: null,
shryId: null,
sfbl: null,
shryMc: null,
}
this.resetForm("form")
},
selectDeptUserChange(val) {
this.form.shryMc = val.name
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
this.$modal.loading()
studyFormFill_bcOnly(this.form).then(response => {
this.$modal.closeLoading()
this.cancelSave()
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
showSave() {
this.formSave.remark = ''
this.formSave.qmrmm = ''
this.openSave = true
},
async saveNext() {
this.$refs["formSave"].validate(valid => {
if (valid) {
this.form.bdnr = JSON.stringify(this.$refs.templateTable.getFilledFormData())
this.form.qmrmm = this.formSave.qmrmm
this.form.remark = this.formSave.remark
this.$modal.loading()
studyFormFill_bc(this.form).then(response => {
this.$modal.closeLoading()
this.cancelSave()
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
yjcc() {
let that = this
this.$refs["formYjcc"].validate(valid => {
if (valid) {
if (that.cclistYj.length == 0) {
this.$modal.msgError("请选择要处置的药剂")
} else {
for (var i = 0; i < that.cclistYj.length; i++) {
if (!that.cclistYj[i].ccwz || that.cclistYj[i].ccwz == '') {
this.$modal.msgError('第' + (i + 1) + "个存储,存储位置不能为空")
return
}
if (!that.cclistYj[i].cctj || that.cclistYj[i].cctj == '') {
this.$modal.msgError('第' + (i + 1) + "个存储,存储条件不能为空")
return
}
}
that.$modal.loading()
that.formYjcc.resource = JSON.stringify(that.resourceYj)
that.formYjcc.cclist = JSON.stringify(that.cclistYj)
studyFormFill_yjcc(that.formYjcc).then(response => {
that.openYjcc = false
that.$modal.closeLoading()
that.cancelSave()
}).finally(() => {
that.$modal.closeLoading()
})
}
}
})
},
tj() {
let that = this
this.$refs["formApprove"].validate(valid => {
if (valid) {
that.$modal.loading()
that.formApprove.resource = JSON.stringify(that.resource)
that.formApprove.yqResource = JSON.stringify(that.yqResource)
that.formApprove.jcbList = JSON.stringify(that.jcbList)
if (that.czlist.length > 0) {
that.formApprove.czlist = JSON.stringify(that.czlist)
}
if (that.cclist.length > 0) {
that.formApprove.cclist = JSON.stringify(that.cclist)
}
studyFormFill_tj(that.formApprove).then(response => {
that.openApprove = false
that.$modal.closeLoading()
that.cancelSave()
}).finally(() => {
that.$modal.closeLoading()
})
}
})
}
}
}
</script>