From 5e2aafeede13d337380f736567caf74f49713be7 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:38:32 +0800
Subject: [PATCH] 代码优化
---
src/views/property/process/maintenanceFundApply/edit.vue | 597 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 524 insertions(+), 73 deletions(-)
diff --git a/src/views/property/process/maintenanceFundApply/edit.vue b/src/views/property/process/maintenanceFundApply/edit.vue
index a7e0dd5..2fa0bb8 100644
--- a/src/views/property/process/maintenanceFundApply/edit.vue
+++ b/src/views/property/process/maintenanceFundApply/edit.vue
@@ -13,7 +13,25 @@
<div slot="header">
<span>审批信息</span>
</div>
- <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit">
+ <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit" :upload-exceed="uploadExceed">
+
+ <template slot-scope="{ row, size, index }" slot="vote">
+ <div>{{ topicTitle }}</div>
+ <el-table :data="topictData" v-if="topictData.length">
+ <el-table-column width="300" property="optionContent" label="选项"
+ label-class-name="workOrderStyle"></el-table-column>
+ <el-table-column width="300" property="number" label="人数" label-class-name="workOrderStyle">
+ </el-table-column>
+ <el-table-column width="300">
+ <template slot-scope="scope">
+ <el-button slot="reference" type="primary" size="mini"
+ @click="openUserPopup(scope.row, 1)">详情</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </template>
+
+
<template slot-scope="{size}" slot="menuForm">
<el-button type="primary" :size="size" @click="$refs.crud.submit()">保存信息</el-button>
<!-- <el-button :size="size" @click="$refs.form.resetForm()">自定义清空</el-button> -->
@@ -32,10 +50,12 @@
<el-timeline>
<el-timeline-item :key="flow.id" :timestamp="flow.createTime" v-for="flow in flowList" placement="top">
<el-card shadow="hover">
- <p>{{flow.assigneeName}} 在 [{{flow.createTime}}] 开始处理 [{{flow.historyActivityName}}] 环节</p>
- <p v-if="flow.historyActivityDurationTime!==''">任务历时 [{{flow.historyActivityDurationTime}}]</p>
- <p v-if="flow.comment!==''">批复意见: [{{flow.comment}}]</p>
- <p v-if="flow.endTime!==''">结束时间: [{{flow.endTime}}]</p>
+ <p>{{ flow.assigneeName }} 在 [{{ flow.createTime }}] 开始处理 [{{ flow.historyActivityName
+ }}] 环节</p>
+ <p v-if="flow.historyActivityDurationTime !== ''">任务历时 [{{
+ flow.historyActivityDurationTime }}]</p>
+ <p v-if="flow.comment !== ''">批复意见: [{{ flow.comment }}]</p>
+ <p v-if="flow.endTime !== ''">结束时间: [{{ flow.endTime }}]</p>
</el-card>
</el-timeline-item>
</el-timeline>
@@ -60,6 +80,10 @@
<el-button type="danger" @click="handleDisagree">关闭申请</el-button>
</div>
+ <deitDiscussion ref="DeitDiscussion"> </deitDiscussion>
+
+ <userList ref="userList" @selectPersonList="selectPersonList"></userList>
+
</basic-container>
</template>
@@ -67,7 +91,8 @@
import {
historyFlowList,
leaveDetail
- } from "@/api/work/process";
+ } from "@/api/work/process"
+ import userList from "../../components/userList.vue"
import {
getList,
@@ -75,12 +100,19 @@
update,
add,
getPropertyCapitalApply
- } from "@/api/property/propertyCapitalApply";
+ } from "@/api/property/propertyCapitalApply"
import {
completeTask
- } from "@/api/work/work";
-
+ } from "@/api/work/work"
+ import {
+ getLists
+ } from "@/api/discuss/topics"
+ import deitDiscussion from "../../components/deitDiscussion.vue"
export default {
+ components: {
+ deitDiscussion,
+ userList
+ },
data() {
return {
taskId: '',
@@ -120,13 +152,14 @@
search: true,
type: 'tree',
dicUrl: `/api/blade-district/district/getDistrictTree`,
+ cascader: ['articleId'],
props: {
label: "name",
value: "id"
},
defaultExpandedKeys: ["361102003"],
span: 12,
- labelWidth: 120,
+ labelWidth: 140,
width: 220,
overHidden: true,
rules: [{
@@ -134,6 +167,33 @@
message: "请选择小区",
trigger: "blur",
}, ],
+ },
+ {
+ disabled: true,
+ label: "户室",
+ prop: "houseNames",
+ tags: true,
+ type: "input",
+ span: 12,
+ remote: true,
+ rules: [{
+ required: true,
+ message: '请选择户室',
+ trigger: 'blur'
+ }],
+ focus: ({
+ value,
+ column
+ }) => {
+ if (!this.form.districtId) {
+ this.$message({
+ type: "error",
+ message: "请先选择小区后,再选择户室!",
+ })
+ return
+ }
+ this.$refs.userList.show(this.form.districtId)
+ },
},
{
label: '维修项目名称',
@@ -178,18 +238,22 @@
}, ],
},
{
- label: "项目分摊方式",
- prop: "allocationWay",
- labelWidth: 140,
- value: '按建筑面积分摊',
+ label: "楼栋",
+ prop: "buildingName",
+ value: '',
span: 12,
row: true,
+ rules: [{
+ required: true,
+ message: "请输入楼栋",
+ trigger: "blur",
+ }, ],
},
{
label: '联系人',
prop: 'linkman',
span: 12,
- labelWidth: 120,
+ labelWidth: 140,
search: true,
searchSpan: 4,
rules: [{
@@ -250,6 +314,45 @@
value: '0.00',
},
{
+ display: false,
+ hide: true,
+ parent: false,
+ label: "投票结果",
+ prop: "articleId",
+ search: false,
+ viewDisabled: false,
+ type: 'select',
+ dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
+ formslot: true,
+ cascader: ['vote'],
+ props: {
+ label: "title",
+ value: "id"
+ },
+ defaultExpandedKeys: ["361102003"],
+ span: 12,
+ width: 260,
+ rules: [{
+ required: true,
+ message: "请选择投票结果",
+ trigger: "blur",
+ }, ],
+ change: (val) => {
+ console.log("val===>", val)
+ }
+ },
+
+ {
+ display: false,
+ span: 24,
+ hide: true,
+ prop: "vote",
+ slot: true,
+ label: "投票详情",
+ labelWidth: 140,
+
+ },
+ {
label: "项目摘要",
span: 24,
hide: true,
@@ -267,45 +370,326 @@
type: "textarea",
},
// {
- // label: "批复意见",
+ // label: '施工方案附件',
+ // prop: 'constructionSchemeUrls',
+ // type: 'upload',
// span: 24,
// hide: true,
- // prop: "comment",
// labelWidth: 140,
- // type: "textarea",
+ // multiple: true,
+ // // showFileList: true,
+ // propsHttp: {
+ // res: 'data',
+ // name: "originalName",
+ // url: "link"
+ // },
+ // action: '/api/blade-resource/oss/endpoint/put-file-attach',
// rules: [{
// required: true,
- // message: "请输入批复意见",
+ // message: "请上传施工方案",
// trigger: "blur",
// }, ],
- // },
+ // }
{
- label: '施工方案附件',
- prop: 'constructionSchemeUrls',
- type: 'upload',
+ label: "维修资金使用申请审批表",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file1",
+ type: "upload",
+ dataType: 'object',
+ listType: "picture-card",
+ limit: 1,
+ props: {
+ label: 'fileUrl',
+ value: 'fileName'
+ },
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
span: 24,
hide: true,
- labelWidth: 140,
- multiple: true,
- // showFileList: true,
- propsHttp: {
- res: 'data',
- name: "originalName",
- url: "link"
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "申请使用维修资金的报告、附维修部位彩色照片、业委会(物管会)会议纪要(社区意见)",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file2",
+ type: "upload",
+ dataType: 'object',
+ listType: "picture-card",
+ limit: 1,
+ props: {
+ label: 'fileUrl',
+ value: 'fileName'
},
- action: '/api/blade-resource/oss/endpoint/put-file-attach',
- rules: [{
- required: true,
- message: "请上传施工方案",
- trigger: "blur",
- }, ],
- }
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "公示单,预算,现场勘察图片、公示照片(公示期7天)",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file3",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修单位出具的工程款发票(验收合格后以竣工决算审核报告审定金额开具)",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file4",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file5",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "业主签名表或线上表决记录(应急情况不提供)",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file6",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "政府采购资料",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file7",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修和更新、改造方案、维修项目的协议或合同",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file8",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修改造工程竣工验收单一式两份(维修完工需经申请人签字);维修项目签证单(超出预算清单内容的需出具签证单)",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file9",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修项目决算、造价机构出具的决算审价报告",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file10",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "业主委员会情况登记表;经办人或代理人证件(复印件),复印件上签名、联系电话",
+ offset: 2,
+ labelPosition: "top",
+ prop: "file11",
+ type: "upload",
+ listType: "picture-card",
+ limit: 1,
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
],
- }
+ },
+ topictData: [],
+ topicTitle: "",
+ articleRange: ""
}
},
+
+
+ watch: {
+ 'form.districtId': {
+ handler(newData) {
+ const column = this.findObject(this.option.column, "articleId")
+ if (newData && this.form.articleId) {
+ column.display = true
+ } else {
+ column.display = false
+ }
+ }
+ },
+
+
+ 'form.articleId': {
+ handler(newData) {
+ this.getVoteDetail(this.form.articleId, this.articleRange)
+ const column = this.findObject(this.option.column, "vote")
+ if (newData) {
+ column.display = true
+ } else {
+ column.display = false
+ }
+ }
+ },
+
+ },
+
+
created() {
- this.init();
+ this.init()
},
beforeRouteUpdate(to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
@@ -313,50 +697,87 @@
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
// 可以访问组件实例 `this`
if (to.fullPath !== from.fullPath) {
- next();
- this.init();
+ next()
+ this.init()
}
},
methods: {
+
+ uploadAfter(res, done, loading, column) {
+ console.log(res, column)
+ // this.form.attachment = []
+ this.form.attachment.push({
+ fileName: column.label,
+ fileUrl: res.link,
+ fileType: this.getFileExtension(res.originalName),
+ })
+ done()
+ // this.$message.success('上传后的方法')
+ },
+
+ getFileExtension(filename) {
+ var lastDotIndex = filename.lastIndexOf('.')
+ if (lastDotIndex !== -1) {
+ return filename.substring(lastDotIndex + 1)
+ }
+ return ''
+ },
+
+ selectPersonList(personList) {
+ console.log(personList, "++++++++++++")
+ this.personList = personList
+ let houseNameList = personList.map(e => {
+ if (e.houseName) {
+ return e.houseName
+ }
+ })
+ this.form.houseName = houseNameList.join(",")
+ let addressCodeList = personList.map(e => {
+ if (e.addressCode) {
+ return e.addressCode
+ }
+ })
+ this.form.addressCodes = addressCodeList.join(",")
+ },
handleSubmit(form, done, loading) {
if (form.constructionSchemeUrls.length > 0) {
var urls = []
- var split = form.constructionSchemeUrls.split(",");
+ var split = form.constructionSchemeUrls.split(",")
split.forEach(url => {
- var names = url.split("jczz/");
+ var names = url.split("jczz/")
urls.push(names[1])
})
form.constructionSchemeUrls = urls.join(",")
}
update(form).then(
() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: "success",
message: "操作成功!",
- });
- done();
+ })
+ done()
},
(error) => {
- window.console.log(error);
- loading();
+ window.console.log(error)
+ loading()
}
- );
+ )
},
init() {
- this.taskId = this.$route.params.taskId;
- this.processInstanceId = this.$route.params.processInstanceId;
- this.businessId = this.$route.params.businessId;
+ this.taskId = this.$route.params.taskId
+ this.processInstanceId = this.$route.params.processInstanceId
+ this.businessId = this.$route.params.businessId
historyFlowList(this.processInstanceId).then(res => {
- const data = res.data;
+ const data = res.data
if (data.success) {
- this.flowList = data.data;
+ this.flowList = data.data
}
})
getPropertyCapitalApply(this.businessId).then(res => {
- const data = res.data;
+ const data = res.data
if (data.success) {
- this.form = data.data;
+ this.form = data.data
}
})
},
@@ -370,50 +791,80 @@
processInstanceId: this.processInstanceId,
flag: 'ok',
comment: this.form.comment,
- };
+ }
completeTask(params).then(res => {
- const data = res.data;
+ const data = res.data
if (data.success) {
- this.$message.success(data.msg);
- this.$router.$avueRouter.closeTag();
+ this.$message.success(data.msg)
+ this.$router.$avueRouter.closeTag()
this.$router.push({
path: `/property/propertyCapitalApply`
- });
+ })
} else {
- this.$message.error(data.msg || '提交失败');
+ this.$message.error(data.msg || '提交失败')
}
})
},
handleDisagree() {
this.form.comment = '关闭申请'
if (!this.form.comment) {
- this.$message.warning('请先填写批复意见');
- return;
+ this.$message.warning('请先填写批复意见')
+ return
}
const params = {
taskId: this.taskId,
processInstanceId: this.processInstanceId,
comment: this.form.comment,
- };
+ }
completeTask(params).then(res => {
- const data = res.data;
+ const data = res.data
if (data.success) {
- this.$message.success(data.msg);
- this.$router.$avueRouter.closeTag();
+ this.$message.success(data.msg)
+ this.$router.$avueRouter.closeTag()
this.$router.push({
path: `/property/propertyCapitalApply`
- });
+ })
} else {
- this.$message.error(data.msg || '提交失败');
+ this.$message.error(data.msg || '提交失败')
}
})
},
handleCancel() {
- this.$router.$avueRouter.closeTag();
+ this.$router.$avueRouter.closeTag()
this.$router.push({
path: `/property/todo`
- });
+ })
+ },
+
+ getVoteDetail(articleId, districtId) {
+ let params = {
+ level: 1,
+ articleId: articleId,
+ districtId: districtId
+ }
+ getLists(1, 10, params).then(res => {
+ const data = res.data.data
+ if (data.length) {
+ this.topictData = data[0].children
+ this.topicTitle = data[0].discussContent
+ }
+ })
+ },
+
+ openUserPopup(row) {
+ this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+ },
+
+ uploadExceed(limit, files, fileList, column) {
+ console.log(limit, files, fileList, column)
+ this.$message.error('超出上传限制文件数量')
}
}
}
-</script>
\ No newline at end of file
+</script>
+
+<style>
+ .workOrderStyle {
+ font-weight: normal;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3