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

502 lines
17 KiB

<template>
<div>
<div class="edit-container">
<div class="edit-top">
<div class="left-top">
<img src="@/assets/images/back.png" @click="cancel()" />
<div class="left-title"></div>
</div>
<div class="center-top">
<div>
<div :class="showIndex == 1 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'">
<div class="el-step__icon-inner">1</div>
</div>
{{ $t('page.business.study.studyFormFill.jcsz') }}
</div>
<div class="line"></div>
<div>
<div :class="showIndex == 2 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'">
<div class="el-step__icon-inner">2</div>
</div>
{{ $t('page.business.study.studyFormFill.bdtb') }}
</div>
</div>
<div class="right-top">
<el-button @click="cancel()">{{ $t('form.cancel') }}</el-button>
<template v-if="showIndex == 1">
<el-button @click="save">{{ $t('page.business.study.studyFormFill.zc') }}</el-button>
<el-button type="primary" @click="next">{{ $t('page.business.study.studyFormFill.next') }}</el-button>
</template>
<template v-else>
<el-button @click="saveNext">{{ $t('page.business.study.studyFormFill.save') }}</el-button>
<el-button type="primary" @click="showApprove">{{ $t('page.business.study.studyFormFill.submit')
}}</el-button>
<el-button type="primary" @click="pre">{{ $t('page.business.study.studyFormFill.pre') }}</el-button>
</template>
</div>
</div>
<div class="edit-content">
<div class="content" style="width:60%" v-show="showIndex == 1">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item :label="bdmbTitle" prop="templateId">
<SelectTemplate v-model="form.templateId" :disabled="form.id && form.id !== ''"
:name="form.templateMc" @change="selectTemplateChange" :needPre="1" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.form.bdmc')" prop="bdmc">
<el-input type="text" v-model="form.bdmc" maxlength="50" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormFill.sfbl')" prop="sfbl">
<el-select v-model="form.sfbl" :placeholder="$t('form.placeholderSelect')"
:disabled="form.id && form.id !== ''">
<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-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormFill.bdsm')" prop="bdsm">
<el-input type="textarea" v-model="form.bdsm" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="content" v-if="showIndex == 2">
<TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="actFill" />
</div>
</div>
</div>
<el-dialog :title="$t('page.business.study.studyFormFill.tjjl')" :visible.sync="openApprove" width="1200px"
append-to-body :close-on-click-modal="false">
<el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px">
<div class="sbzdtcma"> <input type="text"> <input type="password"> </div>
<el-row v-if="form.sftb==1">
<el-col :psna="24">
<el-form-item>
<div><el-checkbox v-model="formApprove.sfcz" @change="sfczChange">{{
$t('page.business.study.studyFormFill.cz') }}</el-checkbox>
<el-button type="primary" v-if="formApprove.sfcz" @click="addCz" style="margin-left: 10px;">{{
$t('page.business.study.studyFormFill.tjcz') }}</el-button>
</div>
<template v-if="formApprove.sfcz">
<div v-if="czlist.length > 0">
<el-card class="box-card" v-for="(citem, cindex) in czlist" :key="'cz' + cindex"
style="margin-top: 10px;">
<div slot="header" class="clearfix">
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div> 处置方式:</div>
<div>
<BusinessSelect v-model="citem.czfs" dictType="business_czfs" style="width: 200px;">
</BusinessSelect>
</div>
</div>
<div>
<el-button type="danger" icon="el-icon-delete" circle @click="delcz(cindex)"></el-button>
</div>
</div>
</div>
<el-checkbox-group v-model="citem.list">
<el-checkbox :label="item.bh" v-for="item in resource" :key="'icz' + item.bh"
:disabled="getDisabledCz(item.bh, cindex)"></el-checkbox>
</el-checkbox-group>
</el-card>
</div>
</template>
</el-form-item>
</el-col>
<el-col :psna="24">
<el-form-item>
<div><el-checkbox v-model="formApprove.sfcc" @change="sfccChange">{{
$t('page.business.study.studyFormFill.cc') }}</el-checkbox>
<el-button type="primary" v-if="formApprove.sfcc" @click="addCc" style="margin-left: 10px;">{{
$t('page.business.study.studyFormFill.tjcc') }}</el-button>
</div>
<template v-if="formApprove.sfcc">
<div v-if="cclist.length > 0">
<el-card class="box-card" v-for="(citem, cindex) in cclist" :key="'cz' + cindex"
style="margin-top: 10px;">
<div slot="header" class="clearfix">
<div style="display: flex;justify-content: space-between;">
<div style="display: flex;">
<div style="display: flex;">
<div> 存储条件:</div>
<div>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" style="width: 200px;">
</BusinessSelect>
</div>
</div>
<div style="display: flex; margin-left: 10px;">
<div> 存储位置:</div>
<div>
<BusinessSelect v-model="citem.ccwz" dictType="business_ccwz" style="width: 200px;">
</BusinessSelect>
</div>
</div>
</div>
<div>
<el-button type="danger" icon="el-icon-delete" circle @click="delcc(cindex)"></el-button>
</div>
</div>
</div>
<el-checkbox-group v-model="citem.list">
<el-checkbox :label="item.bh" v-for="item in resource" :key="'icz' + item.bh"
:disabled="getDisabledCc(item.bh, cindex)"></el-checkbox>
</el-checkbox-group>
</el-card>
</div>
</template>
</el-form-item>
</el-col>
<el-col :psna="24">
<el-form-item>
<div>{{ $t('page.business.study.studyFormFill.yltj') }}</div>
<div v-for="(item, index) in resource" :key="'r' + index">
{{ item.bh }}
<el-input type="text" v-model="item.syl" maxlength="50" style="width: 250px;">
<template slot="append">
<div style="width: 70px;">
<BusinessSelect v-model="item.syldw" dictType="business_tjdw">
</BusinessSelect>
</div>
</template>
</el-input>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formApprove.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="formApprove.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<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="tj">{{ $t('form.confirm') }}</el-button>
<el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { studyFormFill_bc, studyFormFill_tj, studyFormFill_info } from "@/api/business/study/studyFormFill"
import { study_info } from "@/api/business/study/study"
import { mapGetters } from 'vuex'
import SelectTemplate from "@/views/business/comps/select/SelectTemplate";
import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser';
import TemplateTable from '@/views/business/comps/template/TemplateTable';
import BusinessSelect from '@/views/business/comps/select/BusinessSelect';
export default {
name: "Bj",
components: { SelectTemplate, SelectDeptUser, TemplateTable, BusinessSelect },
data() {
return {
open: false,
showIndex: 1,
form: {},
rules: {
bdmc: [{
required: true,
message: ' ',
trigger: 'blur'
}],
templateId: [{
required: true,
message: ' ',
trigger: 'blur'
}],
sfbl: [{
required: true,
message: ' ',
trigger: 'blur'
}],
},
czlist: [],
cclist: [],
openApprove: false,
formApprove: {
id: null,
qmyy: '填写并提交记录',
remark: '',
bdnr: '',
resource: '',
qmrmm: '',
sfcz: false,
czfs: '',
czfsqt: '',
czids: '',
sfcc: false,
cctj: '',
ccwz: '',
ccids: '',
},
resource: [],
bdmbTitle: this.$t('page.business.form.bdmb'),
rulesApprove: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
},
}
},
computed: {
...mapGetters([
'nickName', 'name'
]),
},
created() {
this.getInfo()
},
methods: {
delcc(index) {
this.cclist.splice(index, 1)
},
delcz(index) {
this.czlist.splice(index, 1)
},
addCz() {
this.czlist.push({
list: [],
czfs: ''
})
},
addCc() {
this.cclist.push({
list: [],
cctj: '',
ccwz: ''
})
},
getInfo() {
let formId = this.$route.params.formId
let studyId = this.$route.params.studyId
let fromYt = this.$route.params.fromYt
this.reset()
if (parseInt(formId) > 0) {
if (fromYt + '' == "10") {
this.showIndex = 1
this.bdmbTitle = this.$t('page.business.study.studyFormFill.ytbd')
} else {
this.showIndex = 2
}
this.$modal.loading()
studyFormFill_info({ id: formId }).then(response => {
this.form = response.data
this.form.qmyy = '制作提交预制表单'
this.$modal.closeLoading()
})
} else {
this.showIndex = 1
this.$modal.loading()
study_info({ id: studyId }).then(response => {
this.form = _.merge({}, this.form, { stydyId: studyId, resourceStudy: response.data.resource,sftb:1 })
this.$modal.closeLoading()
})
}
},
getDisabledCz(bh, idx) {
let mark = false
for (var i = 0; i < this.czlist.length; i++) {
if (idx != i) {
for (var j = 0; j < this.czlist[i].list.length; j++) {
if (this.czlist[i].list[j] == bh) {
mark = true;
break
}
}
}
}
return mark
},
getDisabledCc(bh, idx) {
let mark = false
for (var i = 0; i < this.cclist.length; i++) {
if (idx != i) {
for (var j = 0; j < this.cclist[i].list.length; j++) {
if (this.cclist[i].list[j] == bh) {
mark = true;
break
}
}
}
}
return mark
},
sfczChange() {
if (!this.formApprove.sfcz) {
this.czlist = []
}
},
sfccChange() {
if (!this.formApprove.sfcc) {
this.cclist = []
}
},
async showApprove() {
let that = this
let content = await that.$refs.templateTable.getFormData()
if (content) {
that.resetApprove()
that.formApprove.id = that.form.id
that.formApprove.bdnr = JSON.stringify(content)
that.resource = that.$refs.templateTable.getResource()
that.openApprove = true
}
},
resetApprove() {
this.formApprove = {
id: null,
qmyy: '填写并提交记录',
remark: '',
bdnr: '',
resource: '',
qmrmm: '',
sfcz: false,
czlist: '',
sfcc: false,
cclist: '',
}
this.resetForm("formApprove")
},
pre() {
this.showIndex = 1
},
next() {
this.$refs["form"].validate(valid => {
if (valid) {
this.showIndex = 2
}
})
},
selectTemplateChange(val) {
this.form.bdnr = val.content
this.form.templateMc = val.name
this.form.bdmc = val.name
this.form.templateSn = val.sn
},
cancel() {
let data = localStorage.getItem(this.$route.params.key)
if (data && data != '') {
let params = JSON.parse(data)
const obj = { path: params.url }
this.$tab.closeOpenPage(obj)
}
},
reset() {
this.form = {
id: null,
studyId: null,
bdbh: null,
bdmc: null,
bdsm: null,
templateId: null,
templateMc: null,
templateSn: null,
bdnr: null,
resource: null,
resourceStudy: null,
fzrsh: null,
shryId: null,
sfbl: null,
shryMc: null,
}
this.resetForm("form")
},
selectDeptUserChange(val) {
this.form.shryMc = val.name
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
this.$modal.loading()
studyFormFill_bc(this.form).then(response => {
this.$modal.closeLoading()
this.cancel()
}).finally(() => {
this.$modal.closeLoading()
})
}
})
},
async saveNext() {
let content = await this.$refs.templateTable.getFormData()
if (content) {
this.form.bdnr = JSON.stringify(content)
this.$modal.loading()
studyFormFill_bc(this.form).then(response => {
this.$modal.closeLoading()
this.cancel()
}).finally(() => {
this.$modal.closeLoading()
})
}
},
tj() {
let that=this
this.$refs["formApprove"].validate(valid => {
if (valid) {
that.$modal.loading()
that.formApprove.resource = JSON.stringify(that.resource)
that.formApprove.czlist = JSON.stringify(that.czlist)
that.formApprove.cclist = JSON.stringify(that.cclist)
studyFormFill_tj(that.formApprove).then(response => {
that.openApprove = false
that.$modal.closeLoading()
that.cancel()
}).finally(() => {
that.$modal.closeLoading()
})
}
})
}
}
}
</script>