|
|
@@ -11,54 +11,78 @@
|
|
|
<el-tab-pane label="模板信息" name="模板信息">
|
|
|
<div class="form-container">
|
|
|
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
|
|
|
- <el-form-item label="模板名字" prop="tbName">
|
|
|
- <el-input v-model="formData.tbName" placeholder="请输入模板名字" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="模板编号" prop="tbCode">
|
|
|
- <el-input v-model="formData.tbCode" placeholder="请输入模板编号" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="模板分类" prop="tbType">
|
|
|
- <el-select v-model="formData.tbType" placeholder="请选择模板分类" :disabled="formType === 'view'">
|
|
|
- <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_TB_TYPE)" :key="dict.value"
|
|
|
- :label="dict.label" :value="dict.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="模板类型" prop="reportType">
|
|
|
- <el-select v-model="formData.reportType" placeholder="请选择模板类型" :disabled="formType === 'view'">
|
|
|
- <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_DYNAMIC_REPORT_TYPE)" :key="dict.value"
|
|
|
- :label="dict.label" :value="dict.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="项目分类" prop="pjType">
|
|
|
- <el-select v-model="formData.pjType" placeholder="请选择项目分类" :disabled="formType === 'view'">
|
|
|
- <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_DYNAMIC_PROJECT_TYPE)"
|
|
|
- :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-if="false" label="模板地址" prop="tbUrl">
|
|
|
- <el-input v-model="formData.tbUrl" placeholder="请输入模板地址" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="版本号" prop="versionNo">
|
|
|
- <el-input v-model="formData.versionNo" placeholder="请输入版本号" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="跳过页码数" prop="skipPageCount">
|
|
|
- <el-input-number v-model="formData.skipPageCount" :min="0" :max="10" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="模板说明" prop="tbNote">
|
|
|
- <el-input v-model="formData.tbNote" type="textarea" placeholder="请输入模板说明" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="创建人名" prop="creatorName">
|
|
|
- <el-input v-model="formData.creatorName" placeholder="请输入创建人名" :disabled="formType === 'view'" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="报告原件" prop="filePaths">
|
|
|
- <CustomUploadFile
|
|
|
- v-model:fileList="formData.filePaths"
|
|
|
- apiUrl="infra/file/upload"
|
|
|
- accept=".pdf,.jpg,.png,.doc,.wps,.docx,.DOC"
|
|
|
- list-type="text"
|
|
|
- :disabled="formType === 'view'"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="模板名字" prop="tbName">
|
|
|
+ <el-input v-model="formData.tbName" placeholder="请输入模板名字" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="模板编号" prop="tbCode">
|
|
|
+ <el-input v-model="formData.tbCode" placeholder="请输入模板编号" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="模板分类" prop="tbType">
|
|
|
+ <el-select v-model="formData.tbType" placeholder="请选择模板分类" :disabled="formType === 'view'">
|
|
|
+ <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_TB_TYPE)" :key="dict.value"
|
|
|
+ :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="模板类型" prop="reportType">
|
|
|
+ <el-select v-model="formData.reportType" placeholder="请选择模板类型" :disabled="formType === 'view'">
|
|
|
+ <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_DYNAMIC_REPORT_TYPE)" :key="dict.value"
|
|
|
+ :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="项目分类" prop="pjType">
|
|
|
+ <el-select v-model="formData.pjType" placeholder="请选择项目分类" :disabled="formType === 'view'">
|
|
|
+ <el-option v-for="dict in getIntDictOptions(DICT_TYPE.PRESSURE2_DYNAMIC_PROJECT_TYPE)"
|
|
|
+ :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="版本号" prop="versionNo">
|
|
|
+ <el-input v-model="formData.versionNo" placeholder="请输入版本号" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="24" :md="12">
|
|
|
+ <el-form-item label="创建人名" prop="creatorName">
|
|
|
+ <el-input v-model="formData.creatorName" placeholder="请输入创建人名" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="模板说明" prop="tbNote">
|
|
|
+ <el-input v-model="formData.tbNote" type="textarea" placeholder="请输入模板说明" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="报告原件" prop="filePaths">
|
|
|
+ <CustomUploadFile
|
|
|
+ v-model:fileList="formData.filePaths"
|
|
|
+ apiUrl="infra/file/upload"
|
|
|
+ accept=".pdf,.jpg,.png,.doc,.wps,.docx,.DOC"
|
|
|
+ list-type="text"
|
|
|
+ :disabled="formType === 'view'"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
@@ -99,6 +123,30 @@
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-tab-pane>
|
|
|
+ <el-tab-pane label="模板配置" name="模板配置">
|
|
|
+ <div class="form-container">
|
|
|
+ <el-form ref="formConfigRef" :model="formData" :rules="formConfigRules" label-width="140px">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="24" :md="8">
|
|
|
+ <el-form-item label="跳过页码数" prop="skipPageCount">
|
|
|
+ <el-input-number v-model="formData.skipPageCount" :min="0" :max="10" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :md="16">
|
|
|
+ <el-form-item prop="imageOffset">
|
|
|
+ <template #label>
|
|
|
+ 图片偏移量
|
|
|
+ <el-tooltip content="格式:sheet,x,y,多个sheet用、隔开 示例:记录,10,20、报告,20,30" placement="top">
|
|
|
+ <el-icon style="margin-left:4px;cursor:pointer;vertical-align:middle;"><QuestionFilled /></el-icon>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <el-input v-model="formData.imageOffset" placeholder="记录,10,20、报告,20,30" :disabled="formType === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<div class="unit-footer-btns">
|
|
|
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="formType !== 'view'">确 定</el-button>
|
|
|
@@ -112,7 +160,7 @@
|
|
|
<script setup lang="ts">
|
|
|
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
|
|
import { DynamicTbApi, DynamicTbVO } from '@/api/pressure2/dynamictb'
|
|
|
-import { Close } from "@element-plus/icons-vue";
|
|
|
+import { Close, QuestionFilled } from "@element-plus/icons-vue";
|
|
|
//import SpreadView from "@/components/DynamicReport/index1.vue";
|
|
|
import {SpreadEditor, SpreadViewer} from '@/components/DynamicReport/index';
|
|
|
//import { DocumentEditor } from "@onlyoffice/document-editor-vue";
|
|
|
@@ -152,6 +200,7 @@ const formData = ref({
|
|
|
formPath: undefined,
|
|
|
filePaths: [],
|
|
|
skipPageCount: 0,
|
|
|
+ imageOffset: undefined,
|
|
|
status: 400, // 默认下架状态
|
|
|
})
|
|
|
const formRules = reactive({
|
|
|
@@ -161,6 +210,15 @@ const formRules = reactive({
|
|
|
reportType: [{ required: true, message: '模板类型不能为空', trigger: 'change' }],
|
|
|
pjType: [{ required: true, message: '项目分类不能为空', trigger: 'change' }]
|
|
|
})
|
|
|
+const formConfigRules = reactive({
|
|
|
+ imageOffset: [
|
|
|
+ {
|
|
|
+ pattern: /^[\u4e00-\u9fa5\w]+,\d+,\d+(、[\u4e00-\u9fa5\w]+,\d+,\d+)*$/,
|
|
|
+ message: '图片偏移量格式错误,请输入 sheet,x,y,多个sheet用、隔开,如 记录,10,20、报告,20,30',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+})
|
|
|
|
|
|
//const documentServerUrl = import.meta.env.VITE_ONLY_OFFICE_SERVER_URL;
|
|
|
|
|
|
@@ -562,6 +620,7 @@ const resetForm = () => {
|
|
|
formPath: undefined,
|
|
|
filePaths: [],
|
|
|
skipPageCount: 0,
|
|
|
+ imageOffset: undefined,
|
|
|
status: 400, // 默认下架状态
|
|
|
}
|
|
|
formRef.value?.resetFields()
|