模板打印代码提交

prod
郑明梁 2 years ago
parent 4ff95bab94
commit e4cb0b7141

@ -59,18 +59,70 @@ export function systemPDFTemplateDeleteById(query) {
}); });
} }
export function moduleDetail(query) { export function moduleBizDetail(query) {
return axios({ return axios({
url: "/system/pdf/module/detail", url: "/system/pdf/templateRelevanceBiz/getListByModelId",
method: "get", method: "post",
params: query data: query
}); });
} }
export function updateDetailRel(query) { export function updateDetailRel(query) {
return axios({ return axios({
url: "/system/pdf/module/updateRl", url: "/system/pdf/templateRelevanceBiz/updateRl",
method: "post",
data: query
});
}
export function moduleCodeDetail(query) {
return axios({
url: "/system/pdf/templateRelevanceCode/getListByModelId",
method: "post",
data: query
});
}
export function updateCodeDetailRel(query) {
return axios({
url: "/system/pdf/templateRelevanceCode/updateRl",
method: "post",
data: query
});
}
export function moduleLabelDetail(query) {
return axios({
url: "/system/pdf/templateRelevanceLabel/getListByModelId",
method: "post",
data: query
});
}
export function updateLabelDetailRel(query) {
return axios({
url: "/system/pdf/templateRelevanceLabel/updateRl",
method: "post",
data: query
});
}
export function moduleStatementDetail(query) {
return axios({
url: "/system/pdf/templateRelevanceStatement/getListByModelId",
method: "post",
data: query
});
}
export function updateStatementDetailRel(query) {
return axios({
url: "/system/pdf/templateRelevanceStatement/updateRl",
method: "post", method: "post",
data: query data: query
}); });

@ -0,0 +1,759 @@
<template>
<div>
<el-form
:inline="true"
:model="moduleQuery"
class="query-form"
size="mini"
>
<el-row>
<el-form-item class="query-form-item" label="功能名称:">
<el-input v-model="moduleQuery.name" placeholder="功能名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="moduleLoading" :data="moduleList" style="width: 100%" border @row-click="moduleClick" highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="功能名称" prop="name"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button type="text" @click.native="showFieldExpain(scope.row)">字段说明</el-button>
<el-button type="text" @click="jumpDl(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="moduleTotal>0"
:total="moduleTotal"
:page.sync="moduleQuery.page"
:limit.sync="moduleQuery.limit"
@pagination="getList"
/>
<el-table v-loading="loading" :data="list" style="width: 100%;margin-top: 50px" border>
<el-table-column label="序号" type="index" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="业务类型" prop="localActionName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="模板名称" width="200">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注字段1" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark1"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段2" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark2"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段3" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark3"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150" prop="price">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click="handleSave(scope.$index, scope.row)"
>保存
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
<div style="margin-top: 18px ; color: #F71616; font-size: 13px">
<span>重要提示本页功能仅供技术提供方修改&nbsp;</span>
</div>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="hideForm"
width="85%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" auto-complete="off" :disabled="false"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" rows=6></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>选择jasper模板</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="">
<el-upload
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jasper"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip">只能上传 jasper 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>所属模块</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="module">
<el-select v-model="formData.module" placeholder="所属模块">
<el-option
v-for="item in moduleNameList"
:key="item.idStr"
:label="item.name"
:value="item.idStr"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="submitUpload()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 模块选择模板 -->
<el-dialog
title="选择模板"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="moduleFormVisible"
:before-close="moduleHideForm"
width="70%"
top="5vh"
>
<el-form ref="singleTable">
<el-table v-loading="selectTemplateLoading" :data="selectTemplateList" style="width: 100%"
highlight-current-row
border
@current-change="moduleSelectHandleCurrentChange">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板名称" prop="name" width="200"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
</el-table>
<el-pagination
:page-size="selectTemplateQuery.limit"
@current-change="selectTemplateGetList"
layout="prev, pager, next"
:total="selectTemplateTotal"
:current-page="selectTemplateQuery.page"
>
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="moduleHideForm">取消</el-button>
<el-button
type="primary"
@click.native="moduleSubmitSelectTemplate()"
:loading="moduleFormLoading"
>确定
</el-button
>
</div>
</el-dialog>
<el-dialog
title="字段说明"
:visible.sync="centerDialogVisible"
width="40%"
center>
<span style="white-space: pre-wrap;">{{ currentRow }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="centerDialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
systemPDFTemplateList,
systemPDFTemplateSave,
systemPDFTemplateDeleteById,
systemPDFModuleList,
systemPDFModuleSave, updateDetailRel,
getSystemPDFModules, moduleDetail, updatePdfRelData, moduleBizDetail
} from '@/api/system/systemPDFTemplate'
import {saveAs} from 'file-saver';
const formJson = {
id: "",
name: "",
type: "2",
module: "1",
param: "",
path: "",
rowCount: 10,
qrcodeCount: 1,
remark: "",
};
const moduleFormJson = {
id: "",
templateId: 0,
};
export default {
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
query: {
moduleId: null,
name: "",
page: 1,
limit: 20
},
headers: {},
list: [],
total: 0,
moduleQuery: {
name: "",
page: 1,
limit: 20
},
currentRow: null,
moduleList: [],
moduleNameList: [],
moduleTotal: 0,
selectTemplateQuery: {
busRlId: null,
name: "",
module: null,
page: 1,
limit: 10
},
centerDialogVisible: false,
selectTemplateList: [],
selectTemplateTotal: 0,
selectTemplateLoading: false,
moduleSelectQuery: {
name: "",
page: 1,
limit: 10
},
moduleSelectList: [],
moduleSelectTotal: 0,
loading: false,
index: null,
formName: null,
moduleFormName: null,
formMap: {
add: "新增",
update: "设置"
},
formLoading: false,
formVisible: false,
moduleFormLoading: false,
moduleFormVisible: false,
formData: formJson,
moduleFormData: moduleFormJson,
formRules: {
name: [
{required: true, message: "请输入模板名称", trigger: "blur"}
],
module: [
{required: true, message: "请选择所属模块", trigger: "blur"}
]
},
currentCheckIndex: -1,
deleteLoading: false,
uploadUrl: "",
fileList: [],
uploadDisabled: false,
moduleLoading: false,
moduleTypeMap: {0: "标签", 1: "报表", 2: "单据"},
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.moduleQuery = {
templateType: null,
moduleId: null,
name: "",
page: 1,
limit: 20
};
this.getModuleList();
},
onSubmit() {
this.getModuleList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleHandleCurrentChange(val) {
this.selectTemplateQuery.page = val;
this.selectTemplateGetList();
},
getList() {
// this.loading = true;
moduleBizDetail(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleSubCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleClick(row) {
debugger
this.query = {
modelKey: row.modelKey,
page: 1,
limit: 20
};
this.getList();
},
handleDownload(url, name) {
this.getBlob(url).then(blob => {
saveAs(blob, name);
})
return false;
},
getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
})
},
jumpDl(row) {
this.handleDownload(this.BASE_URL + "/udiwms/donwload/printFile?fileName=" + row.templateDlUrl, row.name + ".jrxml");
},
getModuleList() {
this.moduleLoading = true;
this.moduleQuery.templateType=2
systemPDFModuleList(this.moduleQuery)
.then(response => {
this.moduleLoading = false;
this.moduleList = response.data.list || [];
this.moduleTotal = response.data.total || 0;
})
.catch(() => {
this.moduleLoading = false;
this.moduleList = [];
this.moduleTotal = 0;
});
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
//
hideForm() {
//
this.formVisible = !this.formVisible;
return true;
},
moduleHideForm() {
this.moduleFormVisible = !this.moduleFormVisible;
this.selectTemplateQuery.module = null;
return true;
},
moduleSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
name: "",
page: 1,
limit: 20
};
this.selectTemplateGetList();
},
busSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
busRlId: row.id,
type: 1,
name: "",
page: 1,
limit: 10
};
this.selectTemplateGetList();
},
selectTemplateGetList(val) {
this.selectTemplateLoading = true;
if (val != null) {
this.selectTemplateQuery.page = val;
}
systemPDFTemplateList(this.selectTemplateQuery)
.then(response => {
this.selectTemplateLoading = false;
this.selectTemplateList = response.data.list || [];
this.selectTemplateTotal = response.data.total || 0;
})
.catch(() => {
this.selectTemplateLoading = false;
this.selectTemplateList = [];
this.selectTemplateTotal = 0;
});
},
showFieldExpain(row) {
this.currentRow = row.fieldExplain.replace('\\\n', '<br>');
this.centerDialogVisible = true;
// const {href} = this.$router.resolve({//
// path: '/showText',
// query: {
// content: row.fieldExplain
// }
// })
// window.open(href, '_blank')
},
//
handleForm(index, row) {
this.formVisible = true;
this.formData = JSON.parse(JSON.stringify(formJson));
this.fileList = [];
if (row !== null) {
this.formData = Object.assign({}, row);
this.formData.module = row.module + "";
}
this.index = index;
this.formName = "update";
this.uploadDisabled = true;
},
handleAddForm(row) {
this.formVisible = true;
this.formData = {module: row.id + ""};
this.fileList = [];
this.formName = "add";
this.uploadDisabled = false;
},
templateConfig(row) {
},
submitUpload() {
if (this.$refs.upload.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`);
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.uploadDisabled) {
this.$refs.upload.submit();
} else {
this.submitTemplate();
}
}
});
},
uploadHandleRemove(file, fileList) {
},
uploadHandlePreview(file) {
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jasper") {
this.$message.error("上传文件只能是 jasper 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.formData.path = response.data.path;
this.submitTemplate();
} else {
this.$message.error("上传失败:" + response.message);
}
},
uploadHandleError() {
},
submitTemplate() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
let data = Object.assign({}, this.formData);
data.name = data.name.trim();
systemPDFTemplateSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
//
this.resetForm();
this.getList();
this.getModuleList();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteTemplate(row) {
this.$confirm("此操作将永久删除该模板, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
systemPDFTemplateDeleteById({id: row.id, path: row.path})
.then(response => {
if (response.code === 20000) {
this.$message.success(response.data);
//
this.resetForm();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
})
}).catch(() => {
});
},
moduleSelectSetCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
moduleSelectHandleCurrentChange(val) {
this.moduleFormData.templateId = val.id;
},
moduleSubmitSelectTemplate() {
this.moduleFormLoading = true;
let data = Object.assign({}, this.moduleFormData);
this.moduleFormName = 'update';
if (this.selectTemplateQuery.type == 1) {
let query = {
id: this.selectTemplateQuery.busRlId,
templateId: data.templateId,
}
updateDetailRel(query)
.then(response => {
this.moduleFormVisible = false;
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.getList();
}).catch(() => {
this.moduleFormLoading = false;
});
} else
systemPDFModuleSave(data, this.moduleFormName)
.then(response => {
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.moduleFormVisible = false;
if (this.moduleFormName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.moduleList.unshift(data);
}
} else {
this.moduleList.splice(this.index, 1, data);
}
this.getModuleList();
})
.catch(() => {
this.moduleFormLoading = false;
});
},
handleEdit(index, row) {
this.currentCheckIndex = index;
},
handleSave(index, row) {
this.currentCheckIndex = -1;
updateDetailRel(row).then((res) => {
if (res.code == 20000) {
this.$message.success(res.data);
}
})
},
},
filters: {
paramStatusFilterType(paramStatus) {
const paramStatusTypeMap = {
0: "gray",
1: "success"
};
return paramStatusTypeMap[paramStatus];
},
paramStatusFilterName(paramStatus) {
const paramStatusNameMap = {
1: "订单详情",
2: "配货管理-打印订单"
};
return paramStatusNameMap[paramStatus];
}
},
mounted() {
},
created() {
this.getModuleList();
this.uploadUrl = this.BASE_URL + "/udiwms/upload/pdf/template";
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
}
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -0,0 +1,759 @@
<template>
<div>
<el-form
:inline="true"
:model="moduleQuery"
class="query-form"
size="mini"
>
<el-row>
<el-form-item class="query-form-item" label="功能名称:">
<el-input v-model="moduleQuery.name" placeholder="功能名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="moduleLoading" :data="moduleList" style="width: 100%" border @row-click="moduleClick" highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="功能名称" prop="name"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button type="text" @click.native="showFieldExpain(scope.row)">字段说明</el-button>
<el-button type="text" @click="jumpDl(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="moduleTotal>0"
:total="moduleTotal"
:page.sync="moduleQuery.page"
:limit.sync="moduleQuery.limit"
@pagination="getList"
/>
<el-table v-loading="loading" :data="list" style="width: 100%;margin-top: 50px" border>
<el-table-column label="序号" type="index" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="业务类型" prop="localActionName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="模板名称" width="200">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注字段1" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark1"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段2" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark2"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段3" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark3"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150" prop="price">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click="handleSave(scope.$index, scope.row)"
>保存
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
<div style="margin-top: 18px ; color: #F71616; font-size: 13px">
<span>重要提示本页功能仅供技术提供方修改&nbsp;</span>
</div>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="hideForm"
width="85%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" auto-complete="off" :disabled="false"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" rows=6></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>选择jasper模板</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="">
<el-upload
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jasper"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip">只能上传 jasper 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>所属模块</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="module">
<el-select v-model="formData.module" placeholder="所属模块">
<el-option
v-for="item in moduleNameList"
:key="item.idStr"
:label="item.name"
:value="item.idStr"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="submitUpload()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 模块选择模板 -->
<el-dialog
title="选择模板"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="moduleFormVisible"
:before-close="moduleHideForm"
width="70%"
top="5vh"
>
<el-form ref="singleTable">
<el-table v-loading="selectTemplateLoading" :data="selectTemplateList" style="width: 100%"
highlight-current-row
border
@current-change="moduleSelectHandleCurrentChange">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板名称" prop="name" width="200"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
</el-table>
<el-pagination
:page-size="selectTemplateQuery.limit"
@current-change="selectTemplateGetList"
layout="prev, pager, next"
:total="selectTemplateTotal"
:current-page="selectTemplateQuery.page"
>
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="moduleHideForm">取消</el-button>
<el-button
type="primary"
@click.native="moduleSubmitSelectTemplate()"
:loading="moduleFormLoading"
>确定
</el-button
>
</div>
</el-dialog>
<el-dialog
title="字段说明"
:visible.sync="centerDialogVisible"
width="40%"
center>
<span style="white-space: pre-wrap;">{{ currentRow }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="centerDialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
systemPDFTemplateList,
systemPDFTemplateSave,
systemPDFTemplateDeleteById,
systemPDFModuleList,
systemPDFModuleSave, updateDetailRel,
getSystemPDFModules, moduleDetail, updatePdfRelData, moduleBizDetail, moduleCodeDetail, updateCodeDetailRel
} from '@/api/system/systemPDFTemplate'
import {saveAs} from 'file-saver';
const formJson = {
id: "",
name: "",
type: "2",
module: "1",
param: "",
path: "",
rowCount: 10,
qrcodeCount: 1,
remark: "",
};
const moduleFormJson = {
id: "",
templateId: 0,
};
export default {
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
query: {
moduleId: null,
name: "",
page: 1,
limit: 20
},
headers: {},
list: [],
total: 0,
moduleQuery: {
name: "",
page: 1,
limit: 20
},
currentRow: null,
moduleList: [],
moduleNameList: [],
moduleTotal: 0,
selectTemplateQuery: {
busRlId: null,
name: "",
module: null,
page: 1,
limit: 10
},
centerDialogVisible: false,
selectTemplateList: [],
selectTemplateTotal: 0,
selectTemplateLoading: false,
moduleSelectQuery: {
name: "",
page: 1,
limit: 10
},
moduleSelectList: [],
moduleSelectTotal: 0,
loading: false,
index: null,
formName: null,
moduleFormName: null,
formMap: {
add: "新增",
update: "设置"
},
formLoading: false,
formVisible: false,
moduleFormLoading: false,
moduleFormVisible: false,
formData: formJson,
moduleFormData: moduleFormJson,
formRules: {
name: [
{required: true, message: "请输入模板名称", trigger: "blur"}
],
module: [
{required: true, message: "请选择所属模块", trigger: "blur"}
]
},
currentCheckIndex: -1,
deleteLoading: false,
uploadUrl: "",
fileList: [],
uploadDisabled: false,
moduleLoading: false,
moduleTypeMap: {0: "标签", 1: "报表", 2: "单据"},
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.moduleQuery = {
templateType: null,
moduleId: null,
name: "",
page: 1,
limit: 20
};
this.getModuleList();
},
onSubmit() {
this.getModuleList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleHandleCurrentChange(val) {
this.selectTemplateQuery.page = val;
this.selectTemplateGetList();
},
getList() {
// this.loading = true;
moduleCodeDetail(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleSubCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleClick(row) {
this.query = {
modelKey: row.modelKey,
page: 1,
limit: 20
};
this.getList();
},
handleDownload(url, name) {
this.getBlob(url).then(blob => {
saveAs(blob, name);
})
return false;
},
getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
})
},
jumpDl(row) {
this.handleDownload(this.BASE_URL + "/udiwms/donwload/printFile?fileName=" + row.templateDlUrl, row.name + ".jrxml");
},
getModuleList() {
this.moduleLoading = true;
this.moduleQuery.templateType=3
systemPDFModuleList(this.moduleQuery)
.then(response => {
this.moduleLoading = false;
this.moduleList = response.data.list || [];
this.moduleTotal = response.data.total || 0;
})
.catch(() => {
this.moduleLoading = false;
this.moduleList = [];
this.moduleTotal = 0;
});
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
//
hideForm() {
//
this.formVisible = !this.formVisible;
return true;
},
moduleHideForm() {
this.moduleFormVisible = !this.moduleFormVisible;
this.selectTemplateQuery.module = null;
return true;
},
moduleSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
name: "",
page: 1,
limit: 20
};
this.selectTemplateGetList();
},
busSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
busRlId: row.id,
type: 1,
name: "",
page: 1,
limit: 10
};
this.selectTemplateGetList();
},
selectTemplateGetList(val) {
this.selectTemplateLoading = true;
if (val != null) {
this.selectTemplateQuery.page = val;
}
systemPDFTemplateList(this.selectTemplateQuery)
.then(response => {
this.selectTemplateLoading = false;
this.selectTemplateList = response.data.list || [];
this.selectTemplateTotal = response.data.total || 0;
})
.catch(() => {
this.selectTemplateLoading = false;
this.selectTemplateList = [];
this.selectTemplateTotal = 0;
});
},
showFieldExpain(row) {
this.currentRow = row.fieldExplain.replace('\\\n', '<br>');
this.centerDialogVisible = true;
// const {href} = this.$router.resolve({//
// path: '/showText',
// query: {
// content: row.fieldExplain
// }
// })
// window.open(href, '_blank')
},
//
handleForm(index, row) {
this.formVisible = true;
this.formData = JSON.parse(JSON.stringify(formJson));
this.fileList = [];
if (row !== null) {
this.formData = Object.assign({}, row);
this.formData.module = row.module + "";
}
this.index = index;
this.formName = "update";
this.uploadDisabled = true;
},
handleAddForm(row) {
this.formVisible = true;
this.formData = {module: row.id + ""};
this.fileList = [];
this.formName = "add";
this.uploadDisabled = false;
},
templateConfig(row) {
},
submitUpload() {
if (this.$refs.upload.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`);
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.uploadDisabled) {
this.$refs.upload.submit();
} else {
this.submitTemplate();
}
}
});
},
uploadHandleRemove(file, fileList) {
},
uploadHandlePreview(file) {
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jasper") {
this.$message.error("上传文件只能是 jasper 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.formData.path = response.data.path;
this.submitTemplate();
} else {
this.$message.error("上传失败:" + response.message);
}
},
uploadHandleError() {
},
submitTemplate() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
let data = Object.assign({}, this.formData);
data.name = data.name.trim();
systemPDFTemplateSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
//
this.resetForm();
this.getList();
this.getModuleList();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteTemplate(row) {
this.$confirm("此操作将永久删除该模板, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
systemPDFTemplateDeleteById({id: row.id, path: row.path})
.then(response => {
if (response.code === 20000) {
this.$message.success(response.data);
//
this.resetForm();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
})
}).catch(() => {
});
},
moduleSelectSetCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
moduleSelectHandleCurrentChange(val) {
this.moduleFormData.templateId = val.id;
},
moduleSubmitSelectTemplate() {
this.moduleFormLoading = true;
let data = Object.assign({}, this.moduleFormData);
this.moduleFormName = 'update';
if (this.selectTemplateQuery.type == 1) {
let query = {
id: this.selectTemplateQuery.busRlId,
templateId: data.templateId,
}
updateCodeDetailRel(query)
.then(response => {
this.moduleFormVisible = false;
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.getList();
}).catch(() => {
this.moduleFormLoading = false;
});
} else
systemPDFModuleSave(data, this.moduleFormName)
.then(response => {
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.moduleFormVisible = false;
if (this.moduleFormName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.moduleList.unshift(data);
}
} else {
this.moduleList.splice(this.index, 1, data);
}
this.getModuleList();
})
.catch(() => {
this.moduleFormLoading = false;
});
},
handleEdit(index, row) {
this.currentCheckIndex = index;
},
handleSave(index, row) {
this.currentCheckIndex = -1;
updateCodeDetailRel(row).then((res) => {
if (res.code == 20000) {
this.$message.success(res.data);
}
})
},
},
filters: {
paramStatusFilterType(paramStatus) {
const paramStatusTypeMap = {
0: "gray",
1: "success"
};
return paramStatusTypeMap[paramStatus];
},
paramStatusFilterName(paramStatus) {
const paramStatusNameMap = {
1: "订单详情",
2: "配货管理-打印订单"
};
return paramStatusNameMap[paramStatus];
}
},
mounted() {
},
created() {
this.getModuleList();
this.uploadUrl = this.BASE_URL + "/udiwms/upload/pdf/template";
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
}
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -0,0 +1,758 @@
<template>
<div>
<el-form
:inline="true"
:model="moduleQuery"
class="query-form"
size="mini"
>
<el-row>
<el-form-item class="query-form-item" label="功能名称:">
<el-input v-model="moduleQuery.name" placeholder="功能名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="moduleLoading" :data="moduleList" style="width: 100%" border @row-click="moduleClick" highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="功能名称" prop="name"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button type="text" @click.native="showFieldExpain(scope.row)">字段说明</el-button>
<el-button type="text" @click="jumpDl(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="moduleTotal>0"
:total="moduleTotal"
:page.sync="moduleQuery.page"
:limit.sync="moduleQuery.limit"
@pagination="getList"
/>
<el-table v-loading="loading" :data="list" style="width: 100%;margin-top: 50px" border>
<el-table-column label="序号" type="index" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="功能名称" prop="localActionName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="模板名称" width="200">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注字段1" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark1"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段2" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark2"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段3" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark3"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150" prop="price">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click="handleSave(scope.$index, scope.row)"
>保存
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
<div style="margin-top: 18px ; color: #F71616; font-size: 13px">
<span>重要提示本页功能仅供技术提供方修改&nbsp;</span>
</div>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="hideForm"
width="85%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" auto-complete="off" :disabled="false"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" rows=6></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>选择jasper模板</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="">
<el-upload
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jasper"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip">只能上传 jasper 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>所属模块</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="module">
<el-select v-model="formData.module" placeholder="所属模块">
<el-option
v-for="item in moduleNameList"
:key="item.idStr"
:label="item.name"
:value="item.idStr"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="submitUpload()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 模块选择模板 -->
<el-dialog
title="选择模板"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="moduleFormVisible"
:before-close="moduleHideForm"
width="70%"
top="5vh"
>
<el-form ref="singleTable">
<el-table v-loading="selectTemplateLoading" :data="selectTemplateList" style="width: 100%"
highlight-current-row border
@current-change="moduleSelectHandleCurrentChange">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板名称" prop="name" width="200"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
</el-table>
<el-pagination
:page-size="selectTemplateQuery.limit"
@current-change="selectTemplateGetList"
layout="prev, pager, next"
:total="selectTemplateTotal"
:current-page="selectTemplateQuery.page"
>
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="moduleHideForm">取消</el-button>
<el-button
type="primary"
@click.native="moduleSubmitSelectTemplate()"
:loading="moduleFormLoading"
>确定
</el-button
>
</div>
</el-dialog>
<el-dialog
title="字段说明"
:visible.sync="centerDialogVisible"
width="40%"
center>
<span style="white-space: pre-wrap;">{{ currentRow }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="centerDialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
systemPDFTemplateList,
systemPDFTemplateSave,
systemPDFTemplateDeleteById,
systemPDFModuleList,
systemPDFModuleSave, updateDetailRel,
getSystemPDFModules, moduleDetail, updatePdfRelData, moduleBizDetail, updateLabelDetailRel, moduleLabelDetail
} from '@/api/system/systemPDFTemplate'
import {saveAs} from 'file-saver';
const formJson = {
id: "",
name: "",
type: "2",
module: "1",
param: "",
path: "",
rowCount: 10,
qrcodeCount: 1,
remark: "",
};
const moduleFormJson = {
id: "",
templateId: 0,
};
export default {
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
query: {
moduleId: null,
name: "",
page: 1,
limit: 20
},
headers: {},
list: [],
total: 0,
moduleQuery: {
name: "",
page: 1,
limit: 20
},
currentRow: null,
moduleList: [],
moduleNameList: [],
moduleTotal: 0,
selectTemplateQuery: {
busRlId: null,
name: "",
module: null,
page: 1,
limit: 10
},
centerDialogVisible: false,
selectTemplateList: [],
selectTemplateTotal: 0,
selectTemplateLoading: false,
moduleSelectQuery: {
name: "",
page: 1,
limit: 10
},
moduleSelectList: [],
moduleSelectTotal: 0,
loading: false,
index: null,
formName: null,
moduleFormName: null,
formMap: {
add: "新增",
update: "设置"
},
formLoading: false,
formVisible: false,
moduleFormLoading: false,
moduleFormVisible: false,
formData: formJson,
moduleFormData: moduleFormJson,
formRules: {
name: [
{required: true, message: "请输入模板名称", trigger: "blur"}
],
module: [
{required: true, message: "请选择所属模块", trigger: "blur"}
]
},
currentCheckIndex: -1,
deleteLoading: false,
uploadUrl: "",
fileList: [],
uploadDisabled: false,
moduleLoading: false,
moduleTypeMap: {0: "标签", 1: "报表", 2: "单据"},
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.moduleQuery = {
templateType: null,
moduleId: null,
name: "",
page: 1,
limit: 20
};
this.getModuleList();
},
onSubmit() {
this.getModuleList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleHandleCurrentChange(val) {
this.selectTemplateQuery.page = val;
this.selectTemplateGetList();
},
getList() {
// this.loading = true;
moduleLabelDetail(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleSubCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleClick(row) {
this.query = {
modelKey: row.modelKey,
page: 1,
limit: 20
};
this.getList();
},
handleDownload(url, name) {
this.getBlob(url).then(blob => {
saveAs(blob, name);
})
return false;
},
getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
})
},
jumpDl(row) {
this.handleDownload(this.BASE_URL + "/udiwms/donwload/printFile?fileName=" + row.templateDlUrl, row.name + ".jrxml");
},
getModuleList() {
this.moduleLoading = true;
this.moduleQuery.templateType=0
systemPDFModuleList(this.moduleQuery)
.then(response => {
this.moduleLoading = false;
this.moduleList = response.data.list || [];
this.moduleTotal = response.data.total || 0;
})
.catch(() => {
this.moduleLoading = false;
this.moduleList = [];
this.moduleTotal = 0;
});
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
//
hideForm() {
//
this.formVisible = !this.formVisible;
return true;
},
moduleHideForm() {
this.moduleFormVisible = !this.moduleFormVisible;
this.selectTemplateQuery.module = null;
return true;
},
moduleSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
name: "",
page: 1,
limit: 20
};
this.selectTemplateGetList();
},
busSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
busRlId: row.id,
type: 1,
name: "",
page: 1,
limit: 10
};
this.selectTemplateGetList();
},
selectTemplateGetList(val) {
this.selectTemplateLoading = true;
if (val != null) {
this.selectTemplateQuery.page = val;
}
systemPDFTemplateList(this.selectTemplateQuery)
.then(response => {
this.selectTemplateLoading = false;
this.selectTemplateList = response.data.list || [];
this.selectTemplateTotal = response.data.total || 0;
})
.catch(() => {
this.selectTemplateLoading = false;
this.selectTemplateList = [];
this.selectTemplateTotal = 0;
});
},
showFieldExpain(row) {
this.currentRow = row.fieldExplain.replace('\\\n', '<br>');
this.centerDialogVisible = true;
// const {href} = this.$router.resolve({//
// path: '/showText',
// query: {
// content: row.fieldExplain
// }
// })
// window.open(href, '_blank')
},
//
handleForm(index, row) {
this.formVisible = true;
this.formData = JSON.parse(JSON.stringify(formJson));
this.fileList = [];
if (row !== null) {
this.formData = Object.assign({}, row);
this.formData.module = row.module + "";
}
this.index = index;
this.formName = "update";
this.uploadDisabled = true;
},
handleAddForm(row) {
this.formVisible = true;
this.formData = {module: row.id + ""};
this.fileList = [];
this.formName = "add";
this.uploadDisabled = false;
},
templateConfig(row) {
},
submitUpload() {
if (this.$refs.upload.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`);
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.uploadDisabled) {
this.$refs.upload.submit();
} else {
this.submitTemplate();
}
}
});
},
uploadHandleRemove(file, fileList) {
},
uploadHandlePreview(file) {
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jasper") {
this.$message.error("上传文件只能是 jasper 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.formData.path = response.data.path;
this.submitTemplate();
} else {
this.$message.error("上传失败:" + response.message);
}
},
uploadHandleError() {
},
submitTemplate() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
let data = Object.assign({}, this.formData);
data.name = data.name.trim();
systemPDFTemplateSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
//
this.resetForm();
this.getList();
this.getModuleList();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteTemplate(row) {
this.$confirm("此操作将永久删除该模板, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
systemPDFTemplateDeleteById({id: row.id, path: row.path})
.then(response => {
if (response.code === 20000) {
this.$message.success(response.data);
//
this.resetForm();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
})
}).catch(() => {
});
},
moduleSelectSetCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
moduleSelectHandleCurrentChange(val) {
this.moduleFormData.templateId = val.id;
},
moduleSubmitSelectTemplate() {
this.moduleFormLoading = true;
let data = Object.assign({}, this.moduleFormData);
this.moduleFormName = 'update';
if (this.selectTemplateQuery.type == 1) {
let query = {
id: this.selectTemplateQuery.busRlId,
templateId: data.templateId,
}
updateLabelDetailRel(query)
.then(response => {
this.moduleFormVisible = false;
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.getList();
}).catch(() => {
this.moduleFormLoading = false;
});
} else
systemPDFModuleSave(data, this.moduleFormName)
.then(response => {
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.moduleFormVisible = false;
if (this.moduleFormName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.moduleList.unshift(data);
}
} else {
this.moduleList.splice(this.index, 1, data);
}
this.getModuleList();
})
.catch(() => {
this.moduleFormLoading = false;
});
},
handleEdit(index, row) {
this.currentCheckIndex = index;
},
handleSave(index, row) {
this.currentCheckIndex = -1;
updateDetailRel(row).then((res) => {
if (res.code == 20000) {
this.$message.success(res.data);
}
})
},
},
filters: {
paramStatusFilterType(paramStatus) {
const paramStatusTypeMap = {
0: "gray",
1: "success"
};
return paramStatusTypeMap[paramStatus];
},
paramStatusFilterName(paramStatus) {
const paramStatusNameMap = {
1: "订单详情",
2: "配货管理-打印订单"
};
return paramStatusNameMap[paramStatus];
}
},
mounted() {
},
created() {
this.getModuleList();
this.uploadUrl = this.BASE_URL + "/udiwms/upload/pdf/template";
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
}
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -1,418 +1,39 @@
<template> <template>
<div> <div>
<el-card class="el-card"> <el-card class="el-card">
<el-form <el-tabs type="border-card">
:inline="true" <el-tab-pane label="业务单模板">
:model="moduleQuery" <!----------------------------------------------------------- 业务模板代码 ------------------------------------------------------>
class="query-form" <bizModelDetail></bizModelDetail>
size="mini" </el-tab-pane>
> <el-tab-pane label="扫码单据模板">
<el-row> <!----------------------------------------------------------- 扫码单据模板代码 ------------------------------------------------------>
<el-form-item class="query-form-item" label="功能名称:"> <codeModelDetail></codeModelDetail>
<el-input v-model="moduleQuery.name" placeholder="功能名称"></el-input> </el-tab-pane>
</el-form-item> <el-tab-pane label="标签模板" >
<el-form-item> <!----------------------------------------------------------- 标签模板代码 ------------------------------------------------------>
<el-button-group> <labelModelDetail></labelModelDetail>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button> </el-tab-pane>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button> <el-tab-pane label="报表模板">
</el-button-group> <!----------------------------------------------------------- 报表模板代码 ------------------------------------------------------>
</el-form-item> <statemenModelDetail></statemenModelDetail>
</el-row> </el-tab-pane>
</el-form> </el-tabs>
<el-table v-loading="moduleLoading" :data="moduleList" style="width: 100%" border
@row-click="moduleClick" highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板类型" width="150" prop="templateType">
<template slot-scope="scope">
{{ moduleTypeMap[scope.row.templateType] }}
</template>
</el-table-column>
<el-table-column label="功能名称" prop="name"></el-table-column>
<el-table-column label="模板名称" width="250">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="text"
:disabled="scope.row.templateType == 2"
@click.native.stop="moduleSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="text"
:disabled="scope.row.templateType == 2"
@click.native.stop="moduleSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button
type="text"
@click.native="showFieldExpain(scope.row)"
>字段说明
</el-button
>
<el-button
type="text"
@click="jumpDl(scope.row)"
>初始模板下载
</el-button
>
</template>
</el-table-column>
</el-table>
<!-- <el-pagination-->
<!-- :page-size="moduleQuery.limit"-->
<!-- @current-change="moduleHandleCurrentChange"-->
<!-- layout="prev, pager, next"-->
<!-- :total="moduleTotal"-->
<!-- :current-page="moduleQuery.page"-->
<!-- >-->
<!-- </el-pagination>-->
<pagination
v-show="moduleTotal>0"
:total="moduleTotal"
:page.sync="moduleQuery.page"
:limit.sync="moduleQuery.limit"
@pagination="getList"
/>
</el-card> </el-card>
<el-card class="el-card" style="margin-top: 10px">
<el-table v-loading="loading" :data="list" style="width: 100%" border>
<el-table-column label="序号" type="index" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="业务类型" prop="localActionName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="模板名称" width="200">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注字段1" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark1"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段2" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark2"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段3" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark3"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="打印方式" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-select v-model="scope.row.printType" placeholder="打印方式">
<el-option label="批次号" :value=0></el-option>
<el-option label="条码清单" :value=1></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="操作" width="150" prop="price">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click="handleSave(scope.$index, scope.row)"
>保存
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="接口参数设置"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="modifyDetailDialogVisible"
width="70%"
v-if="modifyDetailDialogVisible"
>
<modifyDetailDialog :inputDetailQuery="inputDetailQuery"></modifyDetailDialog>
<div style="text-align: center">
<el-button type="primary" size="small" icon="search" @click="onDetailModifySubmit"
>提交
</el-button
>
<el-button type="primary" size="small" icon="search" @click="cancelDialog"
>取消
</el-button
>
</div>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
<div style="margin-top: 18px ; color: #F71616; font-size: 13px">
<span>重要提示本页功能仅供技术提供方修改&nbsp;</span>
</div>
</el-card>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="hideForm"
width="85%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" auto-complete="off" :disabled="false"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" rows=6></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>选择jasper模板</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="">
<el-upload
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jasper"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip">只能上传 jasper 文件且不超过 2 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>所属模块</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="module">
<el-select v-model="formData.module" placeholder="所属模块">
<el-option
v-for="item in moduleNameList"
:key="item.idStr"
:label="item.name"
:value="item.idStr"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="submitUpload()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 模块选择模板 -->
<el-dialog
title="选择模板"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="moduleFormVisible"
:before-close="moduleHideForm"
width="70%"
top="5vh"
>
<el-form ref="singleTable">
<el-table v-loading="selectTemplateLoading" :data="selectTemplateList" style="width: 100%"
highlight-current-row
@current-change="moduleSelectHandleCurrentChange">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板名称" prop="name" width="200"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
</el-table>
<el-pagination
:page-size="selectTemplateQuery.limit"
@current-change="selectTemplateGetList"
layout="prev, pager, next"
:total="selectTemplateTotal"
:current-page="selectTemplateQuery.page"
>
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="moduleHideForm">取消</el-button>
<el-button
type="primary"
@click.native="moduleSubmitSelectTemplate()"
:loading="moduleFormLoading"
>确定
</el-button
>
</div>
</el-dialog>
<el-dialog
title="字段说明"
:visible.sync="centerDialogVisible"
width="40%"
center>
<span style="white-space: pre-wrap;">{{ currentRow }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="centerDialogVisible = false"> </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import codeModelDetail from "@/views/system/print/pdfCodePrintSet"
systemPDFTemplateList, import bizModelDetail from "@/views/system/print/pdfBizPrintSet"
systemPDFTemplateSave, import labelModelDetail from "@/views/system/print/pdfLabelPrintSet"
systemPDFTemplateDeleteById, import statemenModelDetail from "@/views/system/print/pdfStatementPrintSet"
systemPDFModuleList,
systemPDFModuleSave, updateDetailRel,
getSystemPDFModules, moduleDetail, updatePdfRelData
} from "@/api/system/systemPDFTemplate";
import {saveAs} from 'file-saver';
const formJson = {
id: "",
name: "",
type: "2",
module: "1",
param: "",
path: "",
rowCount: 10,
qrcodeCount: 1,
remark: "",
};
const moduleFormJson = {
id: "",
templateId: 0,
};
export default { export default {
data() { data() {
return { return {
BASE_URL: process.env.VUE_APP_BASE_API, BASE_URL: process.env.VUE_APP_BASE_API,
query: { }
templateType: null,
moduleId: null,
name: "",
page: 1,
limit: 20
},
headers: {},
list: [],
total: 0,
moduleQuery: {
name: "",
page: 1,
limit: 20
},
currentRow: null,
moduleList: [],
moduleNameList: [],
moduleTotal: 0,
selectTemplateQuery: {
busRlId: null,
name: "",
module: null,
page: 1,
limit: 10
},
centerDialogVisible: false,
selectTemplateList: [],
selectTemplateTotal: 0,
selectTemplateLoading: false,
moduleSelectQuery: {
name: "",
page: 1,
limit: 10
},
moduleSelectList: [],
moduleSelectTotal: 0,
loading: false,
index: null,
formName: null,
moduleFormName: null,
formMap: {
add: "新增",
update: "设置"
},
formLoading: false,
formVisible: false,
moduleFormLoading: false,
moduleFormVisible: false,
formData: formJson,
moduleFormData: moduleFormJson,
formRules: {
name: [
{required: true, message: "请输入模板名称", trigger: "blur"}
],
module: [
{required: true, message: "请选择所属模块", trigger: "blur"}
]
},
currentCheckIndex: -1,
deleteLoading: false,
uploadUrl: "",
fileList: [],
uploadDisabled: false,
moduleLoading: false,
moduleTypeMap: {0: "标签", 1: "报表", 2: "单据"},
};
}, },
methods: { methods: {
onReset() { onReset() {
@ -428,418 +49,15 @@ export default {
}; };
this.getModuleList(); this.getModuleList();
}, },
onSubmit() {
this.getModuleList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleHandleCurrentChange(val) {
this.selectTemplateQuery.page = val;
this.selectTemplateGetList();
},
getList() {
// this.loading = true;
moduleDetail(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleSubCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleClick(row) {
this.query = {
templateType: row.templateType,
moduleId: row.id,
page: 1,
limit: 20
};
this.getList();
},
handleDownload(url, name) {
this.getBlob(url).then(blob => {
saveAs(blob, name);
})
return false;
},
getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
})
},
jumpDl(row) {
this.handleDownload(BASE_URL + "/udiwms/donwload/file?fileName=" + row.templateDlUrl, row.name + ".jrxml");
},
getModuleList() {
this.moduleLoading = true;
systemPDFModuleList(this.moduleQuery)
.then(response => {
this.moduleLoading = false;
this.moduleList = response.data.list || [];
this.moduleTotal = response.data.total || 0;
})
.catch(() => {
this.moduleLoading = false;
this.moduleList = [];
this.moduleTotal = 0;
});
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
//
hideForm() {
//
this.formVisible = !this.formVisible;
return true;
},
moduleHideForm() {
this.moduleFormVisible = !this.moduleFormVisible;
this.selectTemplateQuery.module = null;
return true;
},
moduleSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
name: "",
page: 1,
limit: 20
};
this.selectTemplateGetList();
},
busSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
busRlId: row.id,
type: 1,
name: "",
page: 1,
limit: 10
};
this.selectTemplateGetList();
},
selectTemplateGetList(val) {
this.selectTemplateLoading = true;
if (val != null) {
this.selectTemplateQuery.page = val;
}
systemPDFTemplateList(this.selectTemplateQuery)
.then(response => {
this.selectTemplateLoading = false;
this.selectTemplateList = response.data.list || [];
this.selectTemplateTotal = response.data.total || 0;
})
.catch(() => {
this.selectTemplateLoading = false;
this.selectTemplateList = [];
this.selectTemplateTotal = 0;
});
},
showFieldExpain(row) {
this.currentRow = row.fieldExplain.replace('\\\n', '<br>');
this.centerDialogVisible = true;
// const {href} = this.$router.resolve({//
// path: '/showText',
// query: {
// content: row.fieldExplain
// }
// })
// window.open(href, '_blank')
},
//
handleForm(index, row) {
this.formVisible = true;
this.formData = JSON.parse(JSON.stringify(formJson));
this.fileList = [];
if (row !== null) {
this.formData = Object.assign({}, row);
this.formData.module = row.module + "";
}
this.index = index;
this.formName = "update";
this.uploadDisabled = true;
},
handleAddForm(row) {
this.formVisible = true;
this.formData = {module: row.id + ""};
this.fileList = [];
this.formName = "add";
this.uploadDisabled = false;
},
templateConfig(row) {
},
submitUpload() {
if (this.$refs.upload.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`);
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.uploadDisabled) {
this.$refs.upload.submit();
} else {
this.submitTemplate();
}
}
});
},
uploadHandleRemove(file, fileList) {
},
uploadHandlePreview(file) {
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jasper") {
this.$message.error("上传文件只能是 jasper 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 2 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 2MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.formData.path = response.data.path;
this.submitTemplate();
} else {
this.$message.error("上传失败:" + response.message);
}
},
uploadHandleError() {
},
submitTemplate() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
let data = Object.assign({}, this.formData);
data.name = data.name.trim();
systemPDFTemplateSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
//
this.resetForm();
this.getList();
this.getModuleList();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteTemplate(row) {
this.$confirm("此操作将永久删除该模板, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
systemPDFTemplateDeleteById({id: row.id, path: row.path})
.then(response => {
if (response.code === 20000) {
this.$message.success(response.data);
//
this.resetForm();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
})
}).catch(() => {
});
},
moduleSelectSetCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
moduleSelectHandleCurrentChange(val) {
this.moduleFormData.templateId = val.id;
},
moduleSubmitSelectTemplate() {
this.moduleFormLoading = true;
let data = Object.assign({}, this.moduleFormData);
this.moduleFormName = 'update';
if (this.selectTemplateQuery.type == 1) {
let query = {
id: this.selectTemplateQuery.busRlId,
templateId: data.templateId,
}
updateDetailRel(query)
.then(response => {
this.moduleFormVisible = false;
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.getList();
}).catch(() => {
this.moduleFormLoading = false;
});
} else
systemPDFModuleSave(data, this.moduleFormName)
.then(response => {
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.moduleFormVisible = false;
if (this.moduleFormName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.moduleList.unshift(data);
}
} else {
this.moduleList.splice(this.index, 1, data);
}
this.getModuleList();
})
.catch(() => {
this.moduleFormLoading = false;
});
},
getPDFModuleNameList() {
getSystemPDFModules()
.then((response) => {
this.moduleNameList = response.data.list;
this.moduleNameMap = {};
this.moduleNameList.forEach((obj, index) => {
this.moduleNameMap[obj.id] = obj.name;
});
})
.catch(() => {
});
},
handleEdit(index, row) {
this.currentCheckIndex = index;
},
handleSave(index, row) {
this.currentCheckIndex = -1;
updateDetailRel(row).then((res) => {
if (res.code == 20000) {
this.$message.success(res.data);
}
})
},
}, },
filters: { filters: {
paramStatusFilterType(paramStatus) {
const paramStatusTypeMap = {
0: "gray",
1: "success"
};
return paramStatusTypeMap[paramStatus];
},
paramStatusFilterName(paramStatus) {
const paramStatusNameMap = {
1: "订单详情",
2: "配货管理-打印订单"
};
return paramStatusNameMap[paramStatus];
}
}, },
mounted() { mounted() {
}, },
created() { components: {
this.getPDFModuleNameList(); codeModelDetail,bizModelDetail,labelModelDetail,statemenModelDetail
this.getModuleList(); },
this.uploadUrl = BASE_URL + "/udiwms/upload/pdf/template";
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
}
}; };
</script> </script>

