From e7dce36f4b45d4986b8b09781e3c822c00d3f4e1 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 21 Feb 2024 17:08:08 +0800
Subject: [PATCH] 维修基金申请优化
---
src/views/property/propertyCapitalApply.vue | 276 +++++++++++++++++++++++++++++++++++-------------------
1 files changed, 178 insertions(+), 98 deletions(-)
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index 0a5b5cf..ffa9d7f 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -5,14 +5,29 @@
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">
- <template slot="menuLeft">
- <el-button size="small" icon="el-icon-delete" plain v-if="permission.propertyCapitalApply_delete"
+
+ <template slot-scope="{ row, size, index }" slot="menu">
+ <el-button :size="size" type="text" v-if="row.applyStatus === 4" @click="handleWork(row)">调整申请
+ </el-button>
+ <el-button :size="size" type="text" @click="goDetail(row)">查看申请
+ </el-button>
+ <!-- <el-button :size="size" type="text" @click="goDetail(row)">删 除
+ </el-button> -->
+ </template>
+ <!-- <template slot="menuLeft">
+ <el-button size="small" icon="el-icon-delete" plain v-if="permission.propertyCapitalApply_delete"
@click="handleDelete">删 除
</el-button>
- </template>
+ </template> -->
<!-- <template slot="constructionSchemeUrlsType" slot-scope="{file}">
<span>{{ file }}</span>
</template> -->
+
+ <template slot-scope="{row, size}" slot="linkPhone">
+ <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+ v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+ </el-button>
+ </template>
</avue-crud>
</basic-container>
</template>
@@ -24,12 +39,12 @@
update,
add,
getPropertyCapitalApply
- } from "@/api/property/propertyCapitalApply";
+ } from "@/api/property/propertyCapitalApply"
import {
mapGetters
- } from "vuex";
- import website from '@/config/website';
- import func from "@/util/func";
+ } from "vuex"
+ import website from '@/config/website'
+ import func from "@/util/func"
export default {
data() {
return {
@@ -46,49 +61,71 @@
datetime: "",
selectionList: [],
option: {
+ labelWidth: 154,
+ searchLabelWidth: 96,
+ searchShow: true,
+ searchMenuSpan: 3,
+ menuWidth: 210,
+
height: "auto",
calcHeight: 54,
dialogWidth: 1150,
tip: false,
- searchShow: true,
- searchMenuSpan: 3,
- menuWidth: 350,
border: true,
//stripe:true,
index: true,
- viewBtn: true,
+ editBtn: false,
+ viewBtn: false,
+ delBtn: false,
selection: true,
dialogClickModal: false,
column: [{
+ width: 220,
+ overHidden: true,
+ label: '小区名称',
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ prop: "districtName",
+ search: true,
+ searchSpan: 4,
+ searchLabelWidth: 76,
+ rules: [{
+ required: true,
+ message: "请输入小区名称",
+ trigger: "blur",
+ }],
+ },
+
+ {
+ hide: true,
+ parent: false,
label: "小区",
prop: "districtId",
- searchSpan: 5,
- search: true,
+ search: false,
type: 'tree',
- dicUrl: `/api/blade-district/district/getDistrictTree`,
+ dicUrl: `/api/blade-district/district/getDistrictTree?filterFlag=1`,
props: {
label: "name",
value: "id"
},
defaultExpandedKeys: ["361102003"],
span: 12,
- labelWidth: 120,
- width: 220,
- overHidden: true,
+ width: 260,
rules: [{
required: true,
message: "请选择小区",
trigger: "blur",
}, ],
},
+
{
label: '维修项目名称',
prop: 'name',
- searchLabelWidth: 120,
searchSpan: 5,
+ searchLabelWidth: 124,
search: true,
span: 12,
- labelWidth: 140,
rules: [{
required: true,
message: "请输入维修项目名称",
@@ -96,10 +133,31 @@
}, ],
},
{
+ width: 110,
+ label: "所属街道",
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ prop: "streetName",
+ search: true,
+ searchSpan: 4
+ },
+ {
+ width: 156,
+ overHidden: true,
+ label: "所属社区",
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ prop: "communityName",
+ search: true,
+ searchSpan: 4
+ },
+ {
+ width: 100,
label: "预计开工时间",
prop: "runTime",
span: 12,
- labelWidth: 140,
type: "date",
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
@@ -110,9 +168,9 @@
}, ],
},
{
+ width: 100,
label: "预计竣工时间",
prop: "completedTime",
- labelWidth: 140,
span: 12,
type: "date",
format: "yyyy-MM-dd",
@@ -126,18 +184,18 @@
{
label: "项目分摊方式",
prop: "allocationWay",
- labelWidth: 140,
value: '按建筑面积分摊',
- span: 14,
+ span: 12,
row: true,
},
{
+ width: 110,
label: '联系人',
prop: 'linkman',
span: 12,
- labelWidth: 120,
- search: true,
searchSpan: 4,
+ searchLabelWidth: 80,
+ search: true,
rules: [{
required: true,
message: "请输入联系人",
@@ -145,10 +203,10 @@
}, ],
},
{
+ width: 120,
label: '联系方式',
prop: 'linkPhone',
span: 12,
- labelWidth: 140,
rules: [{
required: true,
message: "请输入联系方式",
@@ -156,16 +214,15 @@
}, ],
},
{
+ width: 100,
label: '申请时间',
prop: 'applyTime',
span: 12,
- labelWidth: 160,
display: false,
}, {
label: '审核进度',
prop: 'applyStatus',
span: 12,
- labelWidth: 140,
display: false,
dicData: [{
label: "待审核",
@@ -195,7 +252,6 @@
prop: "budgetAmount",
span: 12,
hide: true,
- labelWidth: 140,
type: 'number',
precision: 2,
value: '0.00'
@@ -205,7 +261,6 @@
prop: "actualAmount",
span: 12,
hide: true,
- labelWidth: 140,
type: 'number',
precision: 2,
value: '0.00'
@@ -215,7 +270,6 @@
prop: "selfAmount",
span: 12,
hide: true,
- labelWidth: 140,
type: 'number',
precision: 2,
value: '0.00'
@@ -225,7 +279,6 @@
prop: "budgetAppropriateAmount",
span: 12,
hide: true,
- labelWidth: 140,
type: 'number',
precision: 2,
value: '0.00'
@@ -236,7 +289,6 @@
hide: true,
prop: "projectDigest",
placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
- labelWidth: 140,
type: "textarea"
},
{
@@ -244,7 +296,6 @@
span: 24,
hide: true,
prop: "projectDescribe",
- labelWidth: 140,
type: "textarea"
},
{
@@ -253,7 +304,6 @@
type: 'upload',
span: 24,
hide: true,
- labelWidth: 140,
multiple: true,
// showFileList: true,
propsHttp: {
@@ -271,7 +321,7 @@
],
},
data: [],
- };
+ }
},
watch: {},
computed: {
@@ -282,67 +332,96 @@
viewBtn: this.vaildData(this.permission.propertyCapitalApply_view, true),
delBtn: this.vaildData(this.permission.propertyCapitalApply_delete, true),
editBtn: this.vaildData(this.permission.propertyCapitalApply_edit, true),
- };
+ }
},
ids() {
- let ids = [];
+ let ids = []
this.selectionList.forEach((ele) => {
- ids.push(ele.id);
- });
- return ids.join(",");
+ ids.push(ele.id)
+ })
+ return ids.join(",")
},
+
+ textDispose() {
+ return (row, flag, type) => {
+ if (row[flag] || row[type] == null) {
+ return row[type]
+ } else {
+ if (type == 'principalIdCard') {
+ return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+ } else {
+ return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+ }
+ }
+ }
+ }
},
methods: {
+ showStringDispose(row, type) {
+ row[type] = !row[type]
+ },
+
+ handleWork(row) {
+ this.$router.push({
+ path: `/property/process/maintenanceFundApply/edit/${row.taskId}/${row.processInstanceId}/${row.id}`
+ })
+ },
+ goDetail(row) {
+ this.$router.push({
+ path: `/property/process/maintenanceFundApply/detail/${row.processInstanceId}/${row.id}`
+ })
+ },
rowSave(row, done, loading) {
row.constructionSchemeUrls = func.join(row.constructionSchemeUrls)
if (row.constructionSchemeUrls.length > 0) {
var urls = []
- var split = row.constructionSchemeUrls.split(",");
+ var split = row.constructionSchemeUrls.split(",")
split.forEach(url => {
- var names = url.split("jczz/");
+ var names = url.split("jczz/")
urls.push(names[1])
})
row.constructionSchemeUrls = urls.join(",")
}
+ row.propertyFlag = 1
add(row).then(
() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: "success",
message: "操作成功!",
- });
- done();
+ })
+ done()
},
(error) => {
- window.console.log(error);
- loading();
+ window.console.log(error)
+ loading()
}
- );
+ )
},
rowUpdate(row, index, done, loading) {
if (row.constructionSchemeUrls.length > 0) {
var urls = []
- var split = row.constructionSchemeUrls.split(",");
+ var split = row.constructionSchemeUrls.split(",")
split.forEach(url => {
- var names = url.split("jczz/");
+ var names = url.split("jczz/")
urls.push(names[1])
})
row.constructionSchemeUrls = urls.join(",")
}
update(row).then(
() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: "success",
message: "操作成功!",
- });
- done();
+ })
+ done()
},
(error) => {
- window.console.log(error);
- loading();
+ window.console.log(error)
+ loading()
}
- );
+ )
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
@@ -351,37 +430,37 @@
type: "warning",
})
.then(() => {
- return remove(row.id);
+ return remove(row.id)
})
.then(() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: "success",
message: "操作成功!",
- });
- });
+ })
+ })
},
searchReset() {
- this.query = {};
- this.onLoad(this.page);
+ this.query = {}
+ this.onLoad(this.page)
},
searchChange(params, done) {
- this.query = params;
- this.page.currentPage = 1;
- this.onLoad(this.page, params);
- done();
+ this.query = params
+ this.page.currentPage = 1
+ this.onLoad(this.page, params)
+ done()
},
selectionChange(list) {
- this.selectionList = list;
+ this.selectionList = list
},
selectionClear() {
- this.selectionList = [];
- this.$refs.crud.toggleSelection();
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
},
handleDelete() {
if (this.selectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
+ this.$message.warning("请选择至少一条数据")
+ return
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
@@ -389,81 +468,82 @@
type: "warning",
})
.then(() => {
- return remove(this.ids);
+ return remove(this.ids)
})
.then(() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: "success",
message: "操作成功!",
- });
- this.$refs.crud.toggleSelection();
- });
+ })
+ this.$refs.crud.toggleSelection()
+ })
},
beforeOpen(done, type) {
if (["edit", "view"].includes(type)) {
getPropertyCapitalApply(this.form.id).then((res) => {
- this.form = res.data.data;
- this.form.propertyFlag = 1;
+ this.form = res.data.data
+ this.form.propertyFlag = 1
if (this.form.constructionSchemeUrls.length > 0) {
var urls = []
- var names = this.form.constructionSchemeUrls.split(",");
+ var names = this.form.constructionSchemeUrls.split(",")
names.forEach(name => {
urls.push(website.minioUrl + name)
})
this.form.constructionSchemeUrls = urls.join(",")
}
- });
+ })
}
// con
- done();
+ done()
},
currentChange(currentPage) {
- this.page.currentPage = currentPage;
+ this.page.currentPage = currentPage
},
sizeChange(pageSize) {
- this.page.pageSize = pageSize;
+ this.page.pageSize = pageSize
},
refreshChange() {
- this.onLoad(this.page, this.query);
+ this.onLoad(this.page, this.query)
},
onLoad(page, params = {}) {
const {
dateTime
- } = this.query;
+ } = this.query
let values = {
...params,
- };
+ }
if (dateTime) {
values = {
...params,
startTime: dateTime[0],
endTime: dateTime[1],
...this.query,
- };
- values.dateTime = null;
+ }
+ values.dateTime = null
}
- this.loading = true;
+ this.loading = true
getList(page.currentPage, page.pageSize, values).then((res) => {
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
+ const data = res.data.data
+ this.page.total = data.total
+ this.data = data.records
this.data.forEach(item => {
+ this.$set(item, 'linkPhoneflag', false)
if (item.constructionSchemeUrls.length > 0) {
var urls = []
- var names = item.constructionSchemeUrls.split(",");
+ var names = item.constructionSchemeUrls.split(",")
names.forEach(name => {
urls.push(website.minioUrl + name)
})
item.constructionSchemeUrls = urls.join(",")
}
})
- this.loading = false;
- this.selectionClear();
- });
+ this.loading = false
+ this.selectionClear()
+ })
}
}
- };
+ }
</script>
<style>
--
Gitblit v1.9.3