Browse Source

feat:[试验管理][填报表单]复核

master
15881625488@163.com 1 week ago
parent
commit
754d5c9966
4 changed files with 297 additions and 7 deletions
  1. +5
    -1
      src/lang/en/business/study/studyFormFill.js
  2. +5
    -1
      src/lang/zh/business/study/studyFormFill.js
  3. +268
    -0
      src/views/business/study/comp/tbbd/Fh.vue
  4. +19
    -5
      src/views/business/study/comp/tbbdList.vue

+ 5
- 1
src/lang/en/business/study/studyFormFill.js View File

@ -49,5 +49,9 @@ sqfz:'申请废止',
approve:'通过',
szqk:'生长情况',
rybg:'人员变更',
shenyue:'审阅'
shenyue:'审阅',
fhjj:'复核拒绝',
fhtg:'复核通过',
tongguo:'通过',
}

+ 5
- 1
src/lang/zh/business/study/studyFormFill.js View File

@ -49,5 +49,9 @@ sqfz:'申请废止',
approve:'通过',
szqk:'生长情况',
rybg:'人员变更',
shenyue:'审阅'
shenyue:'审阅',
fhjj:'复核拒绝',
fhtg:'复核通过',
tongguo:'通过',
}

+ 268
- 0
src/views/business/study/comp/tbbd/Fh.vue View File

@ -0,0 +1,268 @@
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.studyFormFill.fhjj')
}}</el-button>
<el-button type="primary" @click="showApprove('复核通过')">{{ $t('page.business.study.studyFormFill.fhtg')
}}</el-button>
<el-button type="primary" @click="showApprove('通过')">{{ $t('page.business.study.studyFormFill.tongguo')
}}</el-button>
</div>
</div>
<div class="edit-content">
<div class="content-left">
<TemplateTable ref="templateTable" :sn="form.templateSn" fillType="preFill" />
<div class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.qmxx') }}</div>
</div>
<div class="pal">
<el-table :data="qmxxList" v-loading="loadingQmxx">
<el-table-column :label="$t('page.business.study.studyFormFill.qmr')" align="center" prop="qmrMc"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.qmyy')" align="center" prop="qmyy"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.qmsj')" align="center" prop="createTime"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.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.studyFormFill.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.studyFormFill.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 { studyFormFill_fhtg, studyFormFill_fhjj, studyFormFill_tg, studyFormFill_info, studyFormFill_jcgj, studyFormFill_qmxx } from "@/api/business/study/studyFormFill"
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()
studyFormFill_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
studyFormFill_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
studyFormFill_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.studyFormFill.fhtg'
} else if (qmyy == '复核拒绝') {
this.openTitle = 'page.business.study.studyFormFill.fhjj'
} else if (qmyy == '通过') {
this.openTitle = 'page.business.study.studyFormFill.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 == '复核通过') {
studyFormFill_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
studyFormFill_fhjj(this.formApprove).then(response => {
this.openApprove = false
this.$modal.closeLoading()
this.$emit('close')
}).finally(() => {
this.$modal.closeLoading()
})
} else {
studyFormFill_tg(this.formApprove).then(response => {
this.openApprove = false
this.$modal.closeLoading()
this.$emit('close')
}).finally(() => {
this.$modal.closeLoading()
})
}
}
}
}
</script>

+ 19
- 5
src/views/business/study/comp/tbbdList.vue View File

@ -1,6 +1,6 @@
<template>
<div>
<div class="tbbd-list" v-show="!showDetail && !showEdit && !showAudit">
<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>
@ -122,7 +122,7 @@
@click="ghgsr(scope.row)" v-hasPermi="['business:studyFormFill:ghgsr']">{{
$t('page.business.study.studyFormFill.ghgsr') }}</el-button>
<!-- 审阅 -->
<el-button type="text" v-if="scope.row.bdzt === 5 || scope.row.bdzt === 7" @click="sh(scope.row)"
<el-button type="text" v-if="scope.row.bdzt === 5 || scope.row.bdzt === 7" @click="sy(scope.row)"
v-hasPermi="['business:studyFormFill:sy']">{{
$t('page.business.study.studyFormFill.sy') }}</el-button>
<!-- 废止 -->
@ -151,6 +151,8 @@
<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" />
<!-- 确认废止 -->
@ -172,6 +174,7 @@ import Bj from "./tbbd/Bj";
import Xq from "./tbbd/Xq";
import Sy from "./tbbd/Sy";
import Fz from "./tbbd/Fz";
import Fh from "./tbbd/Fh";
import Qrfz from "./tbbd/Qrfz";
import Jq from "./tbbd/Jq";
import Ghgsr from "./tbbd/Ghgsr";
@ -207,10 +210,11 @@ export default {
deep: true
}
},
components: {Ghgsr, Fz, Bj, Xq, Qrfz,Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
data() {
return {
leader: null,
showFh: false,
showAudit: false,
showEdit: false,
showDetail: false,
@ -234,7 +238,7 @@ export default {
loading: false,
total: 0,
list: [],
currentRow:null
currentRow: null
}
},
created() { },
@ -244,7 +248,7 @@ export default {
this.$refs.selectDeptUserDialog.show(null, null)
},
ghgsrChange(val) {
this.$refs.Ghgsr.show({id:this.currentRow.id ,userId:val.id,userMc:val.name})
this.$refs.Ghgsr.show({ id: this.currentRow.id, userId: val.id, userMc: val.name })
},
jq(row) {
this.$refs.Jq.show(row)
@ -318,6 +322,11 @@ export default {
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)
@ -328,6 +337,11 @@ export default {
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>

Loading…
Cancel
Save