Merge branch 'master' of http://139.196.74.78:10010/r/jczz_web
6 files modified
1 files added
| | |
| | | value, |
| | | column |
| | | }) => { |
| | | // this.$message.success('focus事件查看控制台') |
| | | // console.log('获取焦点', value, column) |
| | | // this.$refs.userList && this.$refs.userList.resetForm() |
| | | this.$refs.userList.show(this.discussion.articleRange) |
| | | }, |
| | | }, |
| | |
| | | .el-pagination { |
| | | margin-top: 20px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | } |
| | | }, |
| | | 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 |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |
| New file |
| | |
| | | <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> |
| | |
| | | <!-- 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | |
| | | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <template slot-scope="{ row, size, index }" slot="menu"> |
| | | |
| | |
| | | |
| | | <deitDiscussion ref="DeitDiscussion"> |
| | | </deitDiscussion> |
| | | |
| | | <userList ref="userList" @selectPersonList="selectPersonList"></userList> |
| | | |
| | | </basic-container> |
| | | </template> |
| | | <script> |
| | |
| | | add, |
| | | getPropertyCapitalApply |
| | | } from "@/api/property/propertyCapitalApply" |
| | | import userList from "./components/userList.vue"; |
| | | import { |
| | | mapGetters |
| | | } from "vuex" |
| | |
| | | |
| | | export default { |
| | | components: { |
| | | deitDiscussion |
| | | deitDiscussion, |
| | | userList |
| | | }, |
| | | data() { |
| | | return { |
| | | showDialog: false, |
| | | form: { |
| | | // constructionSchemeUrls:[] |
| | | attachment: [] |
| | | }, |
| | | query: {}, |
| | | loading: true, |
| | |
| | | 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', |
| | |
| | | }, ], |
| | | }, |
| | | { |
| | | label: "楼栋", |
| | | prop: "buildingName", |
| | | value: '', |
| | | label: "项目分摊方式", |
| | | prop: "allocationWay", |
| | | value: '按建筑面积分摊', |
| | | span: 12, |
| | | row: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入楼栋", |
| | | trigger: "blur", |
| | | }, ], |
| | | // row: true, |
| | | |
| | | }, |
| | | |
| | | { |
| | | width: 110, |
| | | label: '联系人', |
| | |
| | | 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, |
| | |
| | | }, ], |
| | | 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) |
| | | } |
| | | |
| | | } |
| | |
| | | // }] |
| | | // }, |
| | | { |
| | | |
| | | 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", |
| | |
| | | }, |
| | | 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: { |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请上传文件", |
| | | trigger: "blur", |
| | | }], |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请上传文件", |
| | | // trigger: "blur", |
| | | // }], |
| | | }, |
| | | { |
| | | label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见", |
| | |
| | | prop: "file5", |
| | | type: "upload", |
| | | listType: "text", |
| | | dataType: 'object', |
| | | action: "/api/blade-resource/oss/endpoint/put-file-attach", |
| | | propsHttp: { |
| | | res: "data", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请上传文件", |
| | | trigger: "blur", |
| | | }], |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请上传文件", |
| | | // trigger: "blur", |
| | | // }], |
| | | }, |
| | | { |
| | | label: "政府采购资料", |
| | |
| | | prop: "file7", |
| | | type: "upload", |
| | | listType: "text", |
| | | dataType: 'object', |
| | | action: "/api/blade-resource/oss/endpoint/put-file-attach", |
| | | propsHttp: { |
| | | res: "data", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | 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", |
| | |
| | | }, |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请上传文件", |
| | | trigger: "blur", |
| | | }], |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请上传文件", |
| | | // trigger: "blur", |
| | | // }], |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | |
| | | optionList: { |
| | | header: false, |
| | | menu: false, |
| | |
| | | }, |
| | | 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; |
| | | }, |
| | |
| | | // }) |
| | | // 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( |
| | |
| | | * 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": "/", |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | | } |