From ee695cb13f2306500eaf6799e8a9d2b78408a2a5 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 15 May 2024 14:44:28 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jczz_web
---
src/views/article/components/userList.vue | 10
src/views/property/components/userList.vue | 284 +++++
src/views/property/process/maintenanceFundApply/edit.vue | 1300 +++++++++++++++---------
vue.config.js | 98 +
src/views/property/propertyCapitalApply.vue | 361 ++++--
src/views/article/components/discussionManageChild.vue | 5
src/views/property/process/maintenanceFundApply/detail.vue | 1133 +++++++++++++-------
7 files changed, 2,114 insertions(+), 1,077 deletions(-)
diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index 490fc81..0898b93 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -210,9 +210,6 @@
value,
column
}) => {
- // this.$message.success('focus事件查看控制台')
- // console.log('获取焦点', value, column)
- // this.$refs.userList && this.$refs.userList.resetForm()
this.$refs.userList.show(this.discussion.articleRange)
},
},
@@ -436,4 +433,4 @@
.el-pagination {
margin-top: 20px;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/article/components/userList.vue b/src/views/article/components/userList.vue
index 348c16a..0947a22 100644
--- a/src/views/article/components/userList.vue
+++ b/src/views/article/components/userList.vue
@@ -158,6 +158,14 @@
}
},
methods: {
+ selectPersonList(personList) {
+ console.log(personList, "++++++++++++")
+ this.personList = personList
+ let nameList = personList.map(e => {
+ return e.name
+ })
+ this.froms.userName = nameList.join(",")
+ },
submit() {
this.$emit("selectPersonList", this.idsList)
this.showDialog = false
@@ -254,4 +262,4 @@
}
}
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/property/components/userList.vue b/src/views/property/components/userList.vue
new file mode 100644
index 0000000..a6cdaa6
--- /dev/null
+++ b/src/views/property/components/userList.vue
@@ -0,0 +1,284 @@
+<template>
+ <el-dialog class="dept-user-table-dialog" width="70%" title="选择人员" modal-append-to-body="false" append-to-body="true"
+ :close-on-click-model="true" :visible.sync="showDialog" @close="showDialog = false">
+ <!-- <div class="left">
+ <el-scrollbar>
+ <basic-container>
+ <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" />
+ </basic-container>
+ </el-scrollbar>
+ </div> -->
+ <div class="right">
+ <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud" v-model="form"
+ :page.sync="page" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+ @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
+ </div>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="showDialog = false">取 消</el-button>
+ <el-button type="primary" @click="submit">确 定</el-button>
+ </div>
+ </el-dialog>
+
+
+</template>
+
+<script>
+ import {
+ getDeptLazyTree
+ } from "@/api/system/dept";
+ import {
+ getList
+ } from "@/api/doorplateAddress/doorplateAddress";
+ import {
+ mapGetters
+ } from "vuex";
+
+ export default {
+ name: "DeptUserTable",
+ data() {
+ return {
+ showDialog: false,
+ form: {},
+ search: {},
+ selectionList: [],
+ query: {},
+ loading: true,
+ platformLoading: false,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ treeDeptId: '',
+ treeData: [],
+ treeOption: {
+ nodeKey: 'id',
+ lazy: true,
+ treeLoad: function(node, resolve) {
+ const parentId = (node.level === 0) ? 0 : node.data.id
+ getDeptLazyTree(parentId).then(res => {
+ resolve(res.data.data.map(item => {
+ return {
+ ...item,
+ leaf: !item.hasChildren
+ }
+ }))
+ })
+ },
+ addBtn: false,
+ menu: false,
+ size: 'small',
+ props: {
+ labelText: '标题',
+ label: 'title',
+ value: 'value',
+ children: 'children'
+ }
+ },
+ option: {
+ height: 'auto',
+ calcHeight: 120,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ dialogType: 'drawer',
+ dialogClickModal: false,
+ menu: false,
+ addBtn: false,
+ rowKey: "id",
+ reserveSelection: true,
+ column: [
+ // {
+ // label: "用户姓名",
+ // prop: "name",
+ // search: true,
+ // searchSpan: 4,
+ // display: false
+ // },
+ // {
+ // label: "电话",
+ // prop: "phoneNumber",
+ // slot: true,
+ // searchSpan: 4,
+ // search: true,
+ // display: false
+ // },
+ {
+ label: "地址",
+ width: 560,
+ prop: "addressName",
+ slot: true,
+ display: false
+ },
+ {
+ label: "楼栋",
+ prop: "buildingName",
+ slot: true,
+ searchSpan: 4,
+ search: true,
+ display: false
+ },
+ {
+ label: "单元",
+ prop: "unitName",
+ searchSpan: 4,
+ slot: true,
+ search: true,
+ // display: false
+ },
+ {
+ label: "户室号",
+ prop: "houseName",
+ searchSpan: 4,
+ slot: true,
+ search: true,
+ display: false
+ },
+ {
+ label: "地址编码",
+ prop: "addressCode",
+ // searchSpan: 4,
+ // slot: true,
+ // search: true,
+ display: false
+ },
+
+ ],
+ },
+ data: [],
+ articleRange: '',
+ }
+ },
+ computed: {
+ ...mapGetters(["userInfo", "permission"]),
+ ids() {
+ let ids = []
+ this.selectionList.forEach(ele => {
+ console.log(ele, "---------")
+ ids.push({
+ id: ele.id,
+ houseName: ele.houseName,
+ addressCode: ele.addressCode
+ })
+ })
+ return ids.join(",")
+ },
+ idsList() {
+ let ids = []
+ this.selectionList.forEach(ele => {
+ ids.push({
+ id: ele.id,
+ houseName: ele.houseName || "",
+ addressCode: ele.addressCode
+ })
+ })
+ return ids
+ }
+ },
+ methods: {
+ submit() {
+ this.$emit("selectPersonList", this.idsList)
+ this.showDialog = false
+ },
+
+ show(articleRange) {
+ console.log("***111111111111111111***", articleRange)
+ this.articleRange = articleRange
+ this.showDialog = true
+ this.page.currentPage = 1
+ this.onLoad(this.page)
+ },
+
+ nodeClick(data) {
+ this.treeDeptId = data.id
+ this.page.currentPage = 1
+ this.onLoad(this.page)
+ },
+ searchReset() {
+ this.query = {}
+ this.treeDeptId = ''
+ this.onLoad(this.page)
+ },
+ searchChange(params, done) {
+ this.query = params
+ this.page.currentPage = 1
+ this.onLoad(this.page, params)
+ done()
+ },
+ selectionChange(list) {
+ console.log(list, "list")
+ this.selectionList = list
+ },
+ selectionClear() {
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage
+ this.onLoad(this.page)
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query)
+ },
+ onLoad(page, params = {}) {
+ this.loading = true
+ params.districtIds = this.articleRange
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId)
+ .then(res => {
+ const data = res.data.data
+ this.page.total = data.total
+ this.data = data.records
+ // this.data.forEach(item => {
+ // if (!item.unitName) {
+ // item.unitName = '1单元'
+ // }
+ // })
+ this.loading = false
+ // this.selectionClear()
+ })
+ },
+ }
+ }
+</script>
+
+<style lang="scss">
+ .dept-user-table-dialog {
+ margin: 0 !important;
+
+ .el-dialog {
+ display: flex;
+ flex-direction: column;
+ margin: auto !important;
+ position: absolute;
+ top: 0 !important;
+ left: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ //width: 1000px !important;
+ height: 800px !important;
+
+ .el-dialog__body {
+ height: 0 !important;
+ flex: 1;
+ display: flex;
+
+ .left {
+ width: 0;
+ flex: 2;
+ }
+
+ .right {
+ margin-left: 10px;
+ flex: 9;
+ }
+ }
+ }
+ }
+</style>
diff --git a/src/views/property/process/maintenanceFundApply/detail.vue b/src/views/property/process/maintenanceFundApply/detail.vue
index 0b3df87..eaef17a 100644
--- a/src/views/property/process/maintenanceFundApply/detail.vue
+++ b/src/views/property/process/maintenanceFundApply/detail.vue
@@ -1,35 +1,38 @@
+<!-- eslint-disable vue/valid-v-for -->
<template>
- <basic-container>
- <el-form ref="form" :model="form" label-width="80px">
- <!-- <el-row type="flex" class="row-bg" justify="end">
+ <basic-container>
+ <el-form ref="form" :model="form" label-width="80px">
+ <!-- <el-row type="flex" class="row-bg" justify="end">
<el-form-item>
<el-button @click="handleCancel">关闭</el-button>
</el-form-item>
</el-row> -->
- <el-card shadow="hover">
- <div slot="header">
- <span>审批信息</span>
- </div>
- <avue-form :option="option" :value="form">
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>审批信息</span>
+ </div>
+ <avue-form :option="option" :value="form" :upload-after="uploadAfter">
+ <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="{ 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>
-
- </avue-form>
- <!-- <el-form-item label="申请人">
+ <template slot-scope="{ row, size, index }" v-for="(item) in keyArray" :slot="item">
+ <el-button v-show="showDownLoadButton(item)" icon="el-icon-download" type="primary" size="small" @click="downLoad(form[item])">文件下载</el-button>
+ </template>
+ </avue-form>
+ <!-- <el-form-item label="申请人">
<el-input :disabled="true" v-model="form.flow.assigneeName" />
</el-form-item>
<el-row>
@@ -47,415 +50,753 @@
<el-form-item label="请假理由">
<el-input :disabled="true" type="textarea" v-model="form.reason" />
</el-form-item> -->
- </el-card>
- <el-card shadow="hover">
- <div slot="header">
- <span>流程信息</span>
- </div>
- <el-row type="flex" class="row-bg">
- <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>
- </el-card>
- </el-timeline-item>
- </el-timeline>
- </el-row>
- </el-card>
- <el-card shadow="hover">
- <div slot="header">
- <span>流程跟踪</span>
- </div>
- <el-row class="row-bg">
- <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
- </el-row>
- </el-card>
- </el-form>
- <deitDiscussion ref="DeitDiscussion">
- </deitDiscussion>
- </basic-container>
+ </el-card>
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程信息</span>
+ </div>
+ <el-row type="flex" class="row-bg">
+ <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>
+ </el-card>
+ </el-timeline-item>
+ </el-timeline>
+ </el-row>
+ </el-card>
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程跟踪</span>
+ </div>
+ <el-row class="row-bg">
+ <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
+ </el-row>
+ </el-card>
+ </el-form>
+ <deitDiscussion ref="DeitDiscussion">
+ </deitDiscussion>
+ </basic-container>
</template>
<script>
- import {
+import {
historyFlowList,
leaveDetail
- } from "@/api/work/process";
- import {
+} from "@/api/work/process"
+import {
getList,
remove,
update,
add,
getPropertyCapitalApply
- } from "@/api/property/propertyCapitalApply";
+} from "@/api/property/propertyCapitalApply"
- import {
+import {
getLists
- } from "@/api/discuss/topics"
- import deitDiscussion from "../../components/deitDiscussion.vue"
- export default {
+} from "@/api/discuss/topics"
+import deitDiscussion from "../../components/deitDiscussion.vue"
+export default {
components: {
- deitDiscussion
+ deitDiscussion
},
- data() {
- return {
- businessId: '',
- processInstanceId: '',
- src: '',
- flowList: [],
- form: {
- flow: {
- assigneeName: '',
- },
- startTime: '',
- endTime: '',
- reason: '',
- },
- option: {
- height: "auto",
- calcHeight: 54,
- dialogWidth: 1150,
- tip: false,
- searchShow: true,
- searchMenuSpan: 3,
- menuWidth: 350,
- border: true,
- //stripe:true,
- submitBtn: false,
- emptyBtn: false,
- index: true,
- viewBtn: true,
- selection: true,
- dialogClickModal: false,
- column: [{
- label: "小区",
- prop: "districtId",
- searchSpan: 5,
- search: true,
- type: 'tree',
- dicUrl: `/api/blade-district/district/getDistrictTree`,
- cascader: ['articleId'],
- props: {
- label: "name",
- value: "id"
- },
- defaultExpandedKeys: ["361102003"],
- span: 12,
- labelWidth: 120,
- width: 220,
- overHidden: true,
- rules: [{
- required: true,
- message: "请选择小区",
- trigger: "blur",
- }, ],
- disabled: true
+ data () {
+ return {
+ keyArray: [
+ 'file1',
+ 'file2',
+ 'file3',
+ 'file4',
+ 'file5',
+ 'file6',
+ 'file7',
+ 'file8',
+ 'file9',
+ 'file10',
+ 'file11',
+ ],
+ businessId: '',
+ processInstanceId: '',
+ src: '',
+ flowList: [],
+ form: {
+ flow: {
+ assigneeName: '',
+ },
+ attachment: [],
+ startTime: '',
+ endTime: '',
+ reason: '',
},
- {
- label: '维修项目名称',
- prop: 'name',
- searchLabelWidth: 120,
- searchSpan: 5,
- search: true,
- span: 12,
- labelWidth: 140,
- rules: [{
- required: true,
- message: "请输入维修项目名称",
- trigger: "blur",
- }, ],
- disabled: true
- },
- {
- label: "预计开工时间",
- prop: "runTime",
- span: 12,
- labelWidth: 140,
- type: "date",
- format: "yyyy-MM-dd",
- valueFormat: "yyyy-MM-dd",
- rules: [{
- required: true,
- message: "请选择合同开始时间",
- trigger: "blur",
- }, ],
- disabled: true
- },
- {
- label: "预计竣工时间",
- prop: "completedTime",
- labelWidth: 140,
- span: 12,
- type: "date",
- format: "yyyy-MM-dd",
- valueFormat: "yyyy-MM-dd",
- rules: [{
- required: true,
- message: "请选择合同结束时间",
- trigger: "blur",
- }, ],
- disabled: true
- },
- {
- label: "楼栋",
- prop: "buildingName",
- labelWidth: 140,
- value: '',
- span: 12,
- row: true,
- disabled: true
- },
- {
- label: '联系人',
- prop: 'linkman',
- span: 12,
- labelWidth: 120,
- search: true,
- searchSpan: 4,
- rules: [{
- required: true,
- message: "请输入联系人",
- trigger: "blur",
- }, ],
- disabled: true
- },
- {
- label: '联系方式',
- prop: 'linkPhone',
- span: 12,
- labelWidth: 140,
- rules: [{
- required: true,
- message: "请输入联系方式",
- trigger: "blur",
- }, ],
- disabled: true
- },
- {
- label: "项目预算总金额(元)",
- prop: "budgetAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- disabled: true
- },
- {
- label: "实际预算金额(元)",
- prop: "actualAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- disabled: true
- },
- {
- label: "自筹金额(元)",
- prop: "selfAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- disabled: true
- },
- {
- label: "预算应拨付金额(元)",
- prop: "budgetAppropriateAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- disabled: true
- },
- {
- disabled: true,
- 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&districtId={{districtId}}`,
- cascader: ['vote'],
- props: {
- label: "title",
- value: "id"
- },
- defaultExpandedKeys: ["361102003"],
- span: 12,
- labelWidth: 140,
- rules: [{
- required: true,
- message: "请选择投票结果",
- trigger: "blur",
- }, ],
- change: (val) => {
- console.log("val===>", val)
- // console.log("form===>",this.form)
- if (val.value && !this.form.id) {
- this.articleRange = val.articleRange;
- // this.showDialog = true;
- // this.getDetail(val.value, val.articleRange)
- }
+ option: {
+ height: "auto",
+ calcHeight: 54,
+ dialogWidth: 1150,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 3,
+ menuWidth: 350,
+ border: true,
+ //stripe:true,
+ submitBtn: false,
+ emptyBtn: false,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ dialogClickModal: false,
+ column: [{
+ label: "小区",
+ prop: "districtId",
+ searchSpan: 5,
+ search: true,
+ type: 'tree',
+ dicUrl: `/api/blade-district/district/getDistrictTree`,
+ cascader: ['articleId'],
+ props: {
+ label: "name",
+ value: "id"
+ },
+ defaultExpandedKeys: ["361102003"],
+ span: 12,
+ labelWidth: 120,
+ width: 220,
+ overHidden: true,
+ rules: [{
+ required: true,
+ message: "请选择小区",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ {
+ 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: '维修项目名称',
+ prop: 'name',
+ searchLabelWidth: 120,
+ searchSpan: 5,
+ search: true,
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入维修项目名称",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ {
+ label: "预计开工时间",
+ prop: "runTime",
+ span: 12,
+ labelWidth: 140,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同开始时间",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ {
+ label: "预计竣工时间",
+ prop: "completedTime",
+ labelWidth: 140,
+ span: 12,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同结束时间",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ {
+ label: "项目分摊方式",
+ prop: "allocationWay",
+ value: '按建筑面积分摊',
+ span: 12,
+ row: true,
+ disabled: true
+ },
+ {
+ label: '联系人',
+ prop: 'linkman',
+ span: 12,
+ labelWidth: 120,
+ search: true,
+ searchSpan: 4,
+ rules: [{
+ required: true,
+ message: "请输入联系人",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ {
+ label: '联系方式',
+ prop: 'linkPhone',
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入联系方式",
+ trigger: "blur",
+ },],
+ disabled: true
+ },
+ // {
+ // label: "项目预算总金额(元)",
+ // prop: "budgetAmount",
+ // span: 12,
+ // hide: true,
+ // labelWidth: 140,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00',
+ // disabled: true
+ // },
+ // {
+ // label: "实际预算金额(元)",
+ // prop: "actualAmount",
+ // span: 12,
+ // hide: true,
+ // labelWidth: 140,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00',
+ // disabled: true
+ // },
+ // {
+ // label: "自筹金额(元)",
+ // prop: "selfAmount",
+ // span: 12,
+ // hide: true,
+ // labelWidth: 140,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00',
+ // disabled: true
+ // },
+ // {
+ // label: "预算应拨付金额(元)",
+ // prop: "budgetAppropriateAmount",
+ // span: 12,
+ // hide: true,
+ // labelWidth: 140,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00',
+ // disabled: true
+ // },
+ {
+ disabled: true,
+ 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&districtId={{districtId}}`,
+ cascader: ['vote'],
+ props: {
+ label: "title",
+ value: "id"
+ },
+ defaultExpandedKeys: ["361102003"],
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请选择投票结果",
+ trigger: "blur",
+ },],
+ change: (val) => {
+ console.log("val===>", val)
+ // console.log("form===>",this.form)
+ if (val.value && !this.form.id) {
+ this.articleRange = val.articleRange
+ // this.showDialog = true;
+ // this.getDetail(val.value, val.articleRange)
+ }
- }
- },
+ }
+ },
- {
- disabled: true,
- display: false,
- span: 24,
- hide: true,
- prop: "vote",
- slot: true,
- label: "投票详情",
- labelWidth: 140,
+ {
+ disabled: true,
+ display: false,
+ span: 24,
+ hide: true,
+ prop: "vote",
+ slot: true,
+ label: "投票详情",
+ labelWidth: 140,
- },
+ },
- {
- label: "项目摘要",
- span: 24,
- hide: true,
- prop: "projectDigest",
- placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
- labelWidth: 140,
- type: "textarea",
- disabled: true
+ {
+ label: "项目摘要",
+ span: 24,
+ hide: true,
+ prop: "projectDigest",
+ placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+ labelWidth: 140,
+ type: "textarea",
+ disabled: true
+ },
+ {
+ label: "项目进度描述",
+ span: 24,
+ hide: true,
+ prop: "projectDescribe",
+ labelWidth: 140,
+ type: "textarea",
+ disabled: true
+ },
+ // {
+ // label: '施工方案附件',
+ // prop: 'constructionSchemeUrls',
+ // type: 'upload',
+ // span: 24,
+ // hide: true,
+ // labelWidth: 140,
+ // multiple: true,
+ // // showFileList: true,
+ // propsHttp: {
+ // res: 'data',
+ // name: "originalName",
+ // url: "link"
+ // },
+ // action: '/api/blade-resource/oss/endpoint/put-file-attach',
+ // rules: [{
+ // required: true,
+ // message: "请上传施工方案",
+ // trigger: "blur",
+ // }, ],
+ // }
+ {
+ label: "维修资金使用申请审批表",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file1",
+ type: "upload",
+ dataType: 'object',
+ listType: "text",
+ 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,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "申请使用维修资金的报告、附维修部位彩色照片、业委会(物管会)会议纪要(社区意见)",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file2",
+ type: "upload",
+ dataType: 'object',
+ listType: "text",
+ 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,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "公示单,预算,现场勘察图片、公示照片(公示期7天)",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file3",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修单位出具的工程款发票(验收合格后以竣工决算审核报告审定金额开具)",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file4",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file5",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "业主签名表或线上表决记录(应急情况不提供)",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file6",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "政府采购资料",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file7",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修和更新、改造方案、维修项目的协议或合同",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file8",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修改造工程竣工验收单一式两份(维修完工需经申请人签字);维修项目签证单(超出预算清单内容的需出具签证单)",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file9",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "维修项目决算、造价机构出具的决算审价报告",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file10",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ {
+ label: "业主委员会情况登记表;经办人或代理人证件(复印件),复印件上签名、联系电话",
+ slot: true,
+ offset: 2,
+ labelPosition: "top",
+ prop: "file11",
+ type: "upload",
+ listType: "text",
+ dataType: 'object',
+ action: "/api/blade-resource/oss/endpoint/put-file-attach",
+ propsHttp: {
+ res: "data",
+ name: 'name',
+ url: "link",
+ },
+ span: 24,
+ hide: true,
+ disabled: true,
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
+ },
+ ],
},
- {
- label: "项目进度描述",
- span: 24,
- hide: true,
- prop: "projectDescribe",
- labelWidth: 140,
- type: "textarea",
- disabled: true
- },
- {
- label: '施工方案附件',
- prop: 'constructionSchemeUrls',
- type: 'upload',
- span: 24,
- hide: true,
- labelWidth: 140,
- multiple: true,
- // showFileList: true,
- propsHttp: {
- res: 'data',
- name: "originalName",
- url: "link"
- },
- action: '/api/blade-resource/oss/endpoint/put-file-attach',
- rules: [{
- required: true,
- message: "请上传施工方案",
- trigger: "blur",
- }, ],
- }
- ],
- },
- topictData: [],
- topicTitle: "",
- articleRange: ""
- }
+ 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.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
- }
- }
- },
+ '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
+ }
+ }
+ },
},
+ computed: {
+ showDownLoadButton () {
+ return (item) => {
+ if (item in this.form && JSON.stringify(this.form[item]) != '') {
+ return true
+ } else {
+ return false
+ }
+ }
+ }
+ },
- created() {
- this.init();
+ created () {
+ this.init()
},
methods: {
- init() {
- this.processInstanceId = this.$route.params.processInstanceId;
- this.businessId = this.$route.params.businessId;
- historyFlowList(this.processInstanceId).then(res => {
- const data = res.data;
- if (data.success) {
- this.flowList = data.data;
- }
- })
- getPropertyCapitalApply(this.businessId).then(res => {
- const data = res.data;
- if (data.success) {
- this.form = data.data;
- }
- })
- },
- handleCancel() {
- this.$router.$avueRouter.closeTag();
- this.$router.push({
- path: `/work/start`
- });
- },
+ init () {
+ this.processInstanceId = this.$route.params.processInstanceId
+ this.businessId = this.$route.params.businessId
+ historyFlowList(this.processInstanceId).then(res => {
+ const data = res.data
+ if (data.success) {
+ this.flowList = data.data
+ }
+ })
+ getPropertyCapitalApply(this.businessId).then(res => {
+ const data = res.data
+ if (data.success) {
+ this.form = data.data
+ if (this.form.attachment) {
+ this.form.attachment = JSON.parse(this.form.attachment)
+ this.form.attachment.forEach(item => {
+ let name = item.name
+ this.form[name] = item
+ })
+ console.log("*********555***********" + JSON.stringify(this.form))
+ }
+ }
+ })
+ },
+ handleCancel () {
+ this.$router.$avueRouter.closeTag()
+ this.$router.push({
+ path: `/work/start`
+ })
+ },
- 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;
- }
- })
- },
+ 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])
- },
+ openUserPopup (row) {
+ this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+ },
+
+ downLoad (fileObj) {
+ window.open(fileObj.fileUrl)
+ }
}
- }
+}
</script>
<style>
- .workOrderStyle {
+.workOrderStyle {
font-weight: normal;
- }
+}
</style>
diff --git a/src/views/property/process/maintenanceFundApply/edit.vue b/src/views/property/process/maintenanceFundApply/edit.vue
index 7eb648f..a8f283d 100644
--- a/src/views/property/process/maintenanceFundApply/edit.vue
+++ b/src/views/property/process/maintenanceFundApply/edit.vue
@@ -1,7 +1,7 @@
<template>
- <basic-container>
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
- <!-- <el-row type="flex" class="row-bg" justify="end">
+ <basic-container>
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+ <!-- <el-row type="flex" class="row-bg" justify="end">
<el-form-item>
<el-button @click="handleCancel">关闭</el-button>
</el-form-item>
@@ -9,544 +9,864 @@
- <el-card shadow="hover">
- <div slot="header">
- <span>审批信息</span>
- </div>
- <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit">
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>审批信息</span>
+ </div>
+ <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="{ 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> -->
- </template>
- </avue-form>
+ <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> -->
+ </template>
+ </avue-form>
- </el-card>
+ </el-card>
- <el-card shadow="hover">
- <div slot="header">
- <span>流程信息</span>
- </div>
- <el-row type="flex" class="row-bg">
- <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>
- </el-card>
- </el-timeline-item>
- </el-timeline>
- </el-row>
- </el-card>
- <el-card shadow="hover">
- <div slot="header">
- <span>流程跟踪</span>
- </div>
- <el-row class="row-bg">
- <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
- </el-row>
- </el-card>
- </el-form>
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程信息</span>
+ </div>
+ <el-row type="flex" class="row-bg">
+ <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>
+ </el-card>
+ </el-timeline-item>
+ </el-timeline>
+ </el-row>
+ </el-card>
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程跟踪</span>
+ </div>
+ <el-row class="row-bg">
+ <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
+ </el-row>
+ </el-card>
+ </el-form>
- <div style="text-align: center;
+ <div style="text-align: center;
position: fixed;
left: 0;
right: 0;
bottom: 10px;">
- <el-button type="primary" @click="handleAgree">重新提交</el-button>
- <el-button type="danger" @click="handleDisagree">关闭申请</el-button>
- </div>
+ <el-button type="primary" @click="handleAgree">重新提交</el-button>
+ <el-button type="danger" @click="handleDisagree">关闭申请</el-button>
+ </div>
- <deitDiscussion ref="DeitDiscussion">
- </deitDiscussion>
+ <deitDiscussion ref="DeitDiscussion"> </deitDiscussion>
- </basic-container>
+ <userList ref="userList" @selectPersonList="selectPersonList"></userList>
+
+ </basic-container>
</template>
<script>
- import {
+import {
historyFlowList,
leaveDetail
- } from "@/api/work/process";
+} from "@/api/work/process"
+import userList from "../../components/userList.vue"
- import {
+import {
getList,
remove,
update,
add,
getPropertyCapitalApply
- } from "@/api/property/propertyCapitalApply";
- import {
+} from "@/api/property/propertyCapitalApply"
+import {
completeTask
- } from "@/api/work/work";
- import {
+} from "@/api/work/work"
+import {
getLists
- } from "@/api/discuss/topics"
- import deitDiscussion from "../../components/deitDiscussion.vue"
- export default {
+} from "@/api/discuss/topics"
+import deitDiscussion from "../../components/deitDiscussion.vue"
+export default {
components: {
- deitDiscussion
+ deitDiscussion,
+ userList
},
- data() {
- return {
- taskId: '',
- businessId: '',
- processInstanceId: '',
- src: '',
- flowList: [],
- form: {
- flow: {
- assigneeName: '',
- },
- startTime: '',
- endTime: '',
- reason: '',
- comment: '',
- },
- option: {
- height: "auto",
- calcHeight: 54,
- dialogWidth: 1150,
- tip: false,
- searchShow: true,
- searchMenuSpan: 3,
- menuWidth: 350,
- border: true,
- //stripe:true,
- submitBtn: false,
- emptyBtn: false,
- index: true,
- viewBtn: true,
- selection: true,
- dialogClickModal: false,
- column: [{
- label: "小区",
- prop: "districtId",
- searchSpan: 5,
- search: true,
- type: 'tree',
- dicUrl: `/api/blade-district/district/getDistrictTree`,
- cascader: ['articleId'],
- props: {
- label: "name",
- value: "id"
- },
- defaultExpandedKeys: ["361102003"],
- span: 12,
- labelWidth: 140,
- width: 220,
- overHidden: true,
- rules: [{
- required: true,
- message: "请选择小区",
- trigger: "blur",
- }, ],
+ data () {
+ return {
+ taskId: '',
+ businessId: '',
+ processInstanceId: '',
+ src: '',
+ flowList: [],
+ form: {
+ flow: {
+ assigneeName: '',
+ },
+ startTime: '',
+ endTime: '',
+ reason: '',
+ comment: '',
},
- {
- label: '维修项目名称',
- prop: 'name',
- searchLabelWidth: 120,
- searchSpan: 5,
- search: true,
- span: 12,
- labelWidth: 140,
- rules: [{
- required: true,
- message: "请输入维修项目名称",
- trigger: "blur",
- }, ],
- },
- {
- label: "预计开工时间",
- prop: "runTime",
- span: 12,
- labelWidth: 140,
- type: "date",
- format: "yyyy-MM-dd",
- valueFormat: "yyyy-MM-dd",
- rules: [{
- required: true,
- message: "请选择合同开始时间",
- trigger: "blur",
- }, ],
- },
- {
- label: "预计竣工时间",
- prop: "completedTime",
- labelWidth: 140,
- span: 12,
- type: "date",
- format: "yyyy-MM-dd",
- valueFormat: "yyyy-MM-dd",
- rules: [{
- required: true,
- message: "请选择合同结束时间",
- trigger: "blur",
- }, ],
- },
- {
- label: "楼栋",
- prop: "buildingName",
- value: '',
- span: 12,
- row: true,
- rules: [{
- required: true,
- message: "请输入楼栋",
- trigger: "blur",
- }, ],
- },
- {
- label: '联系人',
- prop: 'linkman',
- span: 12,
- labelWidth: 140,
- search: true,
- searchSpan: 4,
- rules: [{
- required: true,
- message: "请输入联系人",
- trigger: "blur",
- }, ],
- },
- {
- label: '联系方式',
- prop: 'linkPhone',
- span: 12,
- labelWidth: 140,
- rules: [{
- required: true,
- message: "请输入联系方式",
- trigger: "blur",
- }, ],
- },
- {
- label: "项目预算总金额(元)",
- prop: "budgetAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- },
- {
- label: "实际预算金额(元)",
- prop: "actualAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- },
- {
- label: "自筹金额(元)",
- prop: "selfAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- value: '0.00',
- },
- {
- label: "预算应拨付金额(元)",
- prop: "budgetAppropriateAmount",
- span: 12,
- hide: true,
- labelWidth: 140,
- type: 'number',
- precision: 2,
- 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}}`,
- // slot: true,
- 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)
- // console.log("form===>",this.form)
+ option: {
+ height: "auto",
+ calcHeight: 54,
+ dialogWidth: 1150,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 3,
+ menuWidth: 350,
+ border: true,
+ //stripe:true,
+ submitBtn: false,
+ emptyBtn: false,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ dialogClickModal: false,
+ column: [{
+ label: "小区",
+ prop: "districtId",
+ searchSpan: 5,
+ search: true,
+ type: 'tree',
+ dicUrl: `/api/blade-district/district/getDistrictTree`,
+ cascader: ['articleId'],
+ props: {
+ label: "name",
+ value: "id"
+ },
+ defaultExpandedKeys: ["361102003"],
+ span: 12,
+ labelWidth: 140,
+ width: 220,
+ overHidden: true,
+ rules: [{
+ required: true,
+ 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: '维修项目名称',
+ prop: 'name',
+ searchLabelWidth: 120,
+ searchSpan: 5,
+ search: true,
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入维修项目名称",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: "预计开工时间",
+ prop: "runTime",
+ span: 12,
+ labelWidth: 140,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同开始时间",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: "预计竣工时间",
+ prop: "completedTime",
+ labelWidth: 140,
+ span: 12,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同结束时间",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: "楼栋",
+ prop: "buildingName",
+ value: '',
+ span: 12,
+ row: true,
+ rules: [{
+ required: true,
+ message: "请输入楼栋",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: '联系人',
+ prop: 'linkman',
+ span: 12,
+ labelWidth: 140,
+ search: true,
+ searchSpan: 4,
+ rules: [{
+ required: true,
+ message: "请输入联系人",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: '联系方式',
+ prop: 'linkPhone',
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入联系方式",
+ trigger: "blur",
+ },],
+ },
+ {
+ label: "项目预算总金额(元)",
+ prop: "budgetAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "实际预算金额(元)",
+ prop: "actualAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "自筹金额(元)",
+ prop: "selfAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "预算应拨付金额(元)",
+ prop: "budgetAppropriateAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ 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,
+ prop: "projectDigest",
+ placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+ labelWidth: 140,
+ type: "textarea",
+ },
+ {
+ label: "项目进度描述",
+ span: 24,
+ hide: true,
+ prop: "projectDescribe",
+ labelWidth: 140,
+ type: "textarea",
+ },
+ // {
+ // label: '施工方案附件',
+ // prop: 'constructionSchemeUrls',
+ // type: 'upload',
+ // span: 24,
+ // hide: true,
+ // labelWidth: 140,
+ // multiple: true,
+ // // showFileList: true,
+ // propsHttp: {
+ // res: 'data',
+ // name: "originalName",
+ // url: "link"
+ // },
+ // action: '/api/blade-resource/oss/endpoint/put-file-attach',
+ // rules: [{
+ // required: true,
+ // message: "请上传施工方案",
+ // trigger: "blur",
+ // }, ],
+ // }
+ {
+ 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,
+ // 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",
+ 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",
+ // }],
+ },
+ ],
},
-
- {
- display: false,
- span: 24,
- hide: true,
- prop: "vote",
- slot: true,
- label: "投票详情",
- labelWidth: 140,
-
- },
- {
- label: "项目摘要",
- span: 24,
- hide: true,
- prop: "projectDigest",
- placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
- labelWidth: 140,
- type: "textarea",
- },
- {
- label: "项目进度描述",
- span: 24,
- hide: true,
- prop: "projectDescribe",
- labelWidth: 140,
- type: "textarea",
- },
- // {
- // label: "批复意见",
- // span: 24,
- // hide: true,
- // prop: "comment",
- // labelWidth: 140,
- // type: "textarea",
- // rules: [{
- // required: true,
- // message: "请输入批复意见",
- // trigger: "blur",
- // }, ],
- // },
- {
- label: '施工方案附件',
- prop: 'constructionSchemeUrls',
- type: 'upload',
- span: 24,
- hide: true,
- labelWidth: 140,
- multiple: true,
- // showFileList: true,
- propsHttp: {
- res: 'data',
- name: "originalName",
- url: "link"
- },
- action: '/api/blade-resource/oss/endpoint/put-file-attach',
- rules: [{
- required: true,
- message: "请上传施工方案",
- trigger: "blur",
- }, ],
- }
- ],
- },
- topictData: [],
- topicTitle: "",
- articleRange: ""
- }
+ 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.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
- }
- }
- },
+ '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();
+ created () {
+ this.init()
},
- beforeRouteUpdate(to, from, next) {
- // 在当前路由改变,但是该组件被复用时调用
- // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
- // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
- // 可以访问组件实例 `this`
- if (to.fullPath !== from.fullPath) {
- next();
- this.init();
- }
+ beforeRouteUpdate (to, from, next) {
+ // 在当前路由改变,但是该组件被复用时调用
+ // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
+ // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
+ // 可以访问组件实例 `this`
+ if (to.fullPath !== from.fullPath) {
+ next()
+ this.init()
+ }
},
methods: {
- handleSubmit(form, done, loading) {
- if (form.constructionSchemeUrls.length > 0) {
- var urls = []
- var split = form.constructionSchemeUrls.split(",");
- split.forEach(url => {
- var names = url.split("jczz/");
- urls.push(names[1])
- })
- form.constructionSchemeUrls = urls.join(",")
- }
- update(form).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- },
- init() {
- 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;
- if (data.success) {
- this.flowList = data.data;
- }
- })
- getPropertyCapitalApply(this.businessId).then(res => {
- const data = res.data;
- if (data.success) {
- this.form = data.data;
- }
- })
- },
- handleAgree() {
- // if (!this.form.comment) {
- // this.$message.warning('请先填写批复意见');
- // return;
- // }
- const params = {
- taskId: this.taskId,
- processInstanceId: this.processInstanceId,
- flag: 'ok',
- comment: this.form.comment,
- };
- completeTask(params).then(res => {
- const data = res.data;
- if (data.success) {
- this.$message.success(data.msg);
- this.$router.$avueRouter.closeTag();
- this.$router.push({
- path: `/property/propertyCapitalApply`
- });
- } else {
- this.$message.error(data.msg || '提交失败');
- }
- })
- },
- handleDisagree() {
- this.form.comment = '关闭申请'
- if (!this.form.comment) {
- this.$message.warning('请先填写批复意见');
- return;
- }
- const params = {
- taskId: this.taskId,
- processInstanceId: this.processInstanceId,
- comment: this.form.comment,
- };
- completeTask(params).then(res => {
- const data = res.data;
- if (data.success) {
- this.$message.success(data.msg);
- this.$router.$avueRouter.closeTag();
- this.$router.push({
- path: `/property/propertyCapitalApply`
- });
- } else {
- this.$message.error(data.msg || '提交失败');
- }
- })
- },
- handleCancel() {
- 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;
- }
- })
- },
+ 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('上传后的方法')
+ },
- openUserPopup(row) {
- this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
- },
+ 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(",")
+ split.forEach(url => {
+ var names = url.split("jczz/")
+ urls.push(names[1])
+ })
+ form.constructionSchemeUrls = urls.join(",")
+ }
+ update(form).then(
+ () => {
+ this.onLoad(this.page)
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ })
+ done()
+ },
+ (error) => {
+ window.console.log(error)
+ loading()
+ }
+ )
+ },
+ init () {
+ 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
+ if (data.success) {
+ this.flowList = data.data
+ }
+ })
+ getPropertyCapitalApply(this.businessId).then(res => {
+ const data = res.data
+ if (data.success) {
+ this.form = data.data
+ }
+ })
+ },
+ handleAgree () {
+ // if (!this.form.comment) {
+ // this.$message.warning('请先填写批复意见');
+ // return;
+ // }
+ const params = {
+ taskId: this.taskId,
+ processInstanceId: this.processInstanceId,
+ flag: 'ok',
+ comment: this.form.comment,
+ }
+ completeTask(params).then(res => {
+ const data = res.data
+ if (data.success) {
+ this.$message.success(data.msg)
+ this.$router.$avueRouter.closeTag()
+ this.$router.push({
+ path: `/property/propertyCapitalApply`
+ })
+ } else {
+ this.$message.error(data.msg || '提交失败')
+ }
+ })
+ },
+ handleDisagree () {
+ this.form.comment = '关闭申请'
+ if (!this.form.comment) {
+ this.$message.warning('请先填写批复意见')
+ return
+ }
+ const params = {
+ taskId: this.taskId,
+ processInstanceId: this.processInstanceId,
+ comment: this.form.comment,
+ }
+ completeTask(params).then(res => {
+ const data = res.data
+ if (data.success) {
+ this.$message.success(data.msg)
+ this.$router.$avueRouter.closeTag()
+ this.$router.push({
+ path: `/property/propertyCapitalApply`
+ })
+ } else {
+ this.$message.error(data.msg || '提交失败')
+ }
+ })
+ },
+ handleCancel () {
+ 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>
<style>
- .workOrderStyle {
+.workOrderStyle {
font-weight: normal;
- }
+}
</style>
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index 3c66426..7001f08 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -4,7 +4,8 @@
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
@search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
- @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+ @current-change="currentChange" @size-change="sizeChange" :upload-after="uploadAfter"
+ @refresh-change="refreshChange" @on-load="onLoad">
<template slot-scope="{ row, size, index }" slot="voteForm">
<div>{{ topicTitle }}</div>
<el-table :data="topictData" v-if="topictData.length">
@@ -19,8 +20,6 @@
</el-table-column>
</el-table>
</template>
-
-
<template slot-scope="{ row, size, index }" slot="menu">
@@ -77,6 +76,9 @@
<deitDiscussion ref="DeitDiscussion">
</deitDiscussion>
+
+ <userList ref="userList" @selectPersonList="selectPersonList"></userList>
+
</basic-container>
</template>
<script>
@@ -87,6 +89,7 @@
add,
getPropertyCapitalApply
} from "@/api/property/propertyCapitalApply"
+ import userList from "./components/userList.vue";
import {
mapGetters
} from "vuex"
@@ -101,13 +104,14 @@
export default {
components: {
- deitDiscussion
+ deitDiscussion,
+ userList
},
data() {
return {
showDialog: false,
form: {
- // constructionSchemeUrls:[]
+ attachment: []
},
query: {},
loading: true,
@@ -178,7 +182,37 @@
trigger: "blur",
}, ],
},
-
+ {
+ // display: false,
+ label: "户室",
+ prop: "houseNames",
+ tags: true,
+ type: "input",
+ // multiple: true,
+ span: 12,
+ // offset: 8,
+ remote: true,
+ // hide: true,
+ // row: 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: '维修项目名称',
prop: 'name',
@@ -242,17 +276,14 @@
}, ],
},
{
- label: "楼栋",
- prop: "buildingName",
- value: '',
+ label: "项目分摊方式",
+ prop: "allocationWay",
+ value: '按建筑面积分摊',
span: 12,
- row: true,
- rules: [{
- required: true,
- message: "请输入楼栋",
- trigger: "blur",
- }, ],
+ // row: true,
+
},
+
{
width: 110,
label: '联系人',
@@ -315,42 +346,42 @@
value: 7,
}]
},
- {
- label: "项目预算总金额(元)",
- prop: "budgetAmount",
- span: 12,
- hide: true,
- type: 'number',
- precision: 2,
- value: '0.00'
- },
- {
- label: "实际预算金额(元)",
- prop: "actualAmount",
- span: 12,
- hide: true,
- type: 'number',
- precision: 2,
- value: '0.00'
- },
- {
- label: "自筹金额(元)",
- prop: "selfAmount",
- span: 12,
- hide: true,
- type: 'number',
- precision: 2,
- value: '0.00'
- },
- {
- label: "预算应拨付金额(元)",
- prop: "budgetAppropriateAmount",
- span: 12,
- hide: true,
- type: 'number',
- precision: 2,
- value: '0.00'
- },
+ // {
+ // label: "项目预算总金额(元)",
+ // prop: "budgetAmount",
+ // span: 12,
+ // hide: true,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00'
+ // },
+ // {
+ // label: "实际预算金额(元)",
+ // prop: "actualAmount",
+ // span: 12,
+ // hide: true,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00'
+ // },
+ // {
+ // label: "自筹金额(元)",
+ // prop: "selfAmount",
+ // span: 12,
+ // hide: true,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00'
+ // },
+ // {
+ // label: "预算应拨付金额(元)",
+ // prop: "budgetAppropriateAmount",
+ // span: 12,
+ // hide: true,
+ // type: 'number',
+ // precision: 2,
+ // value: '0.00'
+ // },
{
display: false,
hide: true,
@@ -378,11 +409,8 @@
}, ],
change: (val) => {
console.log("val===>", val)
- // console.log("form===>",this.form)
if (val.value && !this.form.id) {
this.articleRange = val.articleRange;
- // this.showDialog = true;
- // this.getDetail(val.value, val.articleRange)
}
}
@@ -433,13 +461,17 @@
// }]
// },
{
-
label: "维修资金使用申请审批表",
offset: 2,
labelPosition: "top",
prop: "file1",
type: "upload",
+ dataType: 'object',
listType: "text",
+ props: {
+ label: 'name',
+ value: 'url'
+ },
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -448,19 +480,19 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "申请使用维修资金的报告、附维修部位彩色照片、业委会(物管会)会议纪要(社区意见)",
offset: 2,
labelPosition: "top",
prop: "file2",
type: "upload",
+ dataType: 'object',
listType: "text",
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
@@ -470,20 +502,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
- label: "公示单,现场勘察图片、公示照片(公示期7天)",
+ label: "公示单,预算,现场勘察图片、公示照片(公示期7天)",
offset: 2,
labelPosition: "top",
prop: "file3",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -492,20 +524,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "维修单位出具的工程款发票(验收合格后以竣工决算审核报告审定金额开具)",
offset: 2,
labelPosition: "top",
prop: "file4",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -514,11 +546,11 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见",
@@ -527,6 +559,7 @@
prop: "file5",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -535,20 +568,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "业主签名表或线上表决记录(应急情况不提供)",
offset: 2,
labelPosition: "top",
prop: "file6",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -557,11 +590,11 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
label: "政府采购资料",
@@ -570,6 +603,7 @@
prop: "file7",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -578,20 +612,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "维修和更新、改造方案、维修项目的协议或合同",
offset: 2,
labelPosition: "top",
prop: "file8",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -600,20 +634,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "维修改造工程竣工验收单一式两份(维修完工需经申请人签字);维修项目签证单(超出预算清单内容的需出具签证单)",
offset: 2,
labelPosition: "top",
prop: "file9",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -622,20 +656,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "维修项目决算、造价机构出具的决算审价报告",
offset: 2,
labelPosition: "top",
prop: "file10",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -644,20 +678,20 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
{
-
label: "业主委员会情况登记表;经办人或代理人证件(复印件),复印件上签名、联系电话",
offset: 2,
labelPosition: "top",
prop: "file11",
type: "upload",
listType: "text",
+ dataType: 'object',
action: "/api/blade-resource/oss/endpoint/put-file-attach",
propsHttp: {
res: "data",
@@ -666,16 +700,15 @@
},
span: 24,
hide: true,
- rules: [{
- required: true,
- message: "请上传文件",
- trigger: "blur",
- }],
+ // rules: [{
+ // required: true,
+ // message: "请上传文件",
+ // trigger: "blur",
+ // }],
},
],
},
data: [],
-
optionList: {
header: false,
menu: false,
@@ -773,7 +806,44 @@
},
methods: {
+ uploadAfter(res, done, loading, column) {
+ console.log(res, column)
+ // this.form.attachment = []
+ this.form.attachment.push({
+ fileName: column.label,
+ fileUrl: res.link,
+ name: column.prop,
+ originalName: res.originalName,
+ 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.houseNames = houseNameList.join(",")
+ let addressCodeList = personList.map(e => {
+ if (e.addressCode) {
+ return e.addressCode
+ }
+ })
+ this.form.addressCodes = addressCodeList.join(",")
+ },
rowView() {
this.showDialog = false;
},
@@ -821,34 +891,35 @@
// })
// row.constructionSchemeUrls = urls.join(",")
// }
+ console.log("保存+++++++++" + JSON.stringify(row))
- let keys = ["file1", "file2", "file3", "file4", "file5", "file6", "file7", "file8", "file9", "file10", "file11"]
- let files = {};
- for (let i in row) {
- if (keys.indexOf(i) != -1) {
+ // let keys = ["file1", "file2", "file3", "file4", "file5", "file6", "file7", "file8", "file9", "file10", "file11"]
+ // let files = [];
+ // for (let i in row) {
+ // if (keys.indexOf(i) != -1) {
- files[i] = row[i];
- }
- }
- for (let k in files) {
- files[k] = func.join(files[k])
- if (files[k].length) {
- let urls = [];
- let split = files[k].split(",");
- split.forEach(url => {
- let names = url.split("jczz/");
- urls.push(names[1]);
- })
- files[k] = urls.join(",")
- }
- }
+ // files.push(row[i]);
+ // }
+ // }
+ // for (let k in files) {
+ // files[k] = func.join(files[k])
+ // if (files[k].length) {
+ // let urls = [];
+ // let split = files[k].split(",");
+ // split.forEach(url => {
+ // let names = url.split("jczz/");
+ // urls.push(names[1]);
+ // })
+ // files[k] = urls.join(",")
+ // }
+ // }
- row.attachment = JSON.stringify(files);
- for (let j in row) {
- if (keys.indexOf(j) != -1) {
- delete row[j];
- }
- }
+ row.attachment = JSON.stringify(row.attachment);
+ // for (let j in row) {
+ // if (keys.indexOf(j) != -1) {
+ // delete row[j];
+ // }
+ // }
console.log("提交===>", row);
row.propertyFlag = 1
add(row).then(
diff --git a/vue.config.js b/vue.config.js
index 8d63659..23a6fc5 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -9,49 +9,65 @@
* Copyright (c) 2024 by shuishen, All Rights Reserved.
*/
module.exports = {
- //路径前缀
- publicPath: "/",
- lintOnSave: true,
- productionSourceMap: false,
- chainWebpack: (config) => {
- //忽略的打包文件
- config.externals({
- vue: "Vue",
- "vue-router": "VueRouter",
- vuex: "Vuex",
- axios: "axios",
- "element-ui": "ELEMENT",
- })
- const entry = config.entry("app")
- entry.add("babel-polyfill").end()
- entry.add("classlist-polyfill").end()
- entry.add("@/mock").end()
+ //路径前缀
+ publicPath: "/",
+ lintOnSave: true,
+ productionSourceMap: false,
+ chainWebpack: (config) => {
+ //忽略的打包文件
+ config.externals({
+ vue: "Vue",
+ "vue-router": "VueRouter",
+ vuex: "Vuex",
+ axios: "axios",
+ "element-ui": "ELEMENT",
+ })
+ const entry = config.entry("app")
+ entry.add("babel-polyfill").end()
+ entry.add("classlist-polyfill").end()
+ entry.add("@/mock").end()
+ },
+ css: {
+ extract: {
+ ignoreOrder: true,
},
- css: {
- extract: {
- ignoreOrder: true,
+ },
+ //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
+ devServer: {
+ port: 1888,
+ proxy: {
+ "/api/blade-resource/oss": {
+ //本地服务接口地址
+ // target: "http://192.168.31.188:9528",
+ target: "https://srgdjczzxtpt.com:2080/api",
+ // target: "https://kt39592615.goho.co",
+ // target: "http://z4042833u6.wicp.vip",
+ // target: "http://localhost:9528",
+ // target: "http://192.168.2.109:9528",
+ //远程演示服务地址,可用于直接启动项目
+ //target: 'https://saber.bladex.cn/api',
+ changeOrigin: true,
+ ws: true,
+ pathRewrite: {
+ "^/api": "/",
},
- },
- //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
- devServer: {
- port: 1888,
- proxy: {
- "/api": {
- //本地服务接口地址
- target:"http://192.168.2.111:9528",
- // target: "https://srgdjczzxtpt.com:2080/api",
- // target: "https://kt39592615.goho.co",
- // target: "http://z4042833u6.wicp.vip",
- // target: "http://localhost:9528",
- // target: "http://192.168.2.109:9528",
- //远程演示服务地址,可用于直接启动项目
- //target: 'https://saber.bladex.cn/api',
- changeOrigin: true,
- ws: true,
- pathRewrite: {
- "^/api": "/",
- },
- },
+ },
+ "/api": {
+ //本地服务接口地址
+ target: "http://192.168.31.188:9528",
+ // target: "https://srgdjczzxtpt.com:2080/api",
+ // target: "https://kt39592615.goho.co",
+ // target: "http://z4042833u6.wicp.vip",
+ // target: "http://localhost:9528",
+ // target: "http://192.168.2.109:9528",
+ //远程演示服务地址,可用于直接启动项目
+ //target: 'https://saber.bladex.cn/api',
+ changeOrigin: true,
+ ws: true,
+ pathRewrite: {
+ "^/api": "/",
},
+ },
},
+ },
}
--
Gitblit v1.9.3