|
|
- <template>
- <div>
- <div class="edit-container" v-if="open">
- <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.studyFormPre.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.studyFormPre.bdsj') }}
- </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.studyFormPre.zc') }}</el-button>
- <el-button type="primary" @click="next">{{ $t('page.business.study.studyFormPre.next') }}</el-button>
- </template>
- <template v-else>
- <el-button @click="saveNext">{{ $t('page.business.study.studyFormPre.save') }}</el-button>
- <el-button type="primary" @click="showtj">{{ $t('page.business.study.studyFormPre.submit')
- }}</el-button>
- <el-button type="primary" @click="pre">{{ $t('page.business.study.studyFormPre.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="$t('page.business.form.bdmb')" prop="templateId">
- <SelectTemplate v-model="form.templateId" :disabled="form.id && form.id !== ''" :needPre="10"
- :name="form.templateMc" :studyType="studyType" :selectedDeptId="selectedDeptId"
- :studyFormType="studyFormType" @change="selectTemplateChange" />
- </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.studyFormPre.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 ref="templateTable" emitName="onPreCallback" @onPreCallback="onPreCallback"
- :sn="form.templateSn" :templateData="templateData" fillType="preFill" />
- </div>
- </div>
- </div>
- <el-dialog :title="$t('page.business.study.studyFormPre.tjysb')" :visible.sync="openSubmit" width="600px"
- append-to-body :close-on-click-modal="false">
- <el-form ref="formSubmit" :model="form" :rules="rulesApprove" label-width="200px" v-if="openSubmit">
- <div class="sbzdtcma"> <input type="text"> <input type="password" show-password> </div>
- <el-row>
- <el-col :span="24">
- <el-form-item :label="$t('page.business.study.studyFormPre.shryId')" prop="shryId">
- <SelectStudyUser v-model="form.shryId" :query="{
- studyId: form.studyId,
- studySubjectId: form.studySubjectId,
- permit: permitForSecectUser
- }" key="shryId" @change="selectDeptUserChange" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item :label="$t('page.business.study.studyFormPre.fzrsh')" prop="fzrsh">
- <el-radio-group v-model="form.fzrsh">
- <el-radio :label="$t('page.business.study.studyFormPre.yes')">{{
- $t('page.business.study.studyFormPre.yes')
- }}</el-radio>
- <el-radio :label="$t('page.business.study.studyFormPre.no')">{{
- $t('page.business.study.studyFormPre.no')
- }}</el-radio>
- </el-radio-group>
- </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="form.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="form.getReason" :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">
- <el-input type="password" show-password v-model="form.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="openSubmit = false">{{ $t('form.cancel') }}</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
-
- <script>
- import { studyFormPre_bc, studyFormPre_bcOnly, studyFormPre_tj, studyFormPre_info, studyFormPre_updateBdnr } from "@/api/business/study/studyFormPre"
- import { mapGetters } from 'vuex'
- import SelectTemplate from "@/views/business/comps/select/SelectTemplate";
- import SelectStudyUser from '@/views/business/comps/select/SelectStudyUser';
- import TemplateTable from '@/views/business/comps/template/TemplateTable';
- import { deepClone } from "@/utils/index";
-
- export default {
- name: "Bj",
- components: { SelectTemplate, SelectStudyUser, TemplateTable },
- data() {
- return {
- showIndex: 1,
- form: {},
- open: false,
- openSubmit: false,
- permitForSecectUser: '',
- selectedDeptId: null,
- rulesApprove: {
- qmrmm: [{
- required: true,
- message: ' ',
- trigger: 'blur'
- }],
- fzrsh: [{
- required: true,
- message: this.$t('form.placeholderSelect'),
- trigger: 'blur'
- }],
- // shryId: [{
- // required: true,
- // message: ' ',
- // trigger: 'blur'
- // }]
- },
- rules: {
- bdmc: [{
- required: true,
- message: ' ',
- trigger: 'blur'
- }],
- templateId: [{
- required: true,
- message: ' ',
- trigger: 'blur'
- }]
-
- },
- templateData: {},
- studyType: null,
- studyFormType: null,
- }
- },
- computed: {
- ...mapGetters([
- 'nickName', 'name'
- ]),
- },
- created() {
- },
- methods: {
- onPreCallback(data) {
- console.log("data:" + JSON.stringify(data))
- console.log("formdata:" + JSON.stringify(this.$refs.templateTable.getFilledFormData()))
- if (data.type == 'fieldChanged') {
- studyFormPre_updateBdnr(
- {
- id: this.form.id,
- bdnr: JSON.stringify(this.$refs.templateTable.getFilledFormData()),
- // zdxgjl: JSON.stringify(data.resourceList),
- // filedValue: JSON.stringify(data.newRecord)
- }
- ).then(response => {
- })
- }
- },
- pre() {
- this.showIndex = 1
- },
- next() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- this.$modal.loading()
- studyFormPre_bcOnly(this.form).then(response => {
- this.form = response.data
- this.templateData = deepClone(this.form)
- this.showIndex = 2
- this.$modal.closeLoading()
- }).finally(() => {
- this.$modal.closeLoading()
- })
- }
- })
- },
- selectTemplateChange(val) {
- this.form.bdnr = val.content
- if (this.$i18n.locale === 'zh_CN') {
- this.form.templateMc = val.name
- this.form.bdmc = val.name
- } else {
- this.form.templateMc = val.nameEn
- this.form.bdmc = val.nameEn
- }
- this.form.templateSn = val.sn
- this.templateData = deepClone(this.form)
- setTimeout(() => {
- this.$refs["form"].validate()
- }, 200)
- },
- cancel() {
- this.$emit('close')
- this.open = false
- },
- reset() {
- this.form = {
- id: null,
- studyId: null,
- bdbh: null,
- bdmc: null,
- bdsm: null,
- templateId: null,
- templateMc: null,
- templateSn: null,
- bdnr: null,
- fzrsh: null,
- shryId: null,
- shryMc: null,
- }
- this.resetForm("form")
- },
- selectDeptUserChange(val) {
- this.form.shryMc = val.name
- },
- edit(row) {
- this.reset()
- this.permitForSecectUser = row.permitForSecectUser
- this.studyType = row.studyType || null
- this.studyFormType = row.studyFormType || 1
- this.selectedDeptId = row.selectedDeptId || null
- if (row && row.id) {
- this.showIndex = 2
- this.$modal.loading()
- studyFormPre_info({ id: row.id }).then(response => {
- this.form = _.merge({}, response.data, { permitForSecectUser: row.permitForSecectUser })
- this.form.qmyy = this.$t('page.business.study.studyFormPre.zztjyzbd')
- this.templateData = deepClone(this.form)
- this.open = true
- this.saveSimpleLog({ jcmc: '预填表单编辑', jcmcEn: 'Preset Edit', name: this.form.bdmc + '(' + this.form.bdbh + ')', nameEn: this.form.bdmc + '(' + this.form.bdbh + ')' })
- this.$modal.closeLoading()
- }).finally(() => {
- this.$modal.closeLoading()
- })
- } else {
- this.showIndex = 1
- this.form = _.merge({}, this.form, row)
- 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: 'Preset Create', name: name, nameEn: nameEn })
- this.open = true
- }
- },
- save() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- this.$modal.loading()
- studyFormPre_bc(this.form).then(response => {
- this.$emit('close')
- this.open = false
- this.$modal.closeLoading()
- }).finally(() => {
- this.$modal.closeLoading()
- })
- }
- })
- },
- async saveNext() {
- this.form.bdnr = JSON.stringify(this.$refs.templateTable.getFilledFormData())
- this.$modal.loading()
- studyFormPre_bc(this.form).then(response => {
- this.$emit('close')
- this.open = false
- this.$modal.closeLoading()
- }).finally(() => {
- this.$modal.closeLoading()
- })
- },
- async showtj() {
- let content = await this.$refs.templateTable.getFormData()
- if (content) {
- this.form.bdnr = JSON.stringify(content)
- this.openSubmit = true
- }
- },
- tj() {
- this.$refs["formSubmit"].validate(valid => {
- if (valid) {
- this.$modal.loading()
- studyFormPre_tj(this.form).then(response => {
- this.$emit('close')
- this.open = false
- this.openSubmit = false
- this.$modal.closeLoading()
- }).finally(() => {
- this.$modal.closeLoading()
- })
- }
- })
- }
- }
- }
- </script>
|