From 649cde9aa6c2f055e70fac58e7677f08468d0614 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Fri, 2 Aug 2024 14:31:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WakesHomeDeclarationMineController.java | 77 +++++- .../info/WakesHomeApplyController.java | 2 +- .../docTemplate/wakeshome/wakeshome.docx | Bin 0 -> 13048 bytes .../assets/platform/module/basics/basics.js | 6 +- .../static/components/plugins/ImageUpload.vue | 242 ++++++++++++++++++ .../declaration/WakesHomeInfoApply.vue | 4 +- .../wakeshome/info/WakesHomeInfo.vue | 3 +- .../resources/views/layouts/platform.html | 1 + .../platform/wakeshome/declaration/apply.html | 80 ++++-- .../platform/wakeshome/declaration/mine.html | 88 ++++--- .../declaration/organizationAudit.html | 2 +- .../wakeshome/declaration/schoolAudit.html | 2 +- .../views/platform/wakeshome/info/apply.html | 16 +- .../views/platform/wakeshome/info/info.html | 4 +- .../views/platform/wakeshome/info/mine.html | 118 +++++---- 15 files changed, 507 insertions(+), 138 deletions(-) create mode 100644 src/main/resources/docTemplate/wakeshome/wakeshome.docx create mode 100644 src/main/resources/static/components/plugins/ImageUpload.vue diff --git a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java index 3f356ad..7b76ddb 100644 --- a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java +++ b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java @@ -1,6 +1,10 @@ package io.v.nutz.wakershome.controller.declaration; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import io.v.nutz.annontation.ViReturn; import io.v.nutz.base.utils.Vi; import io.v.nutz.modules.models.Audit; @@ -8,8 +12,10 @@ import io.v.nutz.modules.models.PageForm; import io.v.nutz.util.ShiroUtil; import io.v.nutz.wakershome.model.WakesHomeApply; import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import io.v.nutz.web.commons.base.Globals; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.ddr.poi.html.HtmlRenderPolicy; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -17,10 +23,15 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.util.HashMap; + /** * @version 1.0 * @Author zzr @@ -39,15 +50,16 @@ public class WakesHomeDeclarationMineController { @At("") @Ok("beetl:/platform/wakeshome/declaration/mine.html") @RequiresPermissions("wakeshome.declaration.mine") - public void index() {} + public void index() { + } @At @ViReturn @RequiresPermissions("wakeshome.declaration.mine") public Object pageData(PageForm pageForm, - @Param(value = "year",required = false) Integer year, - @Param(value = "unionId",required = false) String unionId){ + @Param(value = "year", required = false) Integer year, + @Param(value = "unionId", required = false) String unionId) { Sql sql = Sqls.create(""" SELECT wh.*, @@ -59,9 +71,9 @@ public class WakesHomeDeclarationMineController { $condition """); Cnd cnd = Cnd.NEW(); - cnd.andEX("YEAR(wh.applyDate)","=",year); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){ - cnd.and("unionId","=", Vi.getUnionId()); + cnd.andEX("YEAR(wh.applyDate)", "=", year); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + cnd.and("unionId", "=", Vi.getUnionId()); } else { cnd.andEX("unionId", "=", unionId); } @@ -73,16 +85,63 @@ public class WakesHomeDeclarationMineController { @At @ViReturn @Aop(TransAop.READ_COMMITTED) - @RequiresPermissions(value = {"wakeshome.declaration.apply","wakeshome.declaration.mine"},logical = Logical.OR) + @RequiresPermissions(value = {"wakeshome.declaration.apply", "wakeshome.declaration.mine"}, logical = Logical.OR) public Object doDelete(String id) { WakesHomeApply apply = wakesHomeApplyService.fetch(id); if (StrUtil.isNotBlank(apply.getOrganizationAuditId())) { - wakesHomeApplyService.dao().delete(Audit.class,apply.getOrganizationAuditId()); + wakesHomeApplyService.dao().delete(Audit.class, apply.getOrganizationAuditId()); } if (StrUtil.isNotBlank(apply.getSchoolAuditId())) { - wakesHomeApplyService.dao().delete(Audit.class,apply.getSchoolAuditId()); + wakesHomeApplyService.dao().delete(Audit.class, apply.getSchoolAuditId()); } wakesHomeApplyService.delete(id); return null; } + + @At + @Ok("void") + public void openExport(String id, HttpServletResponse response) { + + try { + NutMap nutMap = wakesHomeApplyService.findById(id); + + + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy(); + htmlRenderPolicy.getConfig().setShowDefaultTableBorderInTableCell(true); + + Configure config = Configure.newBuilder() + .bind("basicInformation", htmlRenderPolicy) + .bind("constructionPlan", htmlRenderPolicy).build(); + HashMap map = new HashMap<>(); + String fileName = Globals.schoolName + "教工小家”建设计划书"; + map.put("fileName", fileName); + map.put("schoolName", Globals.schoolName); + map.put("unionName", nutMap.getString("unionName")); + map.put("applyDate", nutMap.getString("applyDate")); + map.put("username", nutMap.getString("username")); + map.put("mobile", nutMap.getString("mobile")); + map.put("basicInformation", nutMap.getString("basicInformation")); + map.put("constructionPlan", nutMap.getString("constructionPlan")); + NutMap schoolAudit = nutMap.getAs("schoolAudit", NutMap.class); + NutMap organizationAudit = nutMap.getAs("organizationAudit", NutMap.class); + schoolAudit.setv("auditTime", DateUtil.formatDate(schoolAudit.getTime("auditTime"))); + schoolAudit.setv("auditSign", Vi.getImg(schoolAudit.getString("auditSign"))); + organizationAudit.setv("auditTime", DateUtil.formatDate(organizationAudit.getTime("auditTime"))); + organizationAudit.setv("auditSign", Vi.getImg(organizationAudit.getString("auditSign"))); + map.put("organizationAudit", organizationAudit); + map.put("schoolAudit", schoolAudit); + + + response.addHeader("Content-Type", "application/octet-stream"); + response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx"); + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/wakeshome/wakeshome.docx"); + XWPFTemplate.compile(inputStream, config).render(map, response.getOutputStream()); + inputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + + } } diff --git a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java index aec64f7..1a76629 100644 --- a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java +++ b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java @@ -65,6 +65,6 @@ public class WakesHomeApplyController { @RequiresPermissions("wakeshome.info.apply") public Object validateApply(){ int count = wakesHomeInfoService.dao().count(WakesHomeApply.class, Cnd.where("state", "=", "10030").and("unionId", "=", Vi.getUnionId())); - return (count > 0) ? Result.error() : Result.success(); + return (count > 0) ? Result.success() : Result.error(); } } diff --git a/src/main/resources/docTemplate/wakeshome/wakeshome.docx b/src/main/resources/docTemplate/wakeshome/wakeshome.docx new file mode 100644 index 0000000000000000000000000000000000000000..92def595ef81291b9444a203762a1f67ef9c969d GIT binary patch literal 13048 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/platform/module/basics/basics.js b/src/main/resources/static/assets/platform/module/basics/basics.js index 631e86d..be22517 100644 --- a/src/main/resources/static/assets/platform/module/basics/basics.js +++ b/src/main/resources/static/assets/platform/module/basics/basics.js @@ -55,6 +55,10 @@ const FILE_PREVIEW_ADDRESS = '/file_server/preview' const FILE_DOWNLOAD_ADDRESS = '/file_server/download' const FILE_STREAM_PREVIEW_ADDRESS = '/file_server/fileStreamPreview' +const CREATE_PREVIEW_URL = (val) => { + return FILE_STREAM_PREVIEW_ADDRESS + "?id=" + val +} + const preview = async (filename, id) => { const suffix = filename.substring(filename.lastIndexOf('.') + 1) @@ -1955,4 +1959,4 @@ const loc = () => { const clone = (obj) => { return JSON.parse(JSON.stringify(obj)) -} \ No newline at end of file +} diff --git a/src/main/resources/static/components/plugins/ImageUpload.vue b/src/main/resources/static/components/plugins/ImageUpload.vue new file mode 100644 index 0000000..9da8b47 --- /dev/null +++ b/src/main/resources/static/components/plugins/ImageUpload.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue b/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue index cf48700..2b23de1 100644 --- a/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue +++ b/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue @@ -23,7 +23,9 @@ 基本情况简介 - {{ viewData.basicInformation }} + +
+ diff --git a/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue b/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue index 2c2a3f9..42799b1 100644 --- a/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue +++ b/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue @@ -131,8 +131,7 @@ module.exports = { }, methods: { async openView(id) { - console.log(id) - const resp = await $.get('/platform/wakeshome/mine/getInfoById', {id: id}) + const resp = await $.get('/platform/wakeshome/info/mine/getInfoById', {id: id}) if (resp.code === 0) { this.viewData = resp.data this.schoolAudit = resp.data.schoolAudit diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index 8c256c0..4db11aa 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -132,6 +132,7 @@ Vue.component('file-upload', httpVueLoader('/components/plugins/FileUpload.vue')) Vue.component('text-editor', httpVueLoader('/components/plugins/textEditor.vue')) Vue.component('border-table', httpVueLoader('/components/plugins/BorderTable.vue')) + Vue.component('image-upload', httpVueLoader('/components/plugins/ImageUpload.vue')) diff --git a/src/main/resources/views/platform/wakeshome/declaration/apply.html b/src/main/resources/views/platform/wakeshome/declaration/apply.html index d12c38c..c2fa196 100644 --- a/src/main/resources/views/platform/wakeshome/declaration/apply.html +++ b/src/main/resources/views/platform/wakeshome/declaration/apply.html @@ -30,7 +30,7 @@ layout("/layouts/platform.html"){ - + @@ -45,7 +45,7 @@ layout("/layouts/platform.html"){ - + @@ -58,28 +58,30 @@ layout("/layouts/platform.html"){ - + - - + + + - - + 保 存 - 提 交 + 提 交 + @@ -90,19 +92,43 @@ layout("/layouts/platform.html"){ const vue = new Vue({ el: '#app', mixins: [initTableMixins], - data:{ - id: '', - formData: {}, - formRules: { - mobile: [{ required: true, message: '手机号不能为空', trigger: 'blur' }, - { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号格式', trigger: 'blur' }], - basicInformation: [{required: true, message: '必填', trigger: ['blur', 'change']}], - constructionPlan: [{required: true, message: '必填', trigger: ['blur', 'change']}], - }, + data() { + const validBasicInformation = (rule, value, callback) => { + if (!this.formData.basicInformation || !dd3s.html2txt(this.formData.basicInformation)) { + callback(new Error('请填写基层工会简况')); + } else if (dd3s.html2txt(this.formData.basicInformation).length > 500) { + console.log(11) + callback(new Error('基层工会简况最多500字')); + } else { + callback(); + } + }; + return { + id: '', + formData: {}, + formRules: { + mobile: [{required: true, message: '手机号不能为空', trigger: 'blur'}, + {pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号格式', trigger: 'blur'}], + basicInformation: [{ + required: true, + message: '必填', + trigger: ['blur', 'change'] + }], + constructionPlan: [{ + required: true, + message: '必填', + trigger: ['blur', 'change'] + }], + basicInformation: [{ + validator: validBasicInformation, + trigger: ['blur', 'change'] + }], + }, + } }, - methods:{ - async doSave(){ - const resp = await $.post('/platform/wakeshome/declaration/apply/doSave',this.formData) + methods: { + async doSave() { + const resp = await $.post('/platform/wakeshome/declaration/apply/doSave', this.formData) if (resp.code === 0) { this.$message.success('保存成功') setTimeout(() => { @@ -112,11 +138,11 @@ layout("/layouts/platform.html"){ this.$message.warning('操作失败') } }, - async doSubmit(){ + async doSubmit() { try { const valid = await this.$refs.form.validate() if (valid) { - const resp = await $.post('/platform/wakeshome/declaration/apply/doSubmit',this.formData) + const resp = await $.post('/platform/wakeshome/declaration/apply/doSubmit', this.formData) if (resp.code === 0) { this.$message.success('提交成功') setTimeout(() => { @@ -127,7 +153,7 @@ layout("/layouts/platform.html"){ } } } catch (e) { - this.$message.warning('操作失败') + // this.$message.warning('请查看是否按要求填写') } }, async initFormData() { @@ -135,17 +161,17 @@ layout("/layouts/platform.html"){ this.$set(this.formData, 'username', "${@shiro.getPrincipalProperty('username')}") this.$set(this.formData, 'loginName', "${@shiro.getPrincipalProperty('loginname')}") this.$set(this.formData, 'mobile', "${@shiro.getPrincipalProperty('mobile')}") - this.$set(this.formData, 'applyTime', moment().format('YYYY-MM-DD')) + this.$set(this.formData, 'applyDate', moment().format('YYYY-MM-DD')) this.$set(this.formData, 'unionName', "${@shiro.getPrincipalProperty('union').getUnionname()}") } else { - const resp = await $.get('/platform/wakeshome/mine/getInfoById',{id:this.id}) - if (resp.code === 0){ + const resp = await $.get('/platform/wakeshome/declaration/apply/getInfoById', {id: this.id}) + if (resp.code === 0) { this.formData = resp.data } } }, }, - async created(){ + async created() { this.id = GetQueryString("id") this.initFormData(); } diff --git a/src/main/resources/views/platform/wakeshome/declaration/mine.html b/src/main/resources/views/platform/wakeshome/declaration/mine.html index ac26794..0380d4c 100644 --- a/src/main/resources/views/platform/wakeshome/declaration/mine.html +++ b/src/main/resources/views/platform/wakeshome/declaration/mine.html @@ -11,76 +11,89 @@ layout("/layouts/platform.html"){
年度:
+ type="year" + v-model="pageForm.year" + value-format="yyyy">
所属工会:
- - + v-model="pageForm.unionId"> +
- 搜索 + 搜索
- - + + - - + - + @@ -112,7 +125,7 @@ layout("/layouts/platform.html"){ {prop: 'username', label: '申报人', sortable: true}, {prop: 'loginName', label: '申报人工号', sortable: true}, {prop: 'mobile', label: '联系方式', sortable: true}, - {prop: 'basicInformation', label: '基本情况简介', sortable: true}, + // {prop: 'basicInformation', label: '基本情况简介', sortable: true}, {prop: 'applyDate', label: '申报日期', sortable: true}, {prop: 'stateName', label: '审核状态', sortable: true}, ], @@ -123,6 +136,9 @@ layout("/layouts/platform.html"){ 'wakes-info-apply': httpVueLoader('/components/wakeshome/declaration/WakesHomeInfoApply.vue') }, methods: { + openExport(id) { + window.open(loc() + "/openExport?id=" + id) + }, openView(row) { this.$refs.guava.view() this.$refs.viewInfo.openView(row.id) diff --git a/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html b/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html index 98e2ffc..1c18221 100644 --- a/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html +++ b/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html @@ -150,7 +150,7 @@ layout("/layouts/platform.html"){ {prop: 'username', label: '申报人', sortable: true}, {prop: 'loginName', label: '申报人工号', sortable: true}, {prop: 'mobile', label: '联系方式', sortable: true}, - {prop: 'basicInformation', label: '基本情况简介', sortable: true}, + // {prop: 'basicInformation', label: '基本情况简介', sortable: true}, {prop: 'applyDate', label: '申报日期', sortable: true}, {prop: 'stateName', label: '审核状态', sortable: true}, ], diff --git a/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html b/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html index 768dd63..e2c880d 100644 --- a/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html +++ b/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html @@ -150,7 +150,7 @@ layout("/layouts/platform.html"){ {prop: 'username', label: '申报人', sortable: true}, {prop: 'loginName', label: '申报人工号', sortable: true}, {prop: 'mobile', label: '联系方式', sortable: true}, - {prop: 'basicInformation', label: '基本情况简介', sortable: true}, + // {prop: 'basicInformation', label: '基本情况简介', sortable: true}, {prop: 'applyDate', label: '申报日期', sortable: true}, {prop: 'stateName', label: '审核状态', sortable: true}, ], diff --git a/src/main/resources/views/platform/wakeshome/info/apply.html b/src/main/resources/views/platform/wakeshome/info/apply.html index 27ce00d..f1575b5 100644 --- a/src/main/resources/views/platform/wakeshome/info/apply.html +++ b/src/main/resources/views/platform/wakeshome/info/apply.html @@ -134,7 +134,7 @@ layout("/layouts/platform.html"){ @@ -238,9 +238,9 @@ layout("/layouts/platform.html"){ async doSave() { let postUrl = '' if (this.formData.id) { - postUrl = '/platform/wakeshome/apply/doEdit' + postUrl = loc()+'/doEdit' } else { - postUrl = '/platform/wakeshome/apply/doAdd' + postUrl = loc()+'/doAdd' } const formData = this.doJsonStr(this.formData) formData.isSubmit = false; @@ -248,7 +248,7 @@ layout("/layouts/platform.html"){ if (resp.code === 0) { this.notifySuccess(resp.msg) setTimeout(() => { - sublime.jumpPagePjax('/platform/wakeshome/mine') + sublime.jumpPagePjax('/platform/wakeshome/declaration/mine') }, 500) } else { this.notifyWarning(resp.msg) @@ -260,9 +260,9 @@ layout("/layouts/platform.html"){ if (valid) { let postUrl = '' if (this.formData.id) { - postUrl = '/platform/wakeshome/apply/doEdit' + postUrl = loc()+'/doEdit' } else { - postUrl = '/platform/wakeshome/apply/doAdd' + postUrl = loc()+'/doAdd' } const formData = this.doJsonStr(this.formData) formData.isSubmit = true @@ -270,7 +270,7 @@ layout("/layouts/platform.html"){ if (resp.code === 0) { this.notifySuccess(resp.msg) setTimeout(() => { - sublime.jumpPagePjax('/platform/wakeshome/mine') + sublime.jumpPagePjax('/platform/wakeshome/declaration/mine') }, 500) } else { this.notifyWarning(resp.msg) @@ -296,7 +296,7 @@ layout("/layouts/platform.html"){ this.$set(this.formData, 'applyTime', moment().format('YYYY-MM-DD')) this.$set(this.formData, 'unionName', "${@shiro.getPrincipalProperty('union').getUnionname()}") } else { - const resp = await $.get('/platform/wakeshome/mine/getInfoById',{id:this.id}) + const resp = await $.get('/platform/wakeshome/declaration/mine/getInfoById',{id:this.id}) if (resp.code === 0){ this.formData = {...resp.data} } diff --git a/src/main/resources/views/platform/wakeshome/info/info.html b/src/main/resources/views/platform/wakeshome/info/info.html index 0984373..e0853a1 100644 --- a/src/main/resources/views/platform/wakeshome/info/info.html +++ b/src/main/resources/views/platform/wakeshome/info/info.html @@ -136,11 +136,11 @@ layout("/layouts/platform.html"){ -
+
{{item.unionName}}
|
- 位置:{{item.position}} + 查看位置
diff --git a/src/main/resources/views/platform/wakeshome/info/mine.html b/src/main/resources/views/platform/wakeshome/info/mine.html index 96eb385..421b010 100644 --- a/src/main/resources/views/platform/wakeshome/info/mine.html +++ b/src/main/resources/views/platform/wakeshome/info/mine.html @@ -11,62 +11,75 @@ layout("/layouts/platform.html"){
年度:
+ type="year" + v-model="pageForm.year" + value-format="yyyy">
所属工会:
- - + v-model="pageForm.unionId"> +
- 搜索 + 搜索
- - + + - - + - + @@ -83,13 +96,13 @@ layout("/layouts/platform.html"){