first commit
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<el-row type="flex">
|
||||
<el-input v-model="pageForm.templateCode" maxlength="50" style="width: 400px" clearable placeholder="请输入模板代码"></el-input>
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary" class="ml10">搜索</el-button>
|
||||
<el-button type="primary" @click="openAdd" style="margin-left: auto">新增模板</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table :data="tableData" border class="mt10" stripe ref="table" :height="tableHeight" id="officeTable">
|
||||
<el-table-column label="序号" type="index" :index="indexMethod" width="70px"></el-table-column>
|
||||
<el-table-column label="模板代码" prop="templateCode"></el-table-column>
|
||||
<el-table-column label="模板名称" prop="templateName"></el-table-column>
|
||||
<el-table-column label="模板路径" prop="templatePath" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="模板说明" prop="templateDesc"></el-table-column>
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="download(row.templatePath)">下载</el-button>
|
||||
<el-button size="mini" type="primary" @click="preview(row)">预览</el-button>
|
||||
<el-button size="mini" type="primary" @click="openEdit(row)">编辑</el-button>
|
||||
<el-button size="mini" type="danger" @click="doDelete(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<el-dialog title="模板" :visible.sync="dialogVisible" :close-on-click-modal="false" width="800px">
|
||||
<el-form :model="formData" ref="ruleForm" :rules="formRules" label-width="80px">
|
||||
<el-form-item label="模板文件" prop="file" :rules="[{required:true,message:'必传',trigger:['change']}]">
|
||||
<file-upload :value.sync="formData.file" :upload_number="1" upload_result_category="array" complete_result></file-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="模板名称" prop="templateName" :rules="[{required:true,message:'必填',trigger:['change']}]">
|
||||
<el-input type="text" v-model="formData.templateName" maxlength="50" placeholder="必填"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="模板代码" prop="templateCode" :rules="[{required:true,message:'必填',trigger:['change']}]">
|
||||
<el-input type="text" v-model="formData.templateCode" maxlength="50" placeholder="请填写模板代码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="模板说明" prop="templateDesc" :rules="[{required:true,message:'必填',trigger:['change']}]">
|
||||
<el-input type="text" v-model="formData.templateDesc" maxlength="50" placeholder="请填写模板说明"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="save">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
tableHeight: 700,
|
||||
formData: {
|
||||
templateName: null
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
"formData.file": {
|
||||
handler: function (val) {
|
||||
if (val) {
|
||||
this.$set(this.formData, "templateName", val[0].name)
|
||||
this.$set(this.formData, "templatePath", val[0].response.data)
|
||||
} else {
|
||||
this.$set(this.formData, "templateName", null)
|
||||
this.$set(this.formData, "templatePath", null)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openAdd() {
|
||||
this.dialogVisible = true
|
||||
this.formData = {}
|
||||
},
|
||||
openEdit(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = { ...row }
|
||||
},
|
||||
save() {
|
||||
this.$refs.ruleForm.validate(async (valid) => {
|
||||
if (valid) {
|
||||
const formData = this.formData
|
||||
// delete formData.file
|
||||
this.$axios
|
||||
.post(loc() + "/save", {
|
||||
officeTemplate: JSON.stringify(this.formData)
|
||||
})
|
||||
.then((resp) => {
|
||||
if (resp.code === 0) {
|
||||
this.dialogVisible = false
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doDelete(id) {
|
||||
this.$confirm("您确定要删除吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(async () => {
|
||||
const resp = await this.$axios.post(loc() + "/delete", { id })
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
download(path) {
|
||||
window.open(path)
|
||||
},
|
||||
preview(row) {
|
||||
this.$commonUtil.previewFile({
|
||||
suffix: row.templateName.split(".").pop().toLocaleLowerCase(),
|
||||
downloadPath: row.templatePath,
|
||||
name: row.templateName,
|
||||
id: row.templatePath.split("=").pop().toLocaleLowerCase()
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
setTimeout(() => {
|
||||
this.tableHeight = window.innerHeight - document.querySelector("#officeTable").getBoundingClientRect().top - 80
|
||||
}, 200)
|
||||
},
|
||||
created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user