@ -0,0 +1,758 @@
<template>
<div>
<el-form
:inline="true"
:model="moduleQuery"
class="query-form"
size="mini"
>
<el-row>
<el-form-item class="query-form-item" label="功能名称:">
<el-input v-model="moduleQuery.name" placeholder="功能名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table v-loading="moduleLoading" :data="moduleList" style="width: 100%" border @row-click="moduleClick" highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="功能名称" prop="name"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<el-button type="text" @click.native="showFieldExpain(scope.row)">字段说明</el-button>
<el-button type="text" @click="jumpDl(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="moduleTotal>0"
:total="moduleTotal"
:page.sync="moduleQuery.page"
:limit.sync="moduleQuery.limit"
@pagination="getList"
/>
<el-table v-loading="loading" :data="list" style="width: 100%;margin-top: 50px" border>
<el-table-column label="序号" type="index" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="功能名称" prop="localActionName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="模板名称" width="200">
<template slot-scope="scope">
<p v-if="scope.row.templateName === null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>选择模板
</el-button
>
</p>
<p v-if="scope.row.templateName !== null">
<el-button
type="primary"
size="mini"
@click.native.stop="busSelectTemplate(scope.row)"
>{{ scope.row.templateName }}
</el-button
>
</p>
</template>
</el-table-column>
<el-table-column label="备注字段1" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark1"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段2" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark2"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="备注字段3" prop="remark1" show-overflow-tooltip="true">
<template slot-scope="scope">
<el-input :disabled="scope.$index !== currentCheckIndex" v-model="scope.row.remark3"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150" prop="price">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click="handleSave(scope.$index, scope.row)"
>保存
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
<div style="margin-top: 18px ; color: #F71616; font-size: 13px">
<span>重要提示本页功能仅供技术提供方修改&nbsp;</span>
</div>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="hideForm"
width="85%"
top="5vh"
>
<el-form :model="formData" :rules="formRules" ref="dataForm">
<el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" auto-complete="off" :disabled="false"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" rows=6></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>选择jasper模板</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="">
<el-upload
class="upload-demo"
ref="upload"
:action="this.uploadUrl"
:on-preview="uploadHandlePreview"
:on-remove="uploadHandleRemove"
:limit="1"
:headers="headers"
:on-exceed="uploadHandleExceed"
accept=".jasper"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip">只能上传 jasper 文件且不超过 10 MB</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="2">
<div class="ao-text">
<span>所属模块</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="module">
<el-select v-model="formData.module" placeholder="所属模块">
<el-option
v-for="item in moduleNameList"
:key="item.idStr"
:label="item.name"
:value="item.idStr"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
<el-button
type="primary"
@click.native="submitUpload()"
:loading="formLoading"
>提交
</el-button
>
</div>
</el-dialog>
<!-- 模块选择模板 -->
<el-dialog
title="选择模板"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="moduleFormVisible"
:before-close="moduleHideForm"
width="70%"
top="5vh"
>
<el-form ref="singleTable">
<el-table v-loading="selectTemplateLoading" :data="selectTemplateList" style="width: 100%"
highlight-current-row border
@current-change="moduleSelectHandleCurrentChange">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="模板名称" prop="name" width="200"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
</el-table>
<el-pagination
:page-size="selectTemplateQuery.limit"
@current-change="selectTemplateGetList"
layout="prev, pager, next"
:total="selectTemplateTotal"
:current-page="selectTemplateQuery.page"
>
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="moduleHideForm">取消</el-button>
<el-button
type="primary"
@click.native="moduleSubmitSelectTemplate()"
:loading="moduleFormLoading"
>确定
</el-button
>
</div>
</el-dialog>
<el-dialog
title="字段说明"
:visible.sync="centerDialogVisible"
width="40%"
center>
<span style="white-space: pre-wrap;">{{ currentRow }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="centerDialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
systemPDFTemplateList,
systemPDFTemplateSave,
systemPDFTemplateDeleteById,
systemPDFModuleList,
systemPDFModuleSave, updateDetailRel,
getSystemPDFModules, moduleDetail, updatePdfRelData, moduleBizDetail, moduleStatementDetail, updateStatementDetailRel
} from '@/api/system/systemPDFTemplate'
import {saveAs} from 'file-saver';
const formJson = {
id: "",
name: "",
type: "2",
module: "1",
param: "",
path: "",
rowCount: 10,
qrcodeCount: 1,
remark: "",
};
const moduleFormJson = {
id: "",
templateId: 0,
};
export default {
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
query: {
moduleId: null,
name: "",
page: 1,
limit: 20
},
headers: {},
list: [],
total: 0,
moduleQuery: {
name: "",
page: 1,
limit: 20
},
currentRow: null,
moduleList: [],
moduleNameList: [],
moduleTotal: 0,
selectTemplateQuery: {
busRlId: null,
name: "",
module: null,
page: 1,
limit: 10
},
centerDialogVisible: false,
selectTemplateList: [],
selectTemplateTotal: 0,
selectTemplateLoading: false,
moduleSelectQuery: {
name: "",
page: 1,
limit: 10
},
moduleSelectList: [],
moduleSelectTotal: 0,
loading: false,
index: null,
formName: null,
moduleFormName: null,
formMap: {
add: "新增",
update: "设置"
},
formLoading: false,
formVisible: false,
moduleFormLoading: false,
moduleFormVisible: false,
formData: formJson,
moduleFormData: moduleFormJson,
formRules: {
name: [
{required: true, message: "请输入模板名称", trigger: "blur"}
],
module: [
{required: true, message: "请选择所属模块", trigger: "blur"}
]
},
currentCheckIndex: -1,
deleteLoading: false,
uploadUrl: "",
fileList: [],
uploadDisabled: false,
moduleLoading: false,
moduleTypeMap: {0: "标签", 1: "报表", 2: "单据"},
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.moduleQuery = {
templateType: null,
moduleId: null,
name: "",
page: 1,
limit: 20
};
this.getModuleList();
},
onSubmit() {
this.getModuleList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleHandleCurrentChange(val) {
this.selectTemplateQuery.page = val;
this.selectTemplateGetList();
},
getList() {
// this.loading = true;
moduleStatementDetail(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleSubCurrentChange(val) {
this.query.page = val;
this.getList();
},
moduleClick(row) {
this.query = {
modelKey: row.modelKey,
page: 1,
limit: 20
};
this.getList();
},
handleDownload(url, name) {
this.getBlob(url).then(blob => {
saveAs(blob, name);
})
return false;
},
getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
})
},
jumpDl(row) {
this.handleDownload(this.BASE_URL + "/udiwms/donwload/printFile?fileName=" + row.templateDlUrl, row.name + ".jrxml");
},
getModuleList() {
this.moduleLoading = true;
this.moduleQuery.templateType=1
systemPDFModuleList(this.moduleQuery)
.then(response => {
this.moduleLoading = false;
this.moduleList = response.data.list || [];
this.moduleTotal = response.data.total || 0;
})
.catch(() => {
this.moduleLoading = false;
this.moduleList = [];
this.moduleTotal = 0;
});
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
//
this.$refs["dataForm"].resetFields();
this.getList();
}
},
//
hideForm() {
//
this.formVisible = !this.formVisible;
return true;
},
moduleHideForm() {
this.moduleFormVisible = !this.moduleFormVisible;
this.selectTemplateQuery.module = null;
return true;
},
moduleSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
name: "",
page: 1,
limit: 20
};
this.selectTemplateGetList();
},
busSelectTemplate(row) {
this.moduleFormData = {
id: row.id,
templateId: row.templateId,
};
this.moduleFormVisible = true;
this.selectTemplateQuery = {
module: row.templateType,
busRlId: row.id,
type: 1,
name: "",
page: 1,
limit: 10
};
this.selectTemplateGetList();
},
selectTemplateGetList(val) {
this.selectTemplateLoading = true;
if (val != null) {
this.selectTemplateQuery.page = val;
}
systemPDFTemplateList(this.selectTemplateQuery)
.then(response => {
this.selectTemplateLoading = false;
this.selectTemplateList = response.data.list || [];
this.selectTemplateTotal = response.data.total || 0;
})
.catch(() => {
this.selectTemplateLoading = false;
this.selectTemplateList = [];
this.selectTemplateTotal = 0;
});
},
showFieldExpain(row) {
this.currentRow = row.fieldExplain.replace('\\\n', '<br>');
this.centerDialogVisible = true;
// const {href} = this.$router.resolve({//
// path: '/showText',
// query: {
// content: row.fieldExplain
// }
// })
// window.open(href, '_blank')
},
//
handleForm(index, row) {
this.formVisible = true;
this.formData = JSON.parse(JSON.stringify(formJson));
this.fileList = [];
if (row !== null) {
this.formData = Object.assign({}, row);
this.formData.module = row.module + "";
}
this.index = index;
this.formName = "update";
this.uploadDisabled = true;
},
handleAddForm(row) {
this.formVisible = true;
this.formData = {module: row.id + ""};
this.fileList = [];
this.formName = "add";
this.uploadDisabled = false;
},
templateConfig(row) {
},
submitUpload() {
if (this.$refs.upload.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`);
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.uploadDisabled) {
this.$refs.upload.submit();
} else {
this.submitTemplate();
}
}
});
},
uploadHandleRemove(file, fileList) {
},
uploadHandlePreview(file) {
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jasper") {
this.$message.error("上传文件只能是 jasper 格式");
for (let i = 0; i < fileList.length; i++) {//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
return;
}
//
const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
}
}
}
return isLt;
},
uploadHandleSuccess(response, file, fileList) {
if (response.code === 20000) {
this.formData.path = response.data.path;
this.submitTemplate();
} else {
this.$message.error("上传失败:" + response.message);
}
},
uploadHandleError() {
},
submitTemplate() {
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
let data = Object.assign({}, this.formData);
data.name = data.name.trim();
systemPDFTemplateSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
//
this.resetForm();
this.getList();
this.getModuleList();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteTemplate(row) {
this.$confirm("此操作将永久删除该模板, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
systemPDFTemplateDeleteById({id: row.id, path: row.path})
.then(response => {
if (response.code === 20000) {
this.$message.success(response.data);
//
this.resetForm();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
})
}).catch(() => {
});
},
moduleSelectSetCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
moduleSelectHandleCurrentChange(val) {
this.moduleFormData.templateId = val.id;
},
moduleSubmitSelectTemplate() {
this.moduleFormLoading = true;
let data = Object.assign({}, this.moduleFormData);
this.moduleFormName = 'update';
if (this.selectTemplateQuery.type == 1) {
let query = {
id: this.selectTemplateQuery.busRlId,
templateId: data.templateId,
}
updateStatementDetailRel(query)
.then(response => {
this.moduleFormVisible = false;
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.getList();
}).catch(() => {
this.moduleFormLoading = false;
});
} else
systemPDFModuleSave(data, this.moduleFormName)
.then(response => {
this.moduleFormLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.moduleFormVisible = false;
if (this.moduleFormName === "add") {
//
if (response.data && response.data.id) {
data.id = response.data.id;
this.moduleList.unshift(data);
}
} else {
this.moduleList.splice(this.index, 1, data);
}
this.getModuleList();
})
.catch(() => {
this.moduleFormLoading = false;
});
},
handleEdit(index, row) {
this.currentCheckIndex = index;
},
handleSave(index, row) {
this.currentCheckIndex = -1;
updateDetailRel(row).then((res) => {
if (res.code == 20000) {
this.$message.success(res.data);
}
})
},
},
filters: {
paramStatusFilterType(paramStatus) {
const paramStatusTypeMap = {
0: "gray",
1: "success"
};
return paramStatusTypeMap[paramStatus];
},
paramStatusFilterName(paramStatus) {
const paramStatusNameMap = {
1: "订单详情",
2: "配货管理-打印订单"
};
return paramStatusNameMap[paramStatus];
}
},
mounted() {
},
created() {
this.getModuleList();
this.uploadUrl = this.BASE_URL + "/udiwms/upload/pdf/template";
this.headers = {
ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token,
};
}
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -9,7 +9,7 @@
> >
<el-row> <el-row>
<el-form-item class="query-form-item" label="模板名称:"> <el-form-item class="query-form-item" label="模板名称:">
<el-input v-model="query.name" placeholder="模板名称" style="width: 100%"></el-input> <el-input v-model="query.name" placeholder="模板名称" style="width: 100%" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item class="query-form-item" label="模板类型:"> <el-form-item class="query-form-item" label="模板类型:">
<el-select v-model="query.module" placeholder="模板类型"> <el-select v-model="query.module" placeholder="模板类型">
@ -36,7 +36,7 @@
{{ moduleNameMap[scope.row.module] }} {{ moduleNameMap[scope.row.module] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" prop="update_time"></el-table-column> <!-- <el-table-column label="更新时间" prop="update_time"></el-table-column>-->
<!-- <el-table-column label="表格行数" prop="rowCount" width="100"></el-table-column>--> <!-- <el-table-column label="表格行数" prop="rowCount" width="100"></el-table-column>-->
<!-- <el-table-column label="二维码数量" prop="qrcodeCount" width="125"></el-table-column>--> <!-- <el-table-column label="二维码数量" prop="qrcodeCount" width="125"></el-table-column>-->
@ -102,8 +102,8 @@
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="22" class="el-col" type="flex"> <el-col :span="22" class="el-col" type="flex">
<el-form-item prop="module" label="模板类型:" label-width="100px"> <el-form-item prop="module" label="模板类型:" label-width="100px">
<el-select v-model="formData.module" placeholder="模板类型" style="width: 100%"> <el-select v-model="formData.module" @change="isCleck" placeholder="模板类型" style="width: 100%" >
<el-option label="标签" value="0"></el-option> <el-option label="标签" value="0" ></el-option>
<el-option label="报表" value="1"></el-option> <el-option label="报表" value="1"></el-option>
<el-option label="单据" value="2"></el-option> <el-option label="单据" value="2"></el-option>
</el-select> </el-select>
@ -111,6 +111,30 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- <el-row :gutter="20" class="el-row" type="flex" v-show="formData.module==2">-->
<!-- <el-col :span="22" class="el-col" type="flex">-->
<!-- <el-form-item prop="bussinessType" label="单据类型:" label-width="100px">-->
<!-- <el-radio-group v-model="formData.bussinessType">-->
<!-- <el-radio :label=1>业务单</el-radio>-->
<!-- <el-radio :label=2>出入库单</el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row :gutter="20" class="el-row" type="flex" v-show="formData.module==2">-->
<!-- <el-col :span="22" class="el-col" type="flex">-->
<!-- <el-form-item prop="bussinessStatus" label="单据状态:" label-width="100px">-->
<!-- <el-checkbox-group v-model="formData.bussinessStatusList">-->
<!-- <el-checkbox label=3>待校验</el-checkbox>-->
<!-- <el-checkbox label=5>待核对</el-checkbox>-->
<!-- <el-checkbox label=10>待审核</el-checkbox>-->
<!-- <el-checkbox label=7>已审核</el-checkbox>-->
<!-- </el-checkbox-group>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="22"> <el-col :span="22">
@ -133,7 +157,7 @@
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件 <el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button> </el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>--> <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"></el-button>-->
<div slot="tip" class="el-upload__tip" v-if="formData.path==''"> jasper 2 <div slot="tip" class="el-upload__tip" v-if="formData.path==''"> jasper 10
MB MB
</div> </div>
<div slot="tip" class="el-upload__tip">{{ formData.path }}</div> <div slot="tip" class="el-upload__tip">{{ formData.path }}</div>
@ -160,7 +184,7 @@
<el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件 <el-button slot="trigger" size="small" type="primary" :disabled="uploadDisabled">选取文件
</el-button> </el-button>
<div slot="tip" class="el-upload__tip" v-if="formData.jrxmlPath==null"> jrxml <div slot="tip" class="el-upload__tip" v-if="formData.jrxmlPath==null"> jrxml
文件且不超过 2 MB 文件且不超过 10 MB
</div> </div>
<div slot="tip" class="el-upload__tip">{{ formData.jrxmlPath }}</div> <div slot="tip" class="el-upload__tip">{{ formData.jrxmlPath }}</div>
</el-upload> </el-upload>
@ -268,6 +292,8 @@ const formJson = {
rowCount: 10, rowCount: 10,
qrcodeCount: 1, qrcodeCount: 1,
remark: "", remark: "",
bussinessType:null,
bussinessStatusList:[],
}; };
const moduleFormJson = { const moduleFormJson = {
id: "", id: "",
@ -364,6 +390,12 @@ export default {
}; };
this.getList(); this.getList();
}, },
isCleck(){
if(this.formData.module!="2"){
this.formData.bussinessStatusList=[];
this.formData.bussinessType=null;
}
},
onSubmit() { onSubmit() {
this.query.page = 1; this.query.page = 1;
this.getList(); this.getList();
@ -561,9 +593,11 @@ export default {
submitUpload() { submitUpload() {
if (this.$refs.uploadJasper.uploadFiles.length < 1 && !this.uploadDisabled) { if (this.$refs.uploadJasper.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`); this.$message.warning(`请选择jasper文件`);
return
} }
if (this.$refs.uploadJrxml.uploadFiles.length < 1 && !this.uploadDisabled) { if (this.$refs.uploadJrxml.uploadFiles.length < 1 && !this.uploadDisabled) {
this.$message.warning(`请选择jasper文件`); this.$message.warning(`请选择jasper文件`);
return
} }
console.log(this.formName) console.log(this.formName)
this.$refs["dataForm"].validate(valid => { this.$refs["dataForm"].validate(valid => {
@ -590,9 +624,9 @@ export default {
return; return;
} }
// //
const isLt = file.size / 1024 / 1024 / 2 <= 1; const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) { if (!isLt) {
this.$message.error("上传文件大小不能超过 2MB"); this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) { for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) { if (fileList[i].uid === uid) {
fileList.splice(i, 1) fileList.splice(i, 1)
@ -629,9 +663,9 @@ export default {
return; return;
} }
// //
const isLt = file.size / 1024 / 1024 / 2 <= 1; const isLt = file.size / 1024 / 1024 / 30 <= 1;
if (!isLt) { if (!isLt) {
this.$message.error("上传文件大小不能超过 2MB"); this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) { for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) { if (fileList[i].uid === uid) {
fileList.splice(i, 1) fileList.splice(i, 1)

Loading…
Cancel
Save