luojie 2 months ago
parent
commit
4db7f171cf
5 changed files with 135 additions and 91 deletions
  1. +7
    -3
      src/components/Template/CustomTable.vue
  2. +10
    -10
      src/views/business/comps/template/comps/sp/SP003.vue
  3. +5
    -3
      src/views/business/comps/template/comps/sp/SP00456.vue
  4. +25
    -25
      src/views/business/comps/template/formConfig/paralleAndLadderConfig.js
  5. +88
    -50
      src/views/business/study/comp/tbbd/Xq.vue

+ 7
- 3
src/components/Template/CustomTable.vue View File

@ -16,8 +16,8 @@
:error="hasError(-1, index, col.headerSelectKey)" :error="hasError(-1, index, col.headerSelectKey)"
@update:error="onErrorUpdate(-1, index, col.headerSelectKey, $event)" /> @update:error="onErrorUpdate(-1, index, col.headerSelectKey, $event)" />
</template> </template>
<span v-else-if="headerSelectFields[col.headerSelectKey]" class="fill-type-icon">({{
headerSelectFields[col.headerSelectKey] }})</span>
<div v-else-if="headerSelectFields[col.headerSelectKey]" class="fill-type-icon">({{
headerSelectFields[col.headerSelectKey] }})</div>
</div> </div>
@ -940,11 +940,15 @@ export default {
} }
.header-cell { .header-cell {
font-weight: bold;
color: #909399; color: #909399;
background-color: #f5f7fa; background-color: #f5f7fa;
font-size: 12px;
word-break: break-word;
white-space: normal;
} }
.body-cell { .body-cell {
color: #606266; color: #606266;
background-color: #fff; background-color: #fff;

+ 10
- 10
src/views/business/comps/template/comps/sp/SP003.vue View File

@ -275,7 +275,7 @@ export default {
bodySubType: "span", bodySubType: "span",
bodySubKey: "subTargetSolutionCode", bodySubKey: "subTargetSolutionCode",
bodyFillType: "preFill", bodyFillType: "preFill",
width: 280,
width: 180,
myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],// myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//
maxVolumeField: "actSolutionVolume",// maxVolumeField: "actSolutionVolume",//
maxVolumeFieldUnit: "actSolutionVolumeUnit",// maxVolumeFieldUnit: "actSolutionVolumeUnit",//
@ -285,7 +285,7 @@ export default {
{ {
label: "template.sp.sp003.qsrybh", label: "template.sp.sp003.qsrybh",
prop: "startSolutionCode", prop: "startSolutionCode",
width: 280,
width: 180,
bodyType: "input", bodyType: "input",
bodyFillType: "actFill", bodyFillType: "actFill",
bodyMaxlength: 10, bodyMaxlength: 10,
@ -293,7 +293,7 @@ export default {
{ {
label: "template.sp.sp003.ysqsrytj", label: "template.sp.sp003.ysqsrytj",
prop: "targetStartSolutionVolume", prop: "targetStartSolutionVolume",
width: 280,
width: 180,
headerSelectKey: "targetStartSolutionVolumeUnit", headerSelectKey: "targetStartSolutionVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),
@ -311,7 +311,7 @@ export default {
{ {
label: "template.sp.sp003.sjqsrytj", label: "template.sp.sp003.sjqsrytj",
prop: "actStartSolutionVolume", prop: "actStartSolutionVolume",
width: 280,
width: 180,
headerSelectKey: "actStartSolutionVolumeUnit", headerSelectKey: "actStartSolutionVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),
@ -324,7 +324,7 @@ export default {
{ {
label: "template.sp.sp003.ysxsytj", label: "template.sp.sp003.ysxsytj",
prop: "targetDiluentVolume", prop: "targetDiluentVolume",
width: 280,
width: 180,
headerSelectKey: "targetDiluentVolumeUnit", headerSelectKey: "targetDiluentVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),
@ -342,7 +342,7 @@ export default {
{ {
label: "template.sp.sp003.sjxsytj", label: "template.sp.sp003.sjxsytj",
prop: "actDiluentVolume", prop: "actDiluentVolume",
width: 280,
width: 180,
headerSelectKey: "actDiluentVolumeUnit", headerSelectKey: "actDiluentVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),
@ -355,7 +355,7 @@ export default {
{ {
label: "template.sp.sp003.ysmbrynd", label: "template.sp.sp003.ysmbrynd",
prop: "targetSolutionConcentration", prop: "targetSolutionConcentration",
width: 280,
width: 180,
headerSelectKey: "targetSolutionConcentrationUnit", headerSelectKey: "targetSolutionConcentrationUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_nddw'), headerOptions: this.getDictOptions('business_nddw'),
@ -366,7 +366,7 @@ export default {
{ {
label: "template.sp.sp003.sjmbrynd", label: "template.sp.sp003.sjmbrynd",
prop: "actSolutionConcentration", prop: "actSolutionConcentration",
width: 280,
width: 180,
headerSelectKey: "actSolutionConcentrationUnit", headerSelectKey: "actSolutionConcentrationUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_nddw'), headerOptions: this.getDictOptions('business_nddw'),
@ -384,7 +384,7 @@ export default {
{ {
label: "template.sp.sp003.ysmbrytj", label: "template.sp.sp003.ysmbrytj",
prop: "targetSolutionVolume", prop: "targetSolutionVolume",
width: 280,
width: 180,
headerSelectKey: "targetSolutionVolumeUnit", headerSelectKey: "targetSolutionVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),
@ -395,7 +395,7 @@ export default {
{ {
label: "template.sp.sp003.sjmbrytj", label: "template.sp.sp003.sjmbrytj",
prop: "actSolutionVolume", prop: "actSolutionVolume",
width: 280,
width: 180,
headerSelectKey: "actSolutionVolumeUnit", headerSelectKey: "actSolutionVolumeUnit",
fillType: "preFill", fillType: "preFill",
headerOptions: this.getDictOptions('business_tjdw'), headerOptions: this.getDictOptions('business_tjdw'),

+ 5
- 3
src/views/business/comps/template/comps/sp/SP00456.vue View File

@ -687,9 +687,11 @@ export default {
} }
} }
//使 //使
const stepResource = this.$refs.stepRef.getStepResource()
this.resourceTmp =uniqeResource(tmpResource,stepResource.sjResource||[])
this.yqResourceTmp = stepResource.yqResource||[]
// const stepResource = this.$refs.stepRef.getStepResource()
// this.resourceTmp =uniqeResource(tmpResource,stepResource.sjResource||[])
// this.yqResourceTmp = stepResource.yqResource||[]
this.resourceTmp=tmpResource
return content; return content;
}, },
async onSave() { async onSave() {

+ 25
- 25
src/views/business/comps/template/formConfig/paralleAndLadderConfig.js View File

@ -8,7 +8,7 @@ export const getLadderColumnsConfig = ($this) => {
bodySubType: 'span', bodySubType: 'span',
bodySubKey: 'subTargetSolutionCode', bodySubKey: 'subTargetSolutionCode',
bodyFillType: 'preFill', bodyFillType: 'preFill',
width: 280,
width: 180,
myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段 myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段
maxVolumeField: "actSolutionVolume",//分装的最大量字段 maxVolumeField: "actSolutionVolume",//分装的最大量字段
maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段 maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段
@ -16,7 +16,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.qsrybh', label: 'template.sp.sp00456.qsrybh',
prop: 'startSolutionCode', prop: 'startSolutionCode',
width: 280,
width: 180,
bodyType: 'input', bodyType: 'input',
bodyFillType: 'actFill', bodyFillType: 'actFill',
bodyMaxlength: 10 bodyMaxlength: 10
@ -24,7 +24,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysqsrytj', label: 'template.sp.sp00456.ysqsrytj',
prop: 'targetStartSolutionVolume', prop: 'targetStartSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'targetStartSolutionVolumeUnit', headerSelectKey: 'targetStartSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -42,7 +42,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjqsrytj', label: 'template.sp.sp00456.sjqsrytj',
prop: 'actStartSolutionVolume', prop: 'actStartSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'actStartSolutionVolumeUnit', headerSelectKey: 'actStartSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -55,7 +55,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysxsytj', label: 'template.sp.sp00456.ysxsytj',
prop: 'targetDiluentVolume', prop: 'targetDiluentVolume',
width: 280,
width: 180,
headerSelectKey: 'targetDiluentVolumeUnit', headerSelectKey: 'targetDiluentVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -74,7 +74,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjxsytj', label: 'template.sp.sp00456.sjxsytj',
prop: 'actDiluentVolume', prop: 'actDiluentVolume',
width: 280,
width: 180,
headerSelectKey: 'actDiluentVolumeUnit', headerSelectKey: 'actDiluentVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -87,7 +87,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysmbrynd', label: 'template.sp.sp00456.ysmbrynd',
prop: 'targetSolutionConcentration', prop: 'targetSolutionConcentration',
width: 280,
width: 180,
headerSelectKey: 'targetSolutionConcentrationUnit', headerSelectKey: 'targetSolutionConcentrationUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_nddw'), headerOptions: $this.getDictOptions('business_nddw'),
@ -98,7 +98,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjmbrynd', label: 'template.sp.sp00456.sjmbrynd',
prop: 'actSolutionConcentration', prop: 'actSolutionConcentration',
width: 280,
width: 180,
headerSelectKey: 'actSolutionConcentrationUnit', headerSelectKey: 'actSolutionConcentrationUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_nddw'), headerOptions: $this.getDictOptions('business_nddw'),
@ -118,7 +118,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysmbrytj', label: 'template.sp.sp00456.ysmbrytj',
prop: 'targetSolutionVolume', prop: 'targetSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'targetSolutionVolumeUnit', headerSelectKey: 'targetSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -129,7 +129,7 @@ export const getLadderColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjmbrytj', label: 'template.sp.sp00456.sjmbrytj',
prop: 'actSolutionVolume', prop: 'actSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'actSolutionVolumeUnit', headerSelectKey: 'actSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -169,12 +169,12 @@ export const getParallelColumnsConfig = ($this) => {
myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段 myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段
maxVolumeField: "actSolutionVolume",//分装的最大量字段 maxVolumeField: "actSolutionVolume",//分装的最大量字段
maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段 maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段
width: 280
width: 120
}, },
{ {
label: 'template.sp.sp00456.ysmbrynd', label: 'template.sp.sp00456.ysmbrynd',
prop: 'targetSolutionConcentration', prop: 'targetSolutionConcentration',
width: 280,
width: 180,
headerSelectKey: 'targetSolutionConcentrationUnit', headerSelectKey: 'targetSolutionConcentrationUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_nddw'), headerOptions: $this.getDictOptions('business_nddw'),
@ -185,7 +185,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjmbrynd', label: 'template.sp.sp00456.sjmbrynd',
prop: 'actSolutionConcentration', prop: 'actSolutionConcentration',
width: 280,
width: 180,
headerSelectKey: 'actSolutionConcentrationUnit', headerSelectKey: 'actSolutionConcentrationUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_nddw'), headerOptions: $this.getDictOptions('business_nddw'),
@ -204,7 +204,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysmbrytj', label: 'template.sp.sp00456.ysmbrytj',
prop: 'targetSolutionVolume', prop: 'targetSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'targetSolutionVolumeUnit', headerSelectKey: 'targetSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -215,7 +215,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjmbrytj', label: 'template.sp.sp00456.sjmbrytj',
prop: 'actSolutionVolume', prop: 'actSolutionVolume',
width: 280,
width: 180,
headerSelectKey: 'actSolutionVolumeUnit', headerSelectKey: 'actSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
@ -234,7 +234,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.mbryyxzq', label: 'template.sp.sp00456.mbryyxzq',
prop: 'targetSolutionCycle', prop: 'targetSolutionCycle',
width: 280,
width: 180,
fillType: 'preFill', fillType: 'preFill',
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodySubType: 'select', bodySubType: 'select',
@ -248,20 +248,20 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.mbrysxr', label: 'template.sp.sp00456.mbrysxr',
prop: 'targetSolutionExpirationDate', prop: 'targetSolutionExpirationDate',
width: 180,
width: 160,
bodyType: 'span' bodyType: 'span'
}, },
{ {
label: 'template.sp.sp00456.ysysrybh', label: 'template.sp.sp00456.ysysrybh',
prop: 'startSolutionCode', prop: 'startSolutionCode',
width: 280,
width: 160,
bodyType: 'input', bodyType: 'input',
bodyFillType: 'preFill' bodyFillType: 'preFill'
}, },
{ {
label: 'template.sp.sp00456.sjysrybh', label: 'template.sp.sp00456.sjysrybh',
prop: 'actStartSolutionCode', prop: 'actStartSolutionCode',
width: 280,
width: 250,
bodyType: 'clickable', bodyType: 'clickable',
bodyFillType: 'actFill', bodyFillType: 'actFill',
compareTo: 'startSolutionCode', //比较哪个字段 compareTo: 'startSolutionCode', //比较哪个字段
@ -269,7 +269,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.ysysrynd', label: 'template.sp.sp00456.ysysrynd',
prop: 'targetStartSolutionConcentration', prop: 'targetStartSolutionConcentration',
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'preFill', bodyFillType: 'preFill',
bodySubType: 'select', bodySubType: 'select',
@ -282,7 +282,7 @@ export const getParallelColumnsConfig = ($this) => {
{ {
label: 'template.sp.sp00456.sjysrynd', label: 'template.sp.sp00456.sjysrynd',
prop: 'targetAcSolution', prop: 'targetAcSolution',
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'actFill', bodyFillType: 'actFill',
bodyDisabled: true, bodyDisabled: true,
@ -294,7 +294,7 @@ export const getParallelColumnsConfig = ($this) => {
headerSelectKey: 'targetStartSolutionVolumeUnit', headerSelectKey: 'targetStartSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'preFill', bodyFillType: 'preFill',
bodySubType: 'inputNumber', bodySubType: 'inputNumber',
@ -315,7 +315,7 @@ export const getParallelColumnsConfig = ($this) => {
headerSelectKey: 'actStartSolutionVolumeUnit', headerSelectKey: 'actStartSolutionVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'actFill', bodyFillType: 'actFill',
bodyMaxlength: 10, bodyMaxlength: 10,
@ -329,7 +329,7 @@ export const getParallelColumnsConfig = ($this) => {
headerSelectKey: 'preDiluentVolumeUnit', headerSelectKey: 'preDiluentVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'preFill', bodyFillType: 'preFill',
bodySubType: 'inputNumber', bodySubType: 'inputNumber',
@ -347,7 +347,7 @@ export const getParallelColumnsConfig = ($this) => {
headerSelectKey: 'actDiluentVolumeUnit', headerSelectKey: 'actDiluentVolumeUnit',
fillType: 'preFill', fillType: 'preFill',
headerOptions: $this.getDictOptions('business_tjdw'), headerOptions: $this.getDictOptions('business_tjdw'),
width: 280,
width: 160,
bodyType: 'inputNumber', bodyType: 'inputNumber',
bodyFillType: 'actFill', bodyFillType: 'actFill',
bodyMaxlength: 10, bodyMaxlength: 10,

+ 88
- 50
src/views/business/study/comp/tbbd/Xq.vue View File

@ -26,38 +26,47 @@
<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>
<div class="edit-content "> <div class="edit-content ">
<div class="content" style="width: 100%;">
<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 class="content" style="width: 100%; height: 100%;">
<vue-html2pdf :show-layout="false" pdf-content-width="100%" :pdf-format="form.templatePdfSize"
:pdf-quality="2" :float-layout="false" pdf-orientation="landscape" :paginate-elements-by-height="794"
:enable-download="true" :preview-modal="true" ref="html2Pdf" @progress="onProgress">
<section slot="pdf-content">
<div class="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>
<template v-if="!showExport">
<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" v-if="showExport">
<pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum"
:limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" />
</div>
</template>
<div class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.jcgj') }}</div>
</div>
<template v-if="!showExport">
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true" />
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" />
</template>
</div>
</section>
</vue-html2pdf>
</div> </div>
</div> </div>
</div> </div>
@ -96,7 +105,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm"> <el-form-item :label="$t('form.password')" prop="qmrmm">
<el-input type="password" show-password v-model="formApprove.qmrmm" maxlength="20"
<el-input type="password" show-password v-model="formApprove.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" /> :placeholder="$t('form.placeholderInput')" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -115,9 +124,10 @@ 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 },
components: { JcgjList, TemplateTable, VueHtml2pdf },
data() { data() {
return { return {
openApprove: false, openApprove: false,
@ -164,7 +174,8 @@ export default {
pageNum: 1, pageNum: 1,
formId: null, formId: null,
pageSize: 9999, pageSize: 9999,
}
},
showExport: false,
} }
}, },
computed: { computed: {
@ -175,29 +186,27 @@ export default {
created() { created() {
}, },
methods: { methods: {
onProgress(progress) {
console.log(`生成进度: ${progress}%`)
if (progress == 100) {
this.$modal.closeLoading()
}
},
exportExcel(jcgjlx) { exportExcel(jcgjlx) {
this.$modal.loading() this.$modal.loading()
this.showExport = true
setTimeout(() => {
this.$refs.html2Pdf.generatePdf()
}, 200);
},
exportExcel_bak(jcgjlx) {
this.$modal.loading()
studyFormFill_exportDetail(_.merge({}, this.queryParamsJcgj, { jcgjlx: jcgjlx, lang: this.$store.getters.language.split("_")[0] })).then(response => { 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) window.open(process.env.VUE_APP_FILE_DOMAIN + response.msg)
}).finally(() => { }).finally(() => {
this.$modal.closeLoading() this.$modal.closeLoading()
}) })
}, },
dcqbjcgj() {
this.$refs.html2Pdf.generatePdf()
},
dclcjcgj() {
this.$refs.html2Pdf.generatePdf()
},
dcbjjcgj() {
this.$refs.html2Pdf.generatePdf()
},
dcxgjcgj() {
this.$refs.html2Pdf.generatePdf()
},
dcbhsjgj() {
this.$refs.html2Pdf.generatePdf()
},
getJjcgjList(val) { getJjcgjList(val) {
this.$modal.loading() this.$modal.loading()
studyFormFill_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { studyFormFill_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => {
@ -265,3 +274,32 @@ export default {
} }
} }
</script> </script>
<style scoped>
.pdf-content {
padding: 20px;
font-family: Arial, sans-serif;
}
.pdf-content h1 {
color: #333;
border-bottom: 2px solid #4CAF50;
padding-bottom: 10px;
}
.pdf-content table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
.pdf-content th,
.pdf-content td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
.pdf-content th {
background-color: #f2f2f2;
}
</style>

Loading…
Cancel
Save