Browse Source

feat:[试验管理]领取申请单

lkf
15881625488@163.com 3 months ago
parent
commit
f48baf0d92
8 changed files with 141 additions and 117 deletions
  1. +8
    -1
      src/api/business/study/studyFormApply.js
  2. +8
    -1
      src/api/business/study/studyFormPlan.js
  3. +38
    -0
      src/components/Template/operation/TableOpertaionDelete.vue
  4. +6
    -6
      src/views/business/comps/template/comps/gy/SYWZPZJHB.vue
  5. +5
    -0
      src/views/business/study/comp/jhbd/Bj.vue
  6. +23
    -33
      src/views/business/study/comp/jhbd/Xq.vue
  7. +19
    -25
      src/views/business/study/comp/sqbd/Xq.vue
  8. +34
    -51
      src/views/business/study/comp/tbbd/Xq.vue

+ 8
- 1
src/api/business/study/studyFormApply.js View File

@ -33,7 +33,14 @@ export function studyFormApply_info(query) {
params: query params: query
}) })
} }
//导出
export function studyFormApply_exportDetail(query) {
return request({
url: '/system/business/studyFormApply/exportDetail',
method: 'get',
params: query
})
}
//加签 //加签
export function studyFormApply_jq(data) { export function studyFormApply_jq(data) {
return request({ return request({

+ 8
- 1
src/api/business/study/studyFormPlan.js View File

@ -33,7 +33,14 @@ export function studyFormPlan_info(query) {
params: query params: query
}) })
} }
//导出
export function studyFormPlan_exportDetail(query) {
return request({
url: '/system/business/studyFormPlan/exportDetail',
method: 'get',
params: query
})
}
//更换归属人 //更换归属人

+ 38
- 0
src/components/Template/operation/TableOpertaionDelete.vue View File

@ -0,0 +1,38 @@
<template>
<div>
<el-popconfirm confirm-button-text='确认' cancel-button-text='取消' icon="el-icon-info" icon-color="red"
title="确认删除当前数据?" @confirm="deleteRow(rowIndex)">
<el-button slot="reference" type="text" size="small" class="delete-button">
删除
</el-button>
</el-popconfirm>
</div>
</template>
<script>
export default {
name: "TableOpertaionDelete",
props: {
row: {
type: Object,
default: () => { },
},
rowIndex: {
type: Number,
default: 0,
}
},
methods: {
//
deleteRow(index) {
this.$emit("deleteRow", index)
}
}
}
</script>
<style lang="scss" scoped>
.delete-button{
color: red;
}
</style>

+ 6
- 6
src/views/business/comps/template/comps/gy/SYWZPZJHB.vue View File

@ -12,10 +12,10 @@
<div class="template-form-item"> <div class="template-form-item">
<BaseInfoFormPcakge ref="stepFormPackageRef" :formConfig="stepFormConfig" @blur="onHandleBlur" <BaseInfoFormPcakge ref="stepFormPackageRef" :formConfig="stepFormConfig" @blur="onHandleBlur"
:formData="formData" /> :formData="formData" />
<CustomTable @blur="onHandleTableBlur" :showHeaderSelect="fillType === 'actFill'" :showOperation="fillType === 'actFill'" ref="stepTableRef" :columns="stepColumns"
<CustomTable @blur="onHandleTableBlur" :showHeaderSelect="fillType === 'actFill'" :showAddRow="fillType === 'actFill'" :showOperation="fillType === 'actFill'" ref="stepTableRef" :columns="stepColumns"
:formData="formData" > :formData="formData" >
<template slot="operation" slot-scope="{ row, rowIndex}"> <template slot="operation" slot-scope="{ row, rowIndex}">
<TableOpertaion :fillType="fillType" :row="row" :rowIndex="rowIndex" @deleteRow="deleteRow"></TableOpertaion>
<TableOpertaionDelete :row="row" :rowIndex="rowIndex" @deleteRow="deleteRow" ></TableOpertaionDelete>
</template> </template>
</CustomTable> </CustomTable>
</div> </div>
@ -23,7 +23,7 @@
</div> </div>
</div> </div>
<button @click="onSave">保存</button>
<!-- <button @click="onSave">保存</button> -->
</div> </div>
</div> </div>
</template> </template>
@ -33,11 +33,11 @@ import BaseInfoFormPcakge from "@/components/Template/BaseInfoFormPcakge";
import LineLabel from "@/components/Template/LineLabel"; import LineLabel from "@/components/Template/LineLabel";
import templateMixin from "../../mixins/templateMixin"; import templateMixin from "../../mixins/templateMixin";
import CustomTable from '@/components/Template/CustomTable.vue'; import CustomTable from '@/components/Template/CustomTable.vue';
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import TableOpertaionDelete from "@/components/Template/operation/TableOpertaionDelete.vue"
export default { export default {
name: "SYWZPZJHB", name: "SYWZPZJHB",
components: { BaseInfoFormPcakge, LineLabel, CustomTable, TableOpertaion },
components: { BaseInfoFormPcakge, LineLabel, CustomTable, TableOpertaionDelete },
mixins: [templateMixin], mixins: [templateMixin],
props: { props: {
value: { value: {
@ -188,7 +188,7 @@ export default {
methods: { methods: {
// //
getFilledFormData(){ getFilledFormData(){
return this.getFilledFormDataByRefs(["baseInfoRef", "storageConditionRef", "stepFormPackageRef", "stepRef", "remarkRef"])
return this.getFilledFormDataByRefs(["baseInfoRef","stepFormPackageRef", "remarkRef","stepTableRef"])
}, },
async getFormData() { async getFormData() {
return await this.validFormFields(["baseInfoRef", "stepFormPackageRef","stepTableRef","remarkRef"]); return await this.validFormFields(["baseInfoRef", "stepFormPackageRef","stepTableRef","remarkRef"]);

+ 5
- 0
src/views/business/study/comp/jhbd/Bj.vue View File

@ -145,6 +145,11 @@ export default {
form: {}, form: {},
openSubmit: false, openSubmit: false,
rulesApprove: { rulesApprove: {
fshryId: [{
required: true,
message: ' ',
trigger: 'blur'
}],
qmrmm: [{ qmrmm: [{
required: true, required: true,
message: ' ', message: ' ',

+ 23
- 33
src/views/business/study/comp/jhbd/Xq.vue View File

@ -14,18 +14,17 @@
</div> </div>
<div class="edit-content "> <div class="edit-content ">
<div class="content"> <div class="content">
<div>
<el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormPlan.dcqbjcgj') }}
</el-button>
<el-button type="primary" @click="dclcjcgj">{{ $t('page.business.study.studyFormPlan.dclcjcgj') }}
</el-button>
<el-button type="primary" @click="dcbjjcgj">{{ $t('page.business.study.studyFormPlan.dcbjjcgj') }}
</el-button>
<el-button type="primary" @click="dcxgjcgj">{{ $t('page.business.study.studyFormPlan.dcxgjcgj') }}
</el-button>
<el-button type="primary" @click="dcbhsjgj">{{ $t('page.business.study.studyFormPlan.dcbhsjgj') }}
</el-button>
</div>
<!-- 1:流程3编辑5人员7修改9补充说明 -->
<el-button type="primary" @click="exportExcel(-1)">{{ $t('page.business.study.studyFormPlan.dcqbjcgj') }}
</el-button>
<el-button type="primary" @click="exportExcel(1)">{{ $t('page.business.study.studyFormPlan.dclcjcgj') }}
</el-button>
<el-button type="primary" @click="exportExcel(3)">{{ $t('page.business.study.studyFormPlan.dcbjjcgj') }}
</el-button>
<el-button type="primary" @click="exportExcel(7)">{{ $t('page.business.study.studyFormPlan.dcxgjcgj') }}
</el-button>
<el-button type="primary" @click="exportExcel(999)">{{ $t('page.business.study.studyFormPlan.dcbhsjgj') }}
</el-button>
<TemplateTable ref="templateTable" :sn="form.templateSn" fillType="audit" :templateData="form" /> <TemplateTable ref="templateTable" :sn="form.templateSn" fillType="audit" :templateData="form" />
<div class="content-title"> <div class="content-title">
<div class="line"></div> <div class="line"></div>
@ -43,28 +42,25 @@
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
</el-table> </el-table>
</div> </div>
<!-- <div class="pal">
<div class="pal">
<pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum"
:limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" />
</div> -->
</div>
<div class="content-title"> <div class="content-title">
<div class="line"></div> <div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormPlan.jcgj') }}</div> <div class="subtitle"> {{ $t('page.business.study.studyFormPlan.jcgj') }}</div>
</div> </div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" /> <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<!--
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" /> -->
@pagination="getJjcgjList" />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { studyFormPlan_info, studyFormPlan_jcgj, studyFormPlan_qmxx } from "@/api/business/study/studyFormPlan"
import { studyFormPlan_info, studyFormPlan_jcgj, studyFormPlan_qmxx, studyFormPlan_exportDetail } from "@/api/business/study/studyFormPlan"
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import JcgjList from "@/views/business/comps/common/JcgjList"; import JcgjList from "@/views/business/comps/common/JcgjList";
import TemplateTable from '@/views/business/comps/template/TemplateTable'; import TemplateTable from '@/views/business/comps/template/TemplateTable';
@ -115,20 +111,14 @@ export default {
created() { created() {
}, },
methods: { methods: {
dcqbjcgj() {
alert('todo')
},
dclcjcgj() {
alert('todo')
},
dcbjjcgj() {
alert('todo')
},
dcxgjcgj() {
alert('todo')
},
dcbhsjgj() {
alert('todo')
exportExcel(jcgjlx) {
this.$modal.loading()
studyFormPlan_exportDetail(_.merge({}, this.queryParamsJcgj, { jcgjlx: jcgjlx, lang: this.$store.getters.language.split("_")[0] })).then(response => {
window.open(process.env.VUE_APP_FILE_DOMAIN + response.msg)
this.$modal.closeLoading()
}).finally(() => {
this.$modal.closeLoading()
})
}, },
getJjcgjList(val) { getJjcgjList(val) {
this.$modal.loading() this.$modal.loading()

+ 19
- 25
src/views/business/study/comp/sqbd/Xq.vue View File

@ -17,15 +17,16 @@
<div class="edit-content "> <div class="edit-content ">
<div class="content"> <div class="content">
<div> <div>
<el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormApply.dcqbjcgj') }}
<!-- 1:流程3编辑5人员7修改9补充说明 -->
<el-button type="primary" @click="exportExcel(-1)">{{ $t('page.business.study.studyFormApply.dcqbjcgj') }}
</el-button> </el-button>
<el-button type="primary" @click="dclcjcgj">{{ $t('page.business.study.studyFormApply.dclcjcgj') }}
<el-button type="primary" @click="exportExcel(1)">{{ $t('page.business.study.studyFormApply.dclcjcgj') }}
</el-button> </el-button>
<el-button type="primary" @click="dcbjjcgj">{{ $t('page.business.study.studyFormApply.dcbjjcgj') }}
<el-button type="primary" @click="exportExcel(3)">{{ $t('page.business.study.studyFormApply.dcbjjcgj') }}
</el-button> </el-button>
<el-button type="primary" @click="dcxgjcgj">{{ $t('page.business.study.studyFormApply.dcxgjcgj') }}
<el-button type="primary" @click="exportExcel(7)">{{ $t('page.business.study.studyFormApply.dcxgjcgj') }}
</el-button> </el-button>
<el-button type="primary" @click="dcbhsjgj">{{ $t('page.business.study.studyFormApply.dcbhsjgj') }}
<el-button type="primary" @click="exportExcel(999)">{{ $t('page.business.study.studyFormApply.dcbhsjgj') }}
</el-button> </el-button>
</div> </div>
<TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="audit" /> <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="audit" />
@ -45,18 +46,18 @@
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
</el-table> </el-table>
</div> </div>
<!-- <div class="pal">
<div class="pal">
<pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum"
:limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" />
</div> -->
</div>
<div class="content-title"> <div class="content-title">
<div class="line"></div> <div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div>
</div> </div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" /> <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<!-- <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" /> -->
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
</div> </div>
</div> </div>
@ -111,7 +112,7 @@
</template> </template>
<script> <script>
import { studyFormApply_tb, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply"
import { studyFormApply_tb, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx, studyFormApply_exportDetail } from "@/api/business/study/studyFormApply"
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import JcgjList from "@/views/business/comps/common/JcgjList"; import JcgjList from "@/views/business/comps/common/JcgjList";
import TemplateTable from '@/views/business/comps/template/TemplateTable'; import TemplateTable from '@/views/business/comps/template/TemplateTable';
@ -176,21 +177,14 @@ export default {
created() { created() {
}, },
methods: { methods: {
dcqbjcgj() {
alert('todo')
},
dclcjcgj() {
alert('todo')
},
dcbjjcgj() {
alert('todo')
},
dcxgjcgj() {
alert('todo')
},
dcbhsjgj() {
alert('todo')
exportExcel(jcgjlx) {
this.$modal.loading()
studyFormApply_exportDetail(_.merge({}, this.queryParamsJcgj, { jcgjlx: jcgjlx, lang: this.$store.getters.language.split("_")[0] })).then(response => {
window.open(process.env.VUE_APP_FILE_DOMAIN + response.msg)
this.$modal.closeLoading()
}).finally(() => {
this.$modal.closeLoading()
})
}, },
getJjcgjList(val) { getJjcgjList(val) {
this.$modal.loading() this.$modal.loading()

+ 34
- 51
src/views/business/study/comp/tbbd/Xq.vue View File

@ -25,55 +25,39 @@
</el-button> </el-button>
<el-button type="primary" @click="exportExcel(999)">{{ $t('page.business.study.studyFormFill.dcbhsjgj') }} <el-button type="primary" @click="exportExcel(999)">{{ $t('page.business.study.studyFormFill.dcbhsjgj') }}
</el-button> </el-button>
<!-- <el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormFill.dcqbjcgj') }}
</el-button>
<el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormFill.dcqbjcgj') }}
</el-button>
<el-button type="primary" @click="dclcjcgj">{{ $t('page.business.study.studyFormFill.dclcjcgj') }}
</el-button>
<el-button type="primary" @click="dcbjjcgj">{{ $t('page.business.study.studyFormFill.dcbjjcgj') }}
</el-button>
<el-button type="primary" @click="dcxgjcgj">{{ $t('page.business.study.studyFormFill.dcxgjcgj') }}
</el-button>
<el-button type="primary" @click="dcbhsjgj">{{ $t('page.business.study.studyFormFill.dcbhsjgj') }}
</el-button> -->
<div class="edit-content "> <div class="edit-content ">
<div class="content" style="width: 100%;"> <div class="content" style="width: 100%;">
<!-- <vue-html2pdf :show-layout="false" pdf-content-width="100%" :float-layout="false" pdf-orientation="landscape"
:enable-download="true" :preview-modal="true" ref="html2Pdf"> -->
<section slot="pdf-content">
<TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="detail" />
<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="$i18n.locale === 'zh_CN' ? 'qmyy' : 'qmyyEn'" 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 class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<!--
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" /> -->
</section>
<!--
</vue-html2pdf> -->
<section slot="pdf-content">
<TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="detail" />
<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="$i18n.locale === 'zh_CN' ? 'qmyy' : 'qmyyEn'" 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 class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
</section>
</div> </div>
</div> </div>
</div> </div>
@ -131,10 +115,9 @@ import { studyFormFill_tb, studyFormFill_info, studyFormFill_jcgj, studyFormFill
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import JcgjList from "@/views/business/comps/common/JcgjList"; import JcgjList from "@/views/business/comps/common/JcgjList";
import TemplateTable from '@/views/business/comps/template/TemplateTable'; import TemplateTable from '@/views/business/comps/template/TemplateTable';
import VueHtml2pdf from 'vue-html2pdf'
export default { export default {
name: "Xq", name: "Xq",
components: { JcgjList, TemplateTable, VueHtml2pdf },
components: { JcgjList, TemplateTable },
data() { data() {
return { return {
openApprove: false, openApprove: false,
@ -194,8 +177,8 @@ export default {
methods: { methods: {
exportExcel(jcgjlx) { exportExcel(jcgjlx) {
this.$modal.loading() this.$modal.loading()
studyFormFill_exportDetail(_.merge({}, this.queryParamsJcgj, { jcgjlx: jcgjlx ,lang: this.$store.getters.language.split("_")[0]})).then(response => {
window.open(process.env.VUE_APP_FILE_DOMAIN + response.msg)
studyFormFill_exportDetail(_.merge({}, this.queryParamsJcgj, { jcgjlx: jcgjlx, lang: this.$store.getters.language.split("_")[0] })).then(response => {
window.open(process.env.VUE_APP_FILE_DOMAIN + response.msg)
this.$modal.closeLoading() this.$modal.closeLoading()
}).finally(() => { }).finally(() => {
this.$modal.closeLoading() this.$modal.closeLoading()

Loading…
Cancel
Save