| @ -1,251 +0,0 @@ | |||
| G<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.studyFormApply.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.studyFormApply.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.studyFormApply.zc') }}</el-button> | |||
| <el-button type="primary" @click="next">{{ $t('page.business.study.studyFormApply.next') }}</el-button> | |||
| </template> | |||
| <template v-else> | |||
| <el-button @click="saveNext">{{ $t('page.business.study.studyFormApply.save') }}</el-button> | |||
| <el-button type="primary" @click="openSubmit = true">{{ $t('page.business.study.studyFormApply.submit') | |||
| }}</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" :name="form.templateMc" @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.studyFormApply.sfbl')" prop="sfbl"> | |||
| <el-select v-model="form.sfbl" :placeholder="$t('form.placeholderSelect')" > | |||
| <el-option :label="$t('page.business.study.studyFormApply.yes')" :value="10" /> | |||
| <el-option :label="$t('page.business.study.studyFormApply.no')" :value="1" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| <el-row> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormApply.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-show="showIndex == 2"> | |||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="preApply" /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.tjjl')" :visible.sync="openSubmit" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="formSubmit" :model="form" :rules="rulesApprove" label-width="120px"> | |||
| todo | |||
| </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 { studyFormApply_bc, studyFormApply_tj, studyFormApply_info } from "@/api/business/study/studyFormApply" | |||
| 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'; | |||
| export default { | |||
| name: "Bj", | |||
| components: { SelectTemplate, SelectDeptUser, TemplateTable }, | |||
| data() { | |||
| return { | |||
| open: false, | |||
| showIndex: 1, | |||
| form: {}, | |||
| openSubmit: false, | |||
| rulesApprove: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| fzrsh: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| shryId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| }, | |||
| rules: { | |||
| bdmc: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| templateId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| sfbl: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| next() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| this.showIndex = 2 | |||
| } | |||
| }) | |||
| }, | |||
| selectTemplateChange(val) { | |||
| this.form.bdnr = val.content | |||
| this.form.templateMc = val.name | |||
| }, | |||
| cancel() { | |||
| this.$emit('close') | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| studyId: null, | |||
| bdbh: null, | |||
| bdmc: null, | |||
| bdsm: null, | |||
| templateId: null, | |||
| templateMc: null, | |||
| bdnr: null, | |||
| fzrsh: null, | |||
| shryId: null, | |||
| sfbl: null, | |||
| shryMc: null, | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| selectDeptUserChange(val) { | |||
| this.form.shryMc = val.name | |||
| }, | |||
| edit(row) { | |||
| this.reset() | |||
| this.showIndex = 1 | |||
| if (row && row.id) { | |||
| this.$modal.loading() | |||
| studyFormApply_info({ id: row.id }).then(response => { | |||
| this.form = response.data | |||
| this.form.qmyy = '制作提交预制表单' | |||
| this.open = true | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } else { | |||
| this.form = _.merge({}, this.form, row) | |||
| this.open = true | |||
| } | |||
| }, | |||
| save() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_bc(this.form).then(response => { | |||
| this.$emit('close') | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| async saveNext() { | |||
| let content = await this.$refs.templateTable.getFormData() | |||
| this.form.bdnr = JSON.stringify(content) | |||
| this.$modal.loading() | |||
| studyFormApply_bc(this.form).then(response => { | |||
| this.$emit('close') | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| tj() { | |||
| this.$refs["formSubmit"].validate(valid => { | |||
| if (valid) { | |||
| this.dotj() | |||
| } | |||
| }) | |||
| }, | |||
| async dotj() { | |||
| let content = await this.$refs.templateTable.getFormData() | |||
| this.form.bdnr = JSON.stringify(content) | |||
| this.$modal.loading() | |||
| studyFormApply_tj(this.form).then(response => { | |||
| this.$emit('close') | |||
| this.openSubmit = false | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,269 +0,0 @@ | |||
| G<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="right-top"> | |||
| <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button> | |||
| <el-button type="danger" @click="showApprove('复核拒绝')">{{ $t('page.business.study.studyFormApply.fhjj') | |||
| }}</el-button> | |||
| <el-button type="primary" @click="showApprove('复核通过')">{{ $t('page.business.study.studyFormApply.fhtg') | |||
| }}</el-button> | |||
| <el-button type="primary" @click="showApprove('通过')">{{ $t('page.business.study.studyFormApply.tongguo') | |||
| }}</el-button> | |||
| </div> | |||
| </div> | |||
| <div class="edit-content"> | |||
| <div class="content-left"> | |||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||
| </div> | |||
| <div class="pal"> | |||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||
| :show-overflow-tooltip="true" /> | |||
| </el-table> | |||
| </div> | |||
| <div class="pal"> | |||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||
| </div> | |||
| </div> | |||
| <div class="content-right"> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||
| </div> | |||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" /> | |||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||
| @pagination="getJjcgjList" /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <el-dialog :title="$t(openTitle)" :visible.sync="openApprove" width="500px" append-to-body | |||
| :close-on-click-modal="false"> | |||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||
| <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 v-if="formApprove.qmyy == '复核拒绝'"> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormApply.reason')" prop="reason"> | |||
| <el-input type="textarea" v-model="formApprove.reason" :rows="5" maxlength="500" | |||
| :placeholder="$t('form.placeholderInput')"> | |||
| </el-input> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| <el-row v-else> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('form.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"> | |||
| <el-input type="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="approve">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_fhtg, studyFormApply_fhjj, studyFormApply_tg, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||
| export default { | |||
| name: "Fh", | |||
| components: { TemplateTable, JcgjList }, | |||
| data() { | |||
| return { | |||
| form: {}, | |||
| qmxxList: [], | |||
| totalQmxx: 0, | |||
| loadingQmxx: true, | |||
| queryParamsQmxx: { | |||
| formId: null, | |||
| pageNum: 1, | |||
| pageSize: 10 | |||
| }, | |||
| jcgjList: [], | |||
| jcgjTotal: 0, | |||
| queryParamsJcgj: { | |||
| pageNum: 1, | |||
| formId: null, | |||
| pageSize: 10, | |||
| }, | |||
| openTitle: '', | |||
| openApprove: false, | |||
| formApprove: {}, | |||
| rulesApprove: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| reason: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| getJjcgjList(val) { | |||
| this.$modal.loading() | |||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||
| this.jcgjList = response.rows | |||
| this.jcgjTotal = response.total | |||
| this.$refs.jcgjList.init(this.jcgjList) | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| getQmxxList() { | |||
| this.loadingQmxx = true | |||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||
| this.qmxxList = response.rows | |||
| this.totalQmxx = response.total | |||
| this.loadingQmxx = false | |||
| }) | |||
| }, | |||
| cancel() { | |||
| this.$emit('close') | |||
| }, | |||
| reset() { | |||
| this.form = {} | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.$modal.loading() | |||
| this.queryParamsJcgj.formId = row.id | |||
| this.queryParamsQmxx.formId = row.id | |||
| studyFormApply_info({ id: row.id }).then(response => { | |||
| this.form = response.data | |||
| this.getQmxxList() | |||
| this.getJjcgjList() | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| showApprove(qmyy) { | |||
| this.openApprove = true | |||
| this.resetApprove() | |||
| this.formApprove.id = this.form.id | |||
| this.formApprove.qmyy = qmyy | |||
| if (qmyy == '复核通过') { | |||
| this.openTitle = 'page.business.study.studyFormApply.fhtg' | |||
| } else if (qmyy == '复核拒绝') { | |||
| this.openTitle = 'page.business.study.studyFormApply.fhjj' | |||
| } else if (qmyy == '通过') { | |||
| this.openTitle = 'page.business.study.studyFormApply.tongguo' | |||
| } | |||
| }, | |||
| resetApprove() { | |||
| this.formApprove = { | |||
| id: null, | |||
| qmyy: '', | |||
| bdnr: '', | |||
| remark: '', | |||
| reason: '', | |||
| qmrmm: '', | |||
| } | |||
| this.resetForm("formApprove") | |||
| }, | |||
| approve() { | |||
| this.$refs["formApprove"].validate(valid => { | |||
| if (valid) { | |||
| this.doapprove() | |||
| } | |||
| }) | |||
| }, | |||
| async doapprove() { | |||
| let content = await this.$refs.templateTable.getFormData() | |||
| this.formApprove.bdnr = JSON.stringify(content) | |||
| this.$modal.loading() | |||
| if (this.formApprove.qmyy == '复核通过') { | |||
| studyFormApply_fhtg(this.formApprove).then(response => { | |||
| this.openApprove = false | |||
| this.$modal.closeLoading() | |||
| this.$emit('close') | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } else if (this.formApprove.qmyy == '复核拒绝') { | |||
| this.formApprove.remark=this.formApprove.reason | |||
| studyFormApply_fhjj(this.formApprove).then(response => { | |||
| this.openApprove = false | |||
| this.$modal.closeLoading() | |||
| this.$emit('close') | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } else { | |||
| studyFormApply_tg(this.formApprove).then(response => { | |||
| this.openApprove = false | |||
| this.$modal.closeLoading() | |||
| this.$emit('close') | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,115 +0,0 @@ | |||
| G<template> | |||
| <div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.sqfz')" :visible.sync="open" width="500px" append-to-body | |||
| :close-on-click-modal="false"> | |||
| <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | |||
| <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.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"> | |||
| <el-input type="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="save">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="cancel">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_fz } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: "Fz", | |||
| components: {}, | |||
| data() { | |||
| return { | |||
| isBatch: false, | |||
| ids: [], | |||
| selectList: [], | |||
| open: false, | |||
| form: {}, | |||
| rules: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| remark: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| cancel() { | |||
| this.open = false | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| qmyy: '申请废止', | |||
| remark: null, | |||
| qmrmm: null | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.form.id = row.id | |||
| this.open = true | |||
| }, | |||
| save() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| studyFormApply_fz(this.form).then(response => { | |||
| this.open = false | |||
| this.$emit('callback') | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,126 +0,0 @@ | |||
| G<template> | |||
| <div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.rybg')" :visible.sync="open" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | |||
| <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('page.business.study.studyFormApply.reason')" prop="remark"> | |||
| <el-input type="textarea" v-model="form.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"> | |||
| <el-input type="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="save">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="cancel">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_ghgsr } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: "Ghgsr", | |||
| components: {}, | |||
| data() { | |||
| return { | |||
| isBatch: false, | |||
| ids: [], | |||
| selectList: [], | |||
| open: false, | |||
| form: {}, | |||
| rules: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| remark: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| qmyy: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| cancel() { | |||
| this.open = false | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| qmyy: '更换归属人', | |||
| userId: null, | |||
| UserMc: null, | |||
| remark: null, | |||
| qmrmm: null | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.form.id = row.id | |||
| this.form.userId = row.userId | |||
| this.form.userMc = row.userMc | |||
| this.open = true | |||
| }, | |||
| save() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_ghgsr(this.form).then(response => { | |||
| this.open = false | |||
| this.$emit('callback') | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,126 +0,0 @@ | |||
| G<template> | |||
| <div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.jiaqian')" :visible.sync="open" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | |||
| <el-row> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('form.qmyy')" prop="qmyy"> | |||
| <el-select v-model="form.qmyy" :placeholder="$t('form.placeholderSelect')" style="width: 100%;"> | |||
| <el-option label="开始现场复核" value="开始现场复核" /> | |||
| <el-option label="结束现场复核" value="结束现场复核" /> | |||
| <el-option label="申明协作" value="申明协作" /> | |||
| <el-option label="补充说明" value="补充说明" /> | |||
| </el-select> | |||
| </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.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"> | |||
| <el-input type="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="save">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="cancel">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_jq } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: "Fz", | |||
| components: {}, | |||
| data() { | |||
| return { | |||
| isBatch: false, | |||
| ids: [], | |||
| selectList: [], | |||
| open: false, | |||
| form: {}, | |||
| rules: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| remark: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| qmyy: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| cancel() { | |||
| this.open = false | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| qmyy: null, | |||
| remark: null, | |||
| qmrmm: null | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.form.id = row.id | |||
| this.open = true | |||
| }, | |||
| save() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_jq(this.form).then(response => { | |||
| this.open = false | |||
| this.$emit('callback') | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,126 +0,0 @@ | |||
| G<template> | |||
| <div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.qrfz')" :visible.sync="open" width="500px" append-to-body | |||
| :close-on-click-modal="false"> | |||
| <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | |||
| <el-row> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('form.qmyy')" prop="qmyymc"> | |||
| <el-input type="text" :value="form.qmyymc" 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('page.business.study.studyFormApply.reason')" prop="remark"> | |||
| <el-input type="textarea" v-model="form.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"> | |||
| <el-input type="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" style="text-align: center;"> | |||
| <el-button type="danger" @click="reject">{{ $t('page.business.study.studyFormApply.reject') }}</el-button> | |||
| <el-button type="primary" @click="approve">{{ $t('page.business.study.studyFormApply.approve') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_qrfz } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: "Qrfz", | |||
| components: {}, | |||
| data() { | |||
| return { | |||
| isBatch: false, | |||
| ids: [], | |||
| selectList: [], | |||
| open: false, | |||
| form: {}, | |||
| rules: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| remark: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| cancel() { | |||
| this.open = false | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| qmyymc: '废止通过/拒绝', | |||
| qmyy: null, | |||
| remark: null, | |||
| qmrmm: null | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.form.id = row.id | |||
| this.open = true | |||
| }, | |||
| reject() { | |||
| this.form.qmyy = 1 | |||
| this.save() | |||
| }, | |||
| approve() { | |||
| this.form.qmyy = 10 | |||
| this.save() | |||
| }, | |||
| save() { | |||
| this.$refs["form"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_qrfz(this.form).then(response => { | |||
| this.open = false | |||
| this.$emit('callback') | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,216 +0,0 @@ | |||
| G<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="right-top"> | |||
| <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button> | |||
| <el-button type="primary" @click="showApprove">{{ $t('page.business.study.studyFormApply.shenyue') | |||
| }}</el-button> | |||
| </div> | |||
| </div> | |||
| <div class="edit-content"> | |||
| <div class="content-left"> | |||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||
| </div> | |||
| <div class="pal"> | |||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||
| :show-overflow-tooltip="true" /> | |||
| </el-table> | |||
| </div> | |||
| <div class="pal"> | |||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||
| </div> | |||
| </div> | |||
| <div class="content-right"> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||
| </div> | |||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/> | |||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||
| @pagination="getJjcgjList" /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.shenyue')" :visible.sync="openApprove" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||
| <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"> | |||
| <el-input type="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="approve">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_sy, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||
| export default { | |||
| name: "Sy", | |||
| components: { TemplateTable, JcgjList }, | |||
| data() { | |||
| return { | |||
| form: {}, | |||
| qmxxList: [], | |||
| totalQmxx: 0, | |||
| loadingQmxx: true, | |||
| queryParamsQmxx: { | |||
| formId: null, | |||
| pageNum: 1, | |||
| pageSize: 10 | |||
| }, | |||
| jcgjList: [], | |||
| jcgjTotal: 0, | |||
| queryParamsJcgj: { | |||
| pageNum: 1, | |||
| formId: null, | |||
| pageSize: 10, | |||
| }, | |||
| openApprove: false, | |||
| formApprove: {}, | |||
| rulesApprove: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| getJjcgjList(val) { | |||
| this.$modal.loading() | |||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||
| this.jcgjList = response.rows | |||
| this.jcgjTotal = response.total | |||
| this.$refs.jcgjList.init(this.jcgjList) | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| getQmxxList() { | |||
| this.loadingQmxx = true | |||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||
| this.qmxxList = response.rows | |||
| this.totalQmxx = response.total | |||
| this.loadingQmxx = false | |||
| }) | |||
| }, | |||
| cancel() { | |||
| this.$emit('close') | |||
| }, | |||
| reset() { | |||
| this.form = {} | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.$modal.loading() | |||
| this.queryParamsJcgj.formId = row.id | |||
| this.queryParamsQmxx.formId = row.id | |||
| studyFormApply_info({ id: row.id }).then(response => { | |||
| this.form = response.data | |||
| this.getQmxxList() | |||
| this.getJjcgjList() | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| showApprove() { | |||
| this.resetApprove() | |||
| this.formApprove.id = this.form.id | |||
| this.openApprove = true | |||
| }, | |||
| resetApprove() { | |||
| this.formApprove = { | |||
| id: null, | |||
| qmyy: '已审阅', | |||
| remark: '', | |||
| qmrmm: '', | |||
| } | |||
| this.resetForm("formApprove") | |||
| }, | |||
| approve() { | |||
| this.$refs["formApprove"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_sy(this.formApprove).then(response => { | |||
| this.openApprove = false | |||
| this.$modal.closeLoading() | |||
| this.$emit('close') | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -1,261 +0,0 @@ | |||
| G<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="right-top"> | |||
| <el-button @click="cancel()">{{ $t('form.close') }}</el-button> | |||
| <el-button type="primary" v-if="form.bdzt === 5 && form.tbzt === 1" @click="openApprove = true">{{ | |||
| $t('page.business.study.studyFormApply.tb') }}</el-button> | |||
| </div> | |||
| </div> | |||
| <div class="edit-content "> | |||
| <div class="content"> | |||
| <div> | |||
| <el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormApply.dcqbjcgj') }} | |||
| </el-button> | |||
| <el-button type="primary" @click="dclcjcgj">{{ $t('page.business.study.studyFormApply.dclcjcgj') }} | |||
| </el-button> | |||
| <el-button type="primary" @click="dcbjjcgj">{{ $t('page.business.study.studyFormApply.dcbjjcgj') }} | |||
| </el-button> | |||
| <el-button type="primary" @click="dcxgjcgj">{{ $t('page.business.study.studyFormApply.dcxgjcgj') }} | |||
| </el-button> | |||
| <el-button type="primary" @click="dcbhsjgj">{{ $t('page.business.study.studyFormApply.dcbhsjgj') }} | |||
| </el-button> | |||
| </div> | |||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||
| </div> | |||
| <div class="pal"> | |||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||
| width="150px" /> | |||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||
| :show-overflow-tooltip="true" /> | |||
| </el-table> | |||
| </div> | |||
| <div class="pal"> | |||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||
| </div> | |||
| <div class="content-title"> | |||
| <div class="line"></div> | |||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||
| </div> | |||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/> | |||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||
| @pagination="getJjcgjList" /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <!-- 填报 --> | |||
| <el-dialog :title="$t('page.business.study.studyFormApply.cjjl')" :visible.sync="openApprove" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||
| <el-alert :title="$t('page.business.study.studyFormApply.ts')" :closable="false" type="success"> | |||
| </el-alert> | |||
| <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"> | |||
| <el-input type="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="approve">{{ $t('form.confirm') }}</el-button> | |||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormApply_tb, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||
| import { mapGetters } from 'vuex' | |||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||
| export default { | |||
| name: "Xq", | |||
| components: { JcgjList, TemplateTable }, | |||
| data() { | |||
| return { | |||
| openApprove: false, | |||
| formApprove: { | |||
| id: null, | |||
| qmyy: '创建记录', | |||
| remark: '', | |||
| qmrmm: '', | |||
| }, | |||
| rulesApprove: { | |||
| qmrmm: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| }, | |||
| qmxxList: [], | |||
| totalQmxx: 0, | |||
| loadingQmxx: true, | |||
| queryParamsQmxx: { | |||
| formId: null, | |||
| pageNum: 1, | |||
| pageSize: 10 | |||
| }, | |||
| open: false, | |||
| showIndex: 1, | |||
| form: {}, | |||
| rules: { | |||
| bdmc: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| templateId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| }, | |||
| jcgjTotal: 0, | |||
| jcgjList: [], | |||
| queryParamsJcgj: { | |||
| pageNum: 1, | |||
| formId: null, | |||
| pageSize: 10, | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'nickName' | |||
| ]), | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| dcqbjcgj() { | |||
| alert('todo') | |||
| }, | |||
| dclcjcgj() { | |||
| alert('todo') | |||
| }, | |||
| dcbjjcgj() { | |||
| alert('todo') | |||
| }, | |||
| dcxgjcgj() { | |||
| alert('todo') | |||
| }, | |||
| dcbhsjgj() { | |||
| alert('todo') | |||
| }, | |||
| getJjcgjList(val) { | |||
| this.$modal.loading() | |||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||
| this.jcgjList = response.rows | |||
| this.jcgjTotal = response.total | |||
| this.$refs.jcgjList.init(this.jcgjList) | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| getQmxxList() { | |||
| this.loadingQmxx = true | |||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||
| this.qmxxList = response.rows | |||
| this.totalQmxx = response.total | |||
| this.loadingQmxx = false | |||
| }) | |||
| }, | |||
| cancel() { | |||
| this.$emit('close') | |||
| }, | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| studyId: null, | |||
| bdbh: null, | |||
| bdmc: null, | |||
| bdsm: null, | |||
| templateId: null, | |||
| templateMc: null, | |||
| bdnr: null | |||
| } | |||
| this.resetForm("form") | |||
| }, | |||
| show(row) { | |||
| this.reset() | |||
| this.$modal.loading() | |||
| this.formApprove.id = row.id | |||
| this.queryParamsJcgj.formId = row.id | |||
| this.queryParamsQmxx.formId = row.id | |||
| studyFormApply_info({ id: row.id }).then(response => { | |||
| this.form = response.data | |||
| this.getQmxxList() | |||
| this.getJjcgjList() | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| approve() { | |||
| this.$refs["formApprove"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormApply_tb(this.formApprove).then(response => { | |||
| this.$emit('close') | |||
| this.openApprove = false | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,405 @@ | |||
| <template> | |||
| <div> | |||
| <div class="ytbd-list" v-show="!showDetail && !showEdit && !showAudit"> | |||
| <div class="ytbd-search"> | |||
| <el-form :model="searchForm" ref="searchForm" :inline="true" label-width="100px"> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdmc')" prop="name"> | |||
| <el-input v-model="searchForm.bdmc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdbh')" prop="sn"> | |||
| <el-input v-model="searchForm.bdbh" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.gsr')" prop="userId"> | |||
| <SelectDeptUser v-model="searchForm.userId" :name="searchForm.userMc" key="userId" | |||
| @change="userChange" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <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-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.xtmbmc')" prop="templateName"> | |||
| <el-input v-model="searchForm.templateMc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.cjsj')"> | |||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" | |||
| :start-placeholder="$t('page.business.form.startDate')" | |||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||
| style="width: 200px" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| </div> | |||
| <div class="ytbd-content"> | |||
| <el-row class="add-box"> | |||
| <el-col> | |||
| <el-button type="primary" icon="el-icon-plus" @click="showAdd()" | |||
| v-hasPermi="['business:drugFormPre:xz']">{{ | |||
| $t('page.business.study.studyFormPre.xzbd') }}</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| <el-table v-loading="loading" :data="list"> | |||
| <el-table-column :label="$t('page.business.form.bh')" prop="bdbh" /> | |||
| <el-table-column :label="$t('page.business.form.bdmc')" prop="bdmc" /> | |||
| <el-table-column :label="$t('page.business.form.xtmbmc')" prop="templateMc" /> | |||
| <el-table-column :label="$t('page.business.form.cjsj')" align="center" prop="createTime" width="140" /> | |||
| <el-table-column :label="$t('page.business.form.cjr')" align="center" prop="userMc" width="100" /> | |||
| <el-table-column :label="$t('page.business.form.status')" prop="status" width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.bdzt === 1">{{ $t('page.business.form.statusTbz') }}</span> | |||
| <span v-if="scope.row.bdzt === 3">{{ $t('page.business.form.statusYtj') }}</span> | |||
| <span v-if="scope.row.bdzt === 5">{{ $t('page.business.form.statusYtg') }}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200"> | |||
| <template slot-scope="scope"> | |||
| <!-- 详情 --> | |||
| <el-button type="text" v-hasPermi="['business:drugFormPre:xq']" @click="detail(scope.row)">{{ | |||
| $t('form.detail') }}</el-button> | |||
| <!-- 编辑 --> | |||
| <el-button type="text" v-hasPermi="['business:drugFormPre:bj']" @click="edit(scope.row)" | |||
| v-if="scope.row.bdzt === 1&&id==scope.row.userId">{{ | |||
| $t('form.edit') }}</el-button> | |||
| <template v-if="scope.row.fzrsh == 10"> | |||
| <template v-if="scope.row.fzrshzt == 5"> | |||
| <!-- 负责人审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:drugFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3 && id == leader">{{ | |||
| $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| <template> | |||
| <!-- 有权限审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:drugFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3">{{ $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| </template> | |||
| <template v-else> | |||
| <!-- 有权限审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:drugFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3">{{ $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize" | |||
| @pagination="getList" /> | |||
| </div> | |||
| </div> | |||
| <!-- 编辑 --> | |||
| <Bj v-show="showEdit" key="Bj" ref="Bj" @close="bjClose" /> | |||
| <!-- 详情 --> | |||
| <Xq v-show="showDetail" key="Xq" ref="Xq" @close="xqClose" /> | |||
| <!-- 审核 --> | |||
| <Sh v-show="showAudit" key="Sh" ref="Sh" @close="shClose" /> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.xjbd')" :visible.sync="open" width="500px" append-to-body | |||
| :close-on-click-modal="false"> | |||
| <el-form ref="form" label-width="120px"> | |||
| <el-row> | |||
| <el-col :span="24" style="text-align: center; margin-top: 50px;"> | |||
| <el-button type="primary" style="width: 80%; height: 40px;" @click="add" plain | |||
| icon="el-icon-circle-plus">创建新表单</el-button> | |||
| </el-col> | |||
| <el-col :span="24" style="text-align: center; margin: 50px 0px;"> | |||
| <el-button type="primary" style="width: 80%;height: 40px;" @click="copy" plain | |||
| icon="el-icon-document-copy">复制已有表单</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| </el-dialog> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.fzbdxz')" :visible.sync="openXz" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="formXz" :model="formXz" :rules="rulesXz" label-width="150px"> | |||
| <el-row> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormPre.sssyfsy')" prop="studyId"> | |||
| <el-select v-model="formXz.studyId" :placeholder="$t('form.placeholderSelect')" @change="studyChange"> | |||
| <el-option :label="item.sn" :value="item.id" v-for="(item, index) in studyList" :key="index" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormPre.fzbd')" prop="formPreId"> | |||
| <el-select v-model="formXz.formPreId" :placeholder="$t('form.placeholderSelect')"> | |||
| <el-option :label="item.bdbh" :value="item.id" v-for="(item, index) in formPreList" :key="index" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="24"> | |||
| <el-form-item> | |||
| <el-button type="primary" @click="previewFzbd" :disabled="!(formXz.formPreId)">预览</el-button> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| <div slot="footer" class="dialog-footer"> | |||
| <el-button type="primary" @click="saveCopy">{{ $t('page.business.study.studyFormPre.fzbj') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.yulan')" :visible.sync="openPreview" width="80%" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <TemplateTable ref="templateTable" :sn="formPreview.templateSn" fillType="preFill" /> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormPre_list, studyFormPre_info } from '@/api/business/study/studyFormPre' | |||
| import { public_studyList, public_studyFormPreList } from '@/api/business/public/public' | |||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||
| import Bj from "@/views/business/study/comp/ytbd/Bj"; | |||
| import Xq from "@/views/business/study/comp/ytbd/Xq"; | |||
| import Sh from "@/views/business/study/comp/ytbd/Sh"; | |||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; | |||
| import moment from "moment"; | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: 'YtbdList', | |||
| props: { | |||
| study: { | |||
| type: Object, | |||
| default: () => { | |||
| return {} | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'id' | |||
| ]), | |||
| }, | |||
| watch: { | |||
| study: { | |||
| handler(newVal) { | |||
| this.searchForm.studySn = newVal.sn | |||
| this.searchForm.studyMc = newVal.name | |||
| this.searchForm.studyId = newVal.studyId | |||
| this.searchForm.studySubjectId = newVal.studySubjectId | |||
| this.leader = newVal.leader | |||
| this.search() | |||
| }, | |||
| immediate: true, | |||
| deep: true | |||
| } | |||
| }, | |||
| components: { Bj, Xq, Sh, SelectDeptUser, TemplateTable }, | |||
| data() { | |||
| return { | |||
| formPreview: { | |||
| templateSn: null | |||
| }, | |||
| openPreview: false, | |||
| openXz: false, | |||
| open: false, | |||
| leader: null, | |||
| showAudit: false, | |||
| showEdit: false, | |||
| showDetail: false, | |||
| daterange: [], | |||
| searchForm: { | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| studyId: '', | |||
| studySn: '', | |||
| studyMc: '', | |||
| studySubjectId: '', | |||
| bdbh: '', | |||
| bdmc: '', | |||
| userId: '', | |||
| userMc: '', | |||
| templateMc: '', | |||
| startDate: '', | |||
| endDate: '', | |||
| }, | |||
| loading: false, | |||
| total: 0, | |||
| list: [], | |||
| studyList: [], | |||
| formPreList: [], | |||
| formXz: { | |||
| studyId: null, | |||
| formPreId: null, | |||
| }, | |||
| rulesXz: { | |||
| studyId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| formPreId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| }, | |||
| } | |||
| }, | |||
| created() { }, | |||
| methods: { | |||
| copy() { | |||
| this.$modal.loading() | |||
| public_studyList().then(response => { | |||
| this.studyList = response.data | |||
| this.formXz.studyId = null | |||
| this.formXz.formPreId = null | |||
| this.open = false | |||
| this.openXz = true | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| previewFzbd() { | |||
| let that = this | |||
| let _index = _.findIndex(this.formPreList, function (item) { | |||
| return item.id = that.formXz.formPreId | |||
| }) | |||
| this.formPreview.templateSn = that.formPreList[_index].templateSn | |||
| this.openPreview = true | |||
| }, | |||
| saveCopy() { | |||
| let that = this | |||
| this.$refs["formXz"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormPre_info({ id: that.formXz.formPreId }).then(response => { | |||
| let tmp = response.data | |||
| this.$modal.closeLoading() | |||
| this.openXz = false | |||
| this.openPreview = false | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit({ templateId: tmp.templateId,templateMc: tmp.templateMc,templateSn:tmp.templateSn ,bdmc: tmp.bdmc, bdnr: tmp.bdnr }) | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| studyChange() { | |||
| this.$modal.loading() | |||
| public_studyFormPreList({ studyId: this.formXz.studyId }).then(response => { | |||
| this.formXz.formPre = null | |||
| this.formPreList = response.data | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| showAdd() { | |||
| this.open = true | |||
| }, | |||
| userChange(val) { | |||
| this.searchForm.userId = val.id | |||
| this.searchForm.userMc = val.name | |||
| this.search() | |||
| }, | |||
| search() { | |||
| this.searchForm.pageNum = 1 | |||
| this.getList() | |||
| }, | |||
| reset() { | |||
| this.resetForm("searchForm") | |||
| this.handleQuery() | |||
| }, | |||
| getList() { | |||
| if (this.daterange != null && this.daterange.length > 0) { | |||
| this.searchForm.startDate = this.daterange[0] | |||
| this.searchForm.endDate = moment().add(this.daterange[1], 'days').format('YYYY-MM-DD'); | |||
| } else { | |||
| this.searchForm.startDate = '' | |||
| this.searchForm.endDate = '' | |||
| } | |||
| this.loading = true | |||
| studyFormPre_list(this.searchForm).then(response => { | |||
| this.list = response.rows | |||
| this.total = response.total | |||
| this.loading = false | |||
| }) | |||
| }, | |||
| add() { | |||
| this.open = false | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit({ studySn:this.searchForm.studySn, studyMc:this.searchForm.studyMc,studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }) | |||
| }, | |||
| edit(row) { | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit(row) | |||
| }, | |||
| bjClose() { | |||
| this.showEdit = false | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.search() | |||
| }, | |||
| xqClose() { | |||
| this.showDetail = false | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.search() | |||
| }, | |||
| shClose() { | |||
| this.showAudit = false | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.search() | |||
| }, | |||
| detail(row) { | |||
| this.showDetail = true | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.$refs.Xq.show(row) | |||
| }, | |||
| audit(row) { | |||
| this.showAudit = true | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.$refs.Sh.show(row) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .ytbd-list { | |||
| .ytbd-search { | |||
| background: #fff; | |||
| padding: 20px; | |||
| margin-bottom: 10px; | |||
| .right-btn { | |||
| text-align: right | |||
| } | |||
| } | |||
| .ytbd-content { | |||
| padding: 20px; | |||
| background: #fff; | |||
| .add-box { | |||
| margin-bottom: 10px; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,373 @@ | |||
| <template> | |||
| <div> | |||
| <div class="tbbd-list" v-show="!showDetail && !showEdit && !showAudit && !showFh"> | |||
| <div class="tbbd-search"> | |||
| <el-form :model="searchForm" ref="searchForm" :inline="true" label-width="100px"> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdmc')" prop="name"> | |||
| <el-input v-model="searchForm.bdmc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdbh')" prop="sn"> | |||
| <el-input v-model="searchForm.bdbh" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.gsr')" prop="userId"> | |||
| <SelectDeptUser v-model="searchForm.userId" style="width: 200px" :name="searchForm.userMc" key="userId" | |||
| @change="userChange" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item> | |||
| <div style="margin-left: 100px;"> | |||
| <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> | |||
| </div> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.xtmbmc')" prop="templateName"> | |||
| <el-input v-model="searchForm.templateMc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.cjsj')"> | |||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" | |||
| :start-placeholder="$t('page.business.form.startDate')" | |||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||
| style="width: 200px" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.tjsj')"> | |||
| <el-date-picker v-model="daterangetj" clearable type="daterange" range-separator="-" | |||
| :start-placeholder="$t('page.business.form.startDate')" | |||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||
| style="width: 200px" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.study.studyFormFill.sfbl')"> | |||
| <el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" clearable | |||
| @change="search"> | |||
| <el-option :label="$t('page.business.study.studyFormFill.yes')" :value="10" /> | |||
| <el-option :label="$t('page.business.study.studyFormFill.no')" :value="1" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| </div> | |||
| <div class="tbbd-content"> | |||
| <el-row class="add-box"> | |||
| <el-col> | |||
| <el-button type="primary" icon="el-icon-plus" @click="add()" v-hasPermi="['business:nonTrialFormFill:xz']">{{ | |||
| $t('page.business.study.studyFormFill.xzbd') }}</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| <el-table v-loading="loading" :data="list"> | |||
| <el-table-column :label="$t('page.business.form.bh')" prop="bdbh" /> | |||
| <el-table-column :label="$t('page.business.form.bdmc')" prop="bdmc" /> | |||
| <el-table-column :label="$t('page.business.form.xtmbmc')" prop="templateMc" /> | |||
| <el-table-column :label="$t('page.business.form.cjsj')" align="center" prop="createTime" width="140" /> | |||
| <el-table-column :label="$t('page.business.form.gsr')" align="center" prop="userMc" width="100" /> | |||
| <el-table-column :label="$t('page.business.form.status')" prop="status" align="center" width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.bdzt === 1">{{ $t('page.business.study.studyFormFill.tbz') }}</span> | |||
| <span v-if="scope.row.bdzt === 3">{{ $t('page.business.study.studyFormFill.ytj') }}</span> | |||
| <span v-if="scope.row.bdzt === 5">{{ $t('page.business.study.studyFormFill.ywc') }}</span> | |||
| <span v-if="scope.row.bdzt === 7">{{ $t('page.business.study.studyFormFill.ywcfh') }}</span> | |||
| <span v-if="scope.row.bdzt === 9">{{ $t('page.business.study.studyFormFill.dfz') }}</span> | |||
| <span v-if="scope.row.bdzt === 11">{{ $t('page.business.study.studyFormFill.yfz') }}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('page.business.study.studyFormFill.sfbl')" align="center" prop="status" | |||
| width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.sfbl === 10">{{ $t('page.business.study.studyFormFill.yes') }}</span> | |||
| <span v-if="scope.row.sfbl === 1">{{ $t('page.business.study.studyFormFill.no') }}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('page.business.form.tjsj')" align="center" prop="tjsj" width="140" /> | |||
| <el-table-column :label="$t('form.operate')" align="left" fixed="right" width="200"> | |||
| <template slot-scope="scope"> | |||
| <!-- 表单状态:1:填报中;3:已提交;5:已完成(经复核);7:已完成;9:待废止;11:已废止 --> | |||
| <!-- 详情 --> | |||
| <el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:nonTrialFormFill:xq']">{{ | |||
| $t('form.detail') }}</el-button> | |||
| <!-- 编辑 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 1 || scope.row.bdzt === 5 || scope.row.bdzt === 7" | |||
| @click="edit(scope.row)" v-hasPermi="['business:nonTrialFormFill:bj']">{{ | |||
| $t('form.edit') }}</el-button> | |||
| <!-- 复核 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 3" @click="fh(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:fh']">{{ | |||
| $t('page.business.study.studyFormFill.fh') }}</el-button> | |||
| <!-- 加签 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 1" @click="jq(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:jq']">{{ | |||
| $t('page.business.study.studyFormFill.jq') }}</el-button> | |||
| <!-- 更换归属人 --> | |||
| <el-button type="text" | |||
| v-if="scope.row.bdzt === 1 || scope.row.bdzt === 3 || scope.row.bdzt === 5 || scope.row.bdzt === 7" | |||
| @click="ghgsr(scope.row)" v-hasPermi="['business:nonTrialFormFill:ghgsr']">{{ | |||
| $t('page.business.study.studyFormFill.ghgsr') }}</el-button> | |||
| <!-- 审阅 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 5 || scope.row.bdzt === 7" @click="sy(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:sy']">{{ | |||
| $t('page.business.study.studyFormFill.sy') }}</el-button> | |||
| <!-- 废止 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 1" @click="fz(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:fz']">{{ | |||
| $t('page.business.study.studyFormFill.fz') }}</el-button> | |||
| <!-- 确认废止 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 9" @click="qrfz(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:qrfz']">{{ | |||
| $t('page.business.study.studyFormFill.qrfz') }}</el-button> | |||
| <!-- 观察 --> | |||
| <el-button type="text" v-if="scope.row.bdzt === 1" @click="gc(scope.row)" | |||
| v-hasPermi="['business:nonTrialFormFill:gc']">{{ | |||
| $t('page.business.study.studyFormFill.gc') }}</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" /> | |||
| </div> | |||
| </div> | |||
| <!-- 编辑 --> | |||
| <Bj v-show="showEdit" key="Bj" ref="Bj" @close="bjClose" /> | |||
| <!-- 详情 --> | |||
| <Xq v-show="showDetail" key="Xq" ref="Xq" @close="xqClose" /> | |||
| <!-- 审阅 --> | |||
| <Sy v-show="showAudit" key="Sy" ref="Sy" @close="syClose" /> | |||
| <!-- 复核 --> | |||
| <Fh v-show="showFh" key="Fh" ref="Fh" @close="fhClose" /> | |||
| <!-- 废止 --> | |||
| <Fz key="Fz" ref="Fz" @callback="search" /> | |||
| <!-- 确认废止 --> | |||
| <Qrfz key="Qrfz" ref="Qrfz" @callback="search" /> | |||
| <!-- 加签 --> | |||
| <Jq key="Jq" ref="Jq" @callback="search" /> | |||
| <!-- 观察 --> | |||
| <Gc key="Gc" ref="Gc" @callback="search" /> | |||
| <!-- 更换归属人 --> | |||
| <Ghgsr key="Ghgsr" ref="Ghgsr" @callback="search" /> | |||
| <SelectDeptUserDialog ref="selectDeptUserDialog" @change="ghgsrChange" /> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormFill_list } from '@/api/business/study/studyFormFill' | |||
| import Bj from "@/views/business/study/comp/tbbd/Bj"; | |||
| import Xq from "@/views/business/study/comp/tbbd/Xq"; | |||
| import Sy from "@/views/business/study/comp/tbbd/Sy"; | |||
| import Fz from "@/views/business/study/comp/tbbd/Fz"; | |||
| import Fh from "@/views/business/study/comp/tbbd/Fh"; | |||
| import Qrfz from "@/views/business/study/comp/tbbd/Qrfz"; | |||
| import Jq from "@/views/business/study/comp/tbbd/Jq"; | |||
| import Ghgsr from "@/views/business/study/comp/tbbd/Ghgsr"; | |||
| import Gc from "@/views/business/study/comp/tbbd/Gc"; | |||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; | |||
| import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDialog'; | |||
| import { mapGetters } from 'vuex' | |||
| import moment from "moment"; | |||
| export default { | |||
| name: 'YtbdList', | |||
| props: { | |||
| study: { | |||
| type: Object, | |||
| default: () => { | |||
| return {} | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'id' | |||
| ]), | |||
| }, | |||
| watch: { | |||
| study: { | |||
| handler(newVal) { | |||
| this.searchForm.studySn = newVal.sn | |||
| this.searchForm.studyMc = newVal.name | |||
| this.searchForm.studyId = newVal.studyId | |||
| this.searchForm.studySubjectId = newVal.studySubjectId | |||
| this.leader = newVal.leader | |||
| this.search() | |||
| }, | |||
| immediate: true, | |||
| deep: true | |||
| } | |||
| }, | |||
| components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog }, | |||
| data() { | |||
| return { | |||
| leader: null, | |||
| showFh: false, | |||
| showAudit: false, | |||
| showEdit: false, | |||
| showDetail: false, | |||
| daterangetj: [], | |||
| daterange: [], | |||
| searchForm: { | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| studyId: '', | |||
| studySn: '', | |||
| studyMc: '', | |||
| studySubjectId: '', | |||
| bdbh: '', | |||
| bdmc: '', | |||
| userId: '', | |||
| userMc: '', | |||
| templateMc: '', | |||
| cjsjjs: '', | |||
| cjsjks: '', | |||
| tjsjjs: '', | |||
| tjsjks: '', | |||
| }, | |||
| loading: false, | |||
| total: 0, | |||
| list: [], | |||
| currentRow: null | |||
| } | |||
| }, | |||
| created() { }, | |||
| methods: { | |||
| ghgsr(row) { | |||
| this.currentRow = row | |||
| this.$refs.selectDeptUserDialog.show(null, null) | |||
| }, | |||
| ghgsrChange(val) { | |||
| this.$refs.Ghgsr.show({ id: this.currentRow.id, userId: val.id, userMc: val.name }) | |||
| }, | |||
| jq(row) { | |||
| this.$refs.Jq.show(row) | |||
| }, | |||
| qrfz(row) { | |||
| this.$refs.Qrfz.show(row) | |||
| }, | |||
| gc(row) { | |||
| this.$refs.Gc.show(row) | |||
| }, | |||
| fz(row) { | |||
| this.$refs.Fz.show(row) | |||
| }, | |||
| userChange(val) { | |||
| this.searchForm.userId = val.id | |||
| this.searchForm.userMc = val.name | |||
| this.search() | |||
| }, | |||
| search() { | |||
| this.searchForm.pageNum = 1 | |||
| this.getList() | |||
| }, | |||
| reset() { | |||
| this.resetForm("searchForm") | |||
| this.handleQuery() | |||
| }, | |||
| getList() { | |||
| if (this.daterange != null && this.daterange.length > 0) { | |||
| this.searchForm.cjsjks = this.daterange[0] | |||
| this.searchForm.cjsjjs = moment().add(this.daterange[1], 'days').format('YYYY-MM-DD'); | |||
| } else { | |||
| this.searchForm.cjsjks = '' | |||
| this.searchForm.cjsjjs = '' | |||
| } | |||
| if (this.daterangetj != null && this.daterangetj.length > 0) { | |||
| this.searchForm.tjsjks = this.daterangetj[0] | |||
| this.searchForm.tjsjjs = moment().add(this.daterangetj[1], 'days').format('YYYY-MM-DD'); | |||
| } else { | |||
| this.searchForm.tjsjks = '' | |||
| this.searchForm.tjsjjs = '' | |||
| } | |||
| this.loading = true | |||
| studyFormFill_list(this.searchForm).then(response => { | |||
| this.list = response.rows | |||
| this.total = response.total | |||
| this.loading = false | |||
| }) | |||
| }, | |||
| add() { | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit({ studySn:this.searchForm.studySn, studyMc:this.searchForm.studyMc,studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }) | |||
| }, | |||
| edit(row) { | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit(row) | |||
| }, | |||
| bjClose() { | |||
| this.showEdit = false | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.search() | |||
| }, | |||
| xqClose() { | |||
| this.showDetail = false | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.search() | |||
| }, | |||
| syClose() { | |||
| this.showAudit = false | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.search() | |||
| }, | |||
| fhClose() { | |||
| this.showFh = false | |||
| this.$emit('showDetail', this.showFh) | |||
| this.search() | |||
| }, | |||
| detail(row) { | |||
| this.showDetail = true | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.$refs.Xq.show(row) | |||
| }, | |||
| sy(row) { | |||
| this.showAudit = true | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.$refs.Sy.show(row) | |||
| }, | |||
| fh(row) { | |||
| this.showFh = true | |||
| this.$emit('showDetail', this.showFh) | |||
| this.$refs.Fh.show(row) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .tbbd-list { | |||
| .tbbd-search { | |||
| background: #fff; | |||
| padding: 20px; | |||
| margin-bottom: 10px; | |||
| .right-btn { | |||
| text-align: right | |||
| } | |||
| } | |||
| .tbbd-content { | |||
| padding: 20px; | |||
| background: #fff; | |||
| .add-box { | |||
| margin-bottom: 10px; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,405 @@ | |||
| <template> | |||
| <div> | |||
| <div class="ytbd-list" v-show="!showDetail && !showEdit && !showAudit"> | |||
| <div class="ytbd-search"> | |||
| <el-form :model="searchForm" ref="searchForm" :inline="true" label-width="100px"> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdmc')" prop="name"> | |||
| <el-input v-model="searchForm.bdmc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.bdbh')" prop="sn"> | |||
| <el-input v-model="searchForm.bdbh" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.gsr')" prop="userId"> | |||
| <SelectDeptUser v-model="searchForm.userId" :name="searchForm.userMc" key="userId" | |||
| @change="userChange" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <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-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| <el-row> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.xtmbmc')" prop="templateName"> | |||
| <el-input v-model="searchForm.templateMc" :placeholder="$t('form.placeholderInput')" clearable | |||
| style="width: 200px" @keyup.enter.native="search" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="6"> | |||
| <el-form-item :label="$t('page.business.form.cjsj')"> | |||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" | |||
| :start-placeholder="$t('page.business.form.startDate')" | |||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||
| style="width: 200px" /> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| </div> | |||
| <div class="ytbd-content"> | |||
| <el-row class="add-box"> | |||
| <el-col> | |||
| <el-button type="primary" icon="el-icon-plus" @click="showAdd()" | |||
| v-hasPermi="['business:nonTrialFormPre:xz']">{{ | |||
| $t('page.business.study.studyFormPre.xzbd') }}</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| <el-table v-loading="loading" :data="list"> | |||
| <el-table-column :label="$t('page.business.form.bh')" prop="bdbh" /> | |||
| <el-table-column :label="$t('page.business.form.bdmc')" prop="bdmc" /> | |||
| <el-table-column :label="$t('page.business.form.xtmbmc')" prop="templateMc" /> | |||
| <el-table-column :label="$t('page.business.form.cjsj')" align="center" prop="createTime" width="140" /> | |||
| <el-table-column :label="$t('page.business.form.cjr')" align="center" prop="userMc" width="100" /> | |||
| <el-table-column :label="$t('page.business.form.status')" prop="status" width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.bdzt === 1">{{ $t('page.business.form.statusTbz') }}</span> | |||
| <span v-if="scope.row.bdzt === 3">{{ $t('page.business.form.statusYtj') }}</span> | |||
| <span v-if="scope.row.bdzt === 5">{{ $t('page.business.form.statusYtg') }}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200"> | |||
| <template slot-scope="scope"> | |||
| <!-- 详情 --> | |||
| <el-button type="text" v-hasPermi="['business:nonTrialFormPre:xq']" @click="detail(scope.row)">{{ | |||
| $t('form.detail') }}</el-button> | |||
| <!-- 编辑 --> | |||
| <el-button type="text" v-hasPermi="['business:nonTrialFormPre:bj']" @click="edit(scope.row)" | |||
| v-if="scope.row.bdzt === 1&&id==scope.row.userId">{{ | |||
| $t('form.edit') }}</el-button> | |||
| <template v-if="scope.row.fzrsh == 10"> | |||
| <template v-if="scope.row.fzrshzt == 5"> | |||
| <!-- 负责人审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:nonTrialFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3 && id == leader">{{ | |||
| $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| <template> | |||
| <!-- 有权限审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:nonTrialFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3">{{ $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| </template> | |||
| <template v-else> | |||
| <!-- 有权限审核 --> | |||
| <el-button type="text" @click="audit(scope.row)" v-hasPermi="['business:nonTrialFormPre:sh']" | |||
| v-if="scope.row.bdzt === 3">{{ $t('page.business.form.audit') }}</el-button> | |||
| </template> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize" | |||
| @pagination="getList" /> | |||
| </div> | |||
| </div> | |||
| <!-- 编辑 --> | |||
| <Bj v-show="showEdit" key="Bj" ref="Bj" @close="bjClose" /> | |||
| <!-- 详情 --> | |||
| <Xq v-show="showDetail" key="Xq" ref="Xq" @close="xqClose" /> | |||
| <!-- 审核 --> | |||
| <Sh v-show="showAudit" key="Sh" ref="Sh" @close="shClose" /> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.xjbd')" :visible.sync="open" width="500px" append-to-body | |||
| :close-on-click-modal="false"> | |||
| <el-form ref="form" label-width="120px"> | |||
| <el-row> | |||
| <el-col :span="24" style="text-align: center; margin-top: 50px;"> | |||
| <el-button type="primary" style="width: 80%; height: 40px;" @click="add" plain | |||
| icon="el-icon-circle-plus">创建新表单</el-button> | |||
| </el-col> | |||
| <el-col :span="24" style="text-align: center; margin: 50px 0px;"> | |||
| <el-button type="primary" style="width: 80%;height: 40px;" @click="copy" plain | |||
| icon="el-icon-document-copy">复制已有表单</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| </el-dialog> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.fzbdxz')" :visible.sync="openXz" width="500px" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <el-form ref="formXz" :model="formXz" :rules="rulesXz" label-width="150px"> | |||
| <el-row> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormPre.sssyfsy')" prop="studyId"> | |||
| <el-select v-model="formXz.studyId" :placeholder="$t('form.placeholderSelect')" @change="studyChange"> | |||
| <el-option :label="item.sn" :value="item.id" v-for="(item, index) in studyList" :key="index" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="24"> | |||
| <el-form-item :label="$t('page.business.study.studyFormPre.fzbd')" prop="formPreId"> | |||
| <el-select v-model="formXz.formPreId" :placeholder="$t('form.placeholderSelect')"> | |||
| <el-option :label="item.bdbh" :value="item.id" v-for="(item, index) in formPreList" :key="index" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| </el-col> | |||
| <el-col :span="24"> | |||
| <el-form-item> | |||
| <el-button type="primary" @click="previewFzbd" :disabled="!(formXz.formPreId)">预览</el-button> | |||
| </el-form-item> | |||
| </el-col> | |||
| </el-row> | |||
| </el-form> | |||
| <div slot="footer" class="dialog-footer"> | |||
| <el-button type="primary" @click="saveCopy">{{ $t('page.business.study.studyFormPre.fzbj') }}</el-button> | |||
| </div> | |||
| </el-dialog> | |||
| <el-dialog :title="$t('page.business.study.studyFormPre.yulan')" :visible.sync="openPreview" width="80%" | |||
| append-to-body :close-on-click-modal="false"> | |||
| <TemplateTable ref="templateTable" :sn="formPreview.templateSn" fillType="preFill" /> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { studyFormPre_list, studyFormPre_info } from '@/api/business/study/studyFormPre' | |||
| import { public_studyList, public_studyFormPreList } from '@/api/business/public/public' | |||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||
| import Bj from "@/views/business/study/comp/ytbd/Bj"; | |||
| import Xq from "@/views/business/study/comp/ytbd/Xq"; | |||
| import Sh from "@/views/business/study/comp/ytbd/Sh"; | |||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; | |||
| import moment from "moment"; | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| name: 'YtbdList', | |||
| props: { | |||
| study: { | |||
| type: Object, | |||
| default: () => { | |||
| return {} | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters([ | |||
| 'id' | |||
| ]), | |||
| }, | |||
| watch: { | |||
| study: { | |||
| handler(newVal) { | |||
| this.searchForm.studySn = newVal.sn | |||
| this.searchForm.studyMc = newVal.name | |||
| this.searchForm.studyId = newVal.studyId | |||
| this.searchForm.studySubjectId = newVal.studySubjectId | |||
| this.leader = newVal.leader | |||
| this.search() | |||
| }, | |||
| immediate: true, | |||
| deep: true | |||
| } | |||
| }, | |||
| components: { Bj, Xq, Sh, SelectDeptUser, TemplateTable }, | |||
| data() { | |||
| return { | |||
| formPreview: { | |||
| templateSn: null | |||
| }, | |||
| openPreview: false, | |||
| openXz: false, | |||
| open: false, | |||
| leader: null, | |||
| showAudit: false, | |||
| showEdit: false, | |||
| showDetail: false, | |||
| daterange: [], | |||
| searchForm: { | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| studyId: '', | |||
| studySn: '', | |||
| studyMc: '', | |||
| studySubjectId: '', | |||
| bdbh: '', | |||
| bdmc: '', | |||
| userId: '', | |||
| userMc: '', | |||
| templateMc: '', | |||
| startDate: '', | |||
| endDate: '', | |||
| }, | |||
| loading: false, | |||
| total: 0, | |||
| list: [], | |||
| studyList: [], | |||
| formPreList: [], | |||
| formXz: { | |||
| studyId: null, | |||
| formPreId: null, | |||
| }, | |||
| rulesXz: { | |||
| studyId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }], | |||
| formPreId: [{ | |||
| required: true, | |||
| message: ' ', | |||
| trigger: 'blur' | |||
| }] | |||
| }, | |||
| } | |||
| }, | |||
| created() { }, | |||
| methods: { | |||
| copy() { | |||
| this.$modal.loading() | |||
| public_studyList().then(response => { | |||
| this.studyList = response.data | |||
| this.formXz.studyId = null | |||
| this.formXz.formPreId = null | |||
| this.open = false | |||
| this.openXz = true | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| previewFzbd() { | |||
| let that = this | |||
| let _index = _.findIndex(this.formPreList, function (item) { | |||
| return item.id = that.formXz.formPreId | |||
| }) | |||
| this.formPreview.templateSn = that.formPreList[_index].templateSn | |||
| this.openPreview = true | |||
| }, | |||
| saveCopy() { | |||
| let that = this | |||
| this.$refs["formXz"].validate(valid => { | |||
| if (valid) { | |||
| this.$modal.loading() | |||
| studyFormPre_info({ id: that.formXz.formPreId }).then(response => { | |||
| let tmp = response.data | |||
| this.$modal.closeLoading() | |||
| this.openXz = false | |||
| this.openPreview = false | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit({ templateId: tmp.templateId,templateMc: tmp.templateMc,templateSn:tmp.templateSn ,bdmc: tmp.bdmc, bdnr: tmp.bdnr }) | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| studyChange() { | |||
| this.$modal.loading() | |||
| public_studyFormPreList({ studyId: this.formXz.studyId }).then(response => { | |||
| this.formXz.formPre = null | |||
| this.formPreList = response.data | |||
| this.$modal.closeLoading() | |||
| }).finally(() => { | |||
| this.$modal.closeLoading() | |||
| }) | |||
| }, | |||
| showAdd() { | |||
| this.open = true | |||
| }, | |||
| userChange(val) { | |||
| this.searchForm.userId = val.id | |||
| this.searchForm.userMc = val.name | |||
| this.search() | |||
| }, | |||
| search() { | |||
| this.searchForm.pageNum = 1 | |||
| this.getList() | |||
| }, | |||
| reset() { | |||
| this.resetForm("searchForm") | |||
| this.handleQuery() | |||
| }, | |||
| getList() { | |||
| if (this.daterange != null && this.daterange.length > 0) { | |||
| this.searchForm.startDate = this.daterange[0] | |||
| this.searchForm.endDate = moment().add(this.daterange[1], 'days').format('YYYY-MM-DD'); | |||
| } else { | |||
| this.searchForm.startDate = '' | |||
| this.searchForm.endDate = '' | |||
| } | |||
| this.loading = true | |||
| studyFormPre_list(this.searchForm).then(response => { | |||
| this.list = response.rows | |||
| this.total = response.total | |||
| this.loading = false | |||
| }) | |||
| }, | |||
| add() { | |||
| this.open = false | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit({ studySn:this.searchForm.studySn, studyMc:this.searchForm.studyMc,studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }) | |||
| }, | |||
| edit(row) { | |||
| this.showEdit = true | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.$refs.Bj.edit(row) | |||
| }, | |||
| bjClose() { | |||
| this.showEdit = false | |||
| this.$emit('showDetail', this.showEdit) | |||
| this.search() | |||
| }, | |||
| xqClose() { | |||
| this.showDetail = false | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.search() | |||
| }, | |||
| shClose() { | |||
| this.showAudit = false | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.search() | |||
| }, | |||
| detail(row) { | |||
| this.showDetail = true | |||
| this.$emit('showDetail', this.showDetail) | |||
| this.$refs.Xq.show(row) | |||
| }, | |||
| audit(row) { | |||
| this.showAudit = true | |||
| this.$emit('showDetail', this.showAudit) | |||
| this.$refs.Sh.show(row) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .ytbd-list { | |||
| .ytbd-search { | |||
| background: #fff; | |||
| padding: 20px; | |||
| margin-bottom: 10px; | |||
| .right-btn { | |||
| text-align: right | |||
| } | |||
| } | |||
| .ytbd-content { | |||
| padding: 20px; | |||
| background: #fff; | |||
| .add-box { | |||
| margin-bottom: 10px; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @ -1,78 +0,0 @@ | |||
| <template> | |||
| <div class="study-tbbd"> | |||
| <div class="tbbd-left" v-show="!showDetail"> | |||
| <sbject :study="study" @change="changeSubject" /> | |||
| </div> | |||
| <div class="tbbd-right" v-if="studyInfo.studySubjectId!=''"> | |||
| <sqbdList :study="studyInfo" @showDetail="showDetailCallback"/> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import sbject from './suject.vue' | |||
| import sqbdList from './sqbdList.vue' | |||
| export default { | |||
| name: 'StudySqbd', | |||
| props: { | |||
| study:{ | |||
| type:Object, | |||
| default:()=>{ | |||
| return {} | |||
| } | |||
| } | |||
| }, | |||
| watch:{ | |||
| study: { | |||
| immediate: true, | |||
| handler(v) { | |||
| this.studyInfo = { | |||
| studyId:v.id, | |||
| studyLeader:v.leader, | |||
| studySubjectId:'' | |||
| } | |||
| } | |||
| }, | |||
| }, | |||
| components: {sbject,sqbdList}, | |||
| computed: {}, | |||
| filters: {}, | |||
| data() { | |||
| return { | |||
| showDetail:false, | |||
| studyInfo:{ | |||
| studyId:this.study.id, | |||
| studyLeader:this.study.leader, | |||
| studySubjectId:'' | |||
| } | |||
| } | |||
| }, | |||
| created() {}, | |||
| methods: { | |||
| changeSubject(val){ | |||
| this.studyInfo.studySubjectId = val | |||
| }, | |||
| showDetailCallback(val){ | |||
| this.showDetail=val | |||
| this.$emit('showDetail',val) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| .study-tbbd { | |||
| display: flex; | |||
| flex-direction: row; | |||
| .tbbd-left { | |||
| background: #fff; | |||
| padding: 20px; | |||
| margin-right: 10px; | |||
| flex-shrink: 0; | |||
| width: 350px; | |||
| } | |||
| .tbbd-right{ | |||
| flex-grow: 1; | |||
| overflow: hidden; | |||
| } | |||
| } | |||
| </style> | |||