Browse Source

Merge branch 'dev' into jw_feature_zhangruochen

V1.0
张若晨 2 years ago
parent
commit
cc41349d0d
  1. 79
      src/views/modules/base/residentManagement/housingNature/housingNature.vue
  2. 30
      src/views/modules/base/residentManagement/resiDisability/resiDisability.vue
  3. 30
      src/views/modules/base/residentManagement/unemployment/unemployment.vue
  4. 1210
      src/views/modules/shequzhili/eventOld/cpts/add.vue
  5. 711
      src/views/modules/shequzhili/eventOld/cpts/event-detail.vue
  6. 1198
      src/views/modules/shequzhili/eventOld/cpts/event-info.vue
  7. 126
      src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue
  8. 579
      src/views/modules/shequzhili/eventOld/cpts/process-form-project.vue
  9. 436
      src/views/modules/shequzhili/eventOld/cpts/process-form-replay.vue
  10. 175
      src/views/modules/shequzhili/eventOld/cpts/process-form-urban.vue
  11. 406
      src/views/modules/shequzhili/eventOld/cpts/process-form.vue
  12. 1585
      src/views/modules/shequzhili/eventOld/eventList.vue
  13. 9
      vue.config.js

79
src/views/modules/base/residentManagement/housingNature/housingNature.vue

@ -287,36 +287,58 @@ export default {
}
return fileType && isLt1M;
},
async uploadHttpRequest(file) {
this.$message({
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
await this.$http
.post("/actual/base/resiHousingNature/import", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$message.success("导入成功");
this.getTableData();
this.$refs.upload.clearFiles();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
this.$message({
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("fileMode",'ENSUREHOUSE');
await this.$http
.post("/actual/base/importExcelData/extractExcelHead", formData)
.then((res) => {
const { metaListData, fileCode, msg } = res.data.data;
this.dataList = {"所属网格":"所属网格","所属小区":"所属小区","所属楼栋":"所属楼栋","所属单元":"所属单元","所属房屋":"所属房屋","本地户籍":"本地户籍","居民姓名":"居民姓名","联系电话":"联系电话","国籍":"国籍","证件类型":"证件类型","证件号":"证件号","民族":"民族","备注":"备注","户籍地址":"户籍所在地","现居地址":"现居住地址","房东姓名":"房东姓名","房东身份证号":"房东身份证号","住房性质":"住房性质","领取通知书日期":"领取通知书日期","保障类型":"保障类型","发证日期":"发证日期","补贴编号":"补贴编号","补贴金额":"补贴金额"};
// forfilter, O(1) itemGroupId
this.importCode = fileCode;
this.handleComfirmUpload()
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});//
},
async handleComfirmUpload () {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const { importOption, importCode, dataList } = this;
const formData = new FormData();
formData.append("columnMateJson", JSON.stringify(dataList));
formData.append("fileCode", importCode);
await this.$http
.post("/actual/base/importExcelData/importResiHouseExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.getTableData();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
handleSearch(val) {
@ -356,6 +378,7 @@ export default {
this.showAdd = false;
this.showEdit = false;
},
//
handleComfirm(type) {
this.handleClose();

30
src/views/modules/base/residentManagement/resiDisability/resiDisability.vue

@ -542,21 +542,43 @@ export default {
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("fileMode", 'DISABILITY');
await this.$http
.post("/actual/base/resiCategorized/disability/import", formData)
.post("/actual/base/importExcelData/extractExcelHead", formData)
.then((res) => {
const { fileCode, msg } = res.data.data;
this.dataList = {"所属网格":"所属网格","所属小区":"所属小区","所属楼栋":"所属楼栋","所属单元":"所属单元","所属房屋":"所属房屋","本地户籍":"本地户籍","居民姓名":"居民姓名","联系电话":"联系电话","国籍":"国籍","证件类型":"证件类型","证件号":"证件号","民族":"民族","备注":"备注","残疾类别":"残疾类别","残疾等级":"残疾等级","残疾证号":"残疾证号","退休金额":"退休金额","月收入":"月收入","赡养人联系电话":"赡养人联系电话"};
// forfilter, O(1) itemGroupId
this.importCode = fileCode;
this.handleComfirmUpload()
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});//
},
async handleComfirmUpload() {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const { importOption, importCode, dataList } = this;
const formData = new FormData();
formData.append("columnMateJson", JSON.stringify(dataList));
formData.append("fileCode", importCode);
await this.$http
.post("/actual/base/importExcelData/importResiHouseExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$message.success("导入成功");
this.getTableData();
this.$refs.upload.clearFiles();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
handleSizeChange(val) {

30
src/views/modules/base/residentManagement/unemployment/unemployment.vue

@ -429,21 +429,43 @@ export default {
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("fileMode", 'UNEMPLOYED');
await this.$http
.post("/actual/base/resiUnemployment/import", formData)
.post("/actual/base/importExcelData/extractExcelHead", formData)
.then((res) => {
const { fileCode, msg } = res.data.data;
this.dataList = {"所属网格":"所属网格","所属小区":"所属小区","所属楼栋":"所属楼栋","所属单元":"所属单元","所属房屋":"所属房屋","本地户籍":"本地户籍","居民姓名":"居民姓名","联系电话":"联系电话","国籍":"国籍","证件类型":"证件类型","证件号":"证件号","民族":"民族","备注":"备注","文化程度":"文化程度","残疾类别":"残疾类别","残疾等级":"残疾等级","户籍地址":"户籍所在地","居住地址":"现居住地址","健康状况":"健康状况","原工作单位":"原工作单位","解除合同日期":"解除合同日期","失业时间":"失业时间","失业证号":"失业证号","失业原因":"失业原因","再就业优惠证号":"再就业优惠证号","技术特长":"技能特长","是否领取失业金":"是否领取失业金","是否就业困难对象":"是否就业困难对象","劳动能力就业愿望":"劳动就业愿望"};
// forfilter, O(1) itemGroupId
this.importCode = fileCode;
this.handleComfirmUpload()
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});//
},
async handleComfirmUpload() {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const { importOption, importCode, dataList } = this;
const formData = new FormData();
formData.append("columnMateJson", JSON.stringify(dataList));
formData.append("fileCode", importCode);
await this.$http
.post("/actual/base/importExcelData/importResiHouseExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$message.success("导入成功");
this.getTableData();
this.$refs.upload.clearFiles();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
handleSearch(val) {

1210
src/views/modules/shequzhili/eventOld/cpts/add.vue

File diff suppressed because it is too large

711
src/views/modules/shequzhili/eventOld/cpts/event-detail.vue

@ -1,283 +1,496 @@
<template>
<div class="">
<el-card :style="containerStyle" :class="{ 'box-card': source === 'visiual' }" v-if="showType == ''">
<h3 v-if="source === 'manage'" class="h3-title">
<img src="../../../../../assets/images/index/title-icon-sqzl.png" width="30px" height="30px" alt="" />
事件详情
</h3>
<div class="m-detail-main">
<div class="m-info">
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">所属组织</span>
<span>{{ info.gridName }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">接收时间</span>
<span>{{ info.happenTime }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">工单号</span>
<span>{{ info.workOrderNum }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">事件内容</span>
<span>{{ info.eventContent }}</span>
</div>
<div v-if="info.imageList && info.imageList.length > 0"
:class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">图片</span>
<img :src="src" :key="src" style="width: 150px; height: 150px; padding-right: 10px"
v-for="src in info.imageList" @click="watchImg(src)" />
</div>
<div v-if="info.voiceList && info.voiceList.length > 0"
:class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">语音</span>
<audio controls>
<source :src="item.url" type="" :key="item.url" v-for="item in info.voiceList" />
</audio>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">上报渠道</span>
<span>{{ info.sourceTypeName }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">详细地址</span>
<span>{{ info.address }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">联系人</span>
<span>{{ info.name }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">联系电话</span>
<span>{{ info.mobile }}</span>
</div>
<div :class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">标记</span>
<span>{{ info.markTypeName || "--" }}</span>
</div>
<div v-if="info.satisfactionName"
:class="['m-info-prop', { 'm-info-prop-vis': source === 'visiual' },]">
<span class="u-info-title-2">满意度</span>
<div>{{ info.satisfactionName }}</div>
</div>
</div>
</div>
<!--
显示关闭
1状态=完成 (已评价)||(没评价&&不是本人)
2状态=未完成 有操作id
-->
<div v-if="(info.status === 'processing' && info.operationId) || (info.status === 'closed_case' &&
(info.satisfactionName || (!info.satisfactionName && user.id != info.createdUserId)))"
class="div-btn-info">
<el-button size="small" @click="handleCloseEvent">关闭</el-button>
<div class="">
<el-card
:style="containerStyle"
:class="{ 'box-card': source === 'visiual' }"
v-if="showType == ''"
>
<h3 v-if="source === 'manage'" class="h3-title">
<img
src="../../../../../assets/images/index/title-icon-sqzl.png"
width="30px"
height="30px"
alt=""
/>
事件详情
</h3>
<div class="m-detail-main">
<div class="m-info">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">所属网格</span>
<span>{{ info.gridName }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">上报时间</span>
<span>{{ info.happenTime }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">事件内容</span>
<span>{{ info.eventContent }}</span>
</div>
<div
v-if="info.imageList && info.imageList.length > 0"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">图片</span>
<img
:src="src"
:key="src"
style="width: 150px; height: 150px; padding-right: 10px"
v-for="src in info.imageList"
@click="watchImg(src)"
/>
</div>
<div
v-if="info.voiceList && info.voiceList.length > 0"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">语音</span>
<audio controls>
<source
:src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList"
/>
</audio>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">反映渠道</span>
<span>{{ info.sourceTypeName }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">地址</span>
<span>{{ info.address }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">上报人</span>
<span>{{ info.name }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">联系电话</span>
<span>{{ info.mobile }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">证件号</span>
<span>{{ info.idCard ? info.idCard : "--" }}</span>
</div>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">标记</span>
<span>{{ info.markTypeName || "--" }}</span>
</div>
<div
v-if="info.operationType === '1'"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">已立项</span>
<div class="line" @click="handleToProject"><i class="el-icon-view"></i> 查看项目</div>
</div>
<div
v-if="info.operationType === '2'"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">已转需求</span>
<div class="line" @click="handleToDemand"><i class="el-icon-view"></i>查看需求</div>
</div>
<div
v-if="info.operationType === '3'"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">已转议题</span>
<div class="line" @click="handleToIssue">
<i class="el-icon-view"></i> 查看议题
</div>
</el-card>
<el-card :class="{ 'box-card': source === 'visiual' }" v-if="info.status === 'closed_case' && !info.satisfactionName
&& user.id === info.createdUserId" style="width: 184%;">
<h3>满意度评价</h3>
<div class="m-detail-main">
<div class="m-info">
<div class="div-satisfy">
<el-radio-group :class="{ 'form-item': source === 'visiual' }" v-model="satisfyLevel"
@change="clickSatisfy">
<el-radio label="good">满意</el-radio>
<el-radio label="perfect">基本满意</el-radio>
<el-radio label="bad">不满意</el-radio>
</el-radio-group>
</div>
</div>
</div>
<div
v-if="info.satisfactionName"
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">满意度</span>
<div>{{ info.satisfactionName }}</div>
</div>
</div>
</div>
<!--
显示关闭
1状态=完成 (已评价)||(没评价&&不是本人)
2状态=未完成 有操作id -->
<div
v-if="
(info.status === 'processing' && info.operationId) ||
(info.status === 'closed_case' &&
(info.satisfactionName ||
(!info.satisfactionName && user.id != info.createdUserId)))
"
class="div-btn-info"
>
<el-button size="small" @click="handleCloseEvent">关闭</el-button>
</div>
</el-card>
<el-card
:class="{ 'box-card': source === 'visiual' }"
v-if="
info.status === 'closed_case' &&
!info.satisfactionName &&
user.id === info.createdUserId
"
>
<h3>满意度评价</h3>
<div class="m-detail-main">
<div class="m-info">
<div class="div-satisfy">
<div>
<img
:src="selBad ? badurl_light : badurl"
@click="clickSatisfy('bad')"
/>
<div class="tip-satisfy">不满意</div>
</div>
<div class="div-btn">
<el-button size="small" @click="handleCloseEvent">关闭</el-button>
<el-button style="margin-left: 20px" type="primary" size="small"
@click="handleComfirmSatisfy">确定</el-button>
<div>
<img
:src="selGood ? goodurl_light : goodurl"
@click="clickSatisfy('good')"
/>
<div class="tip-satisfy">满意</div>
</div>
</el-card>
<el-dialog :visible.sync="showSatisfy" :close-on-click-modal="false" :close-on-press-escape="false" title="满意度评价"
width="550px" top="15vh" class="dialog-h" @closed="showSatisfy = false">
<div class="div-btn">
<el-button size="small" @click="showSatisfy = false">关闭</el-button>
<el-button style="margin-left: 20px" type="primary" size="small"
@click="handleComfirmSatisfy">确定</el-button>
<div>
<img
:src="selPerfect ? perfecturl_light : perfecturl"
@click="clickSatisfy('perfect')"
/>
<div class="tip-satisfy">非常满意</div>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
<div class="div-btn">
<el-button size="small" @click="handleCloseEvent">关闭</el-button>
<el-button
style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSatisfy"
>确定</el-button
>
</div>
</el-card>
<el-dialog
:visible.sync="showSatisfy"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="满意度评价"
width="550px"
top="15vh"
class="dialog-h"
@closed="showSatisfy = false"
>
<div class="div-btn">
<el-button size="small" @click="showSatisfy = false">关闭</el-button>
<el-button
style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSatisfy"
>确定</el-button
>
</div>
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import foldText from "@/views/components/foldText";
import projectInfo from "../../xiangmu/cpts/project-info";
import dateFormat from "dai-js/tools/dateFormat";
function iniData() {
return {
user: {},
projectPageType: "info",
info: {},
eventDetailCopy: {},
showType: "",
projectId: "",
demandForm: {
gridId: "",
categoryCode: "",
parentCode: "",
content: "",
reportType: "",
reportUserName: "",
reportUserMobile: "",
reportTime: "",
wantServiceTime: "",
demandUserId: "",
demandUserName: "",
demandUserMobile: "",
},
satisfyLevel: "",
//
showSatisfy: false,
};
return {
user: {},
projectPageType: "info",
info: {},
eventDetailCopy: {},
showType: "",
projectId: "",
demandForm: {
gridId: "",
categoryCode: "",
parentCode: "",
content: "",
reportType: "",
reportUserName: "",
reportUserMobile: "",
reportTime: "",
wantServiceTime: "",
demandUserId: "",
demandUserName: "",
demandUserMobile: "",
},
//
showSatisfy: false,
selBad: false,
selGood: false,
selPerfect: false,
badurl: require("@/assets/img/satisfy-images/face1.png"),
badurl_light: require("@/assets/img/satisfy-images/face1_light.png"),
goodurl: require("@/assets/img/satisfy-images/face2.png"),
goodurl_light: require("@/assets/img/satisfy-images/face2_light.png"),
perfecturl: require("@/assets/img/satisfy-images/face3.png"),
perfecturl_light: require("@/assets/img/satisfy-images/face3_light.png"),
};
}
export default {
name: "issueInfo",
props: {
eventId: {
type: String,
default: "",
},
type: {
type: String,
default: "info",
},
eventDetailData: {
type: Object,
default() {
return {};
},
},
source: {
//manage visiual
type: String,
default: "manage",
},
name: "issueInfo",
props: {
eventId: {
type: String,
default: "",
},
type: {
type: String,
default: "info",
},
components: {
foldText,
projectInfo,
eventDetailData: {
type: Object,
default() {
return {};
},
},
source: {
//manage visiual
type: String,
default: "manage",
},
},
data: iniData,
watch: {},
created() { },
computed: {
containerStyle() {
if (this.type === 'info') {
return {
minHeight: 'calc(88vh - 50px)',
overflow: 'auto',
position: 'relative'
}
} else {
return {}
}
}
components: {
foldText,
projectInfo,
},
data: iniData,
watch: {},
created() {},
computed: {
containerStyle() {
if (this.type === 'info') {
return {
minHeight: 'calc(88vh - 50px)',
overflow: 'auto',
position: 'relative'
}
} else {
return {}
}
}
},
mounted() {
this.user = this.$store.state.user;
if (this.eventId) {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
//
// if (this.info.status === 'closed_case' && this.info.satisfactionName) {
// this.changeSatisfyType(this.info.satisfaction)
// }
}
// this.getApiData();
},
methods: {
watchImg(src) {
window.open(src);
},
mounted() {
this.user = this.$store.state.user;
if (this.eventId) {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
//
// if (this.info.status === 'closed_case' && this.info.satisfactionName) {
// this.changeSatisfyType(this.info.satisfaction)
// }
}
// this.getApiData();
handleClose() {
this.showType = "";
},
handleCloseEvent() {
this.$emit("handleClose");
},
async getApiData() {},
handleToProject() {
this.$emit("handleToProject");
// if (this.info.status === 'processing') {
// this.projectPageType = 'edit'
// } else {
// this.projectPageType = 'info'
// }
// this.showType = 'project'
},
handleToDemand() {
this.$emit("handleToDemand");
},
handleToIssue() {
this.$emit("handleToIssue");
},
//
handleSatisfy() {
this.showSatisfy = true;
},
methods: {
watchImg(src) {
window.open(src);
},
handleClose() {
this.showType = "";
},
handleCloseEvent() {
this.$emit("handleClose");
},
async getApiData() { },
//
handleSatisfy() {
this.showSatisfy = true;
},
clickSatisfy(type) {
if (this.info.satisfactionName) {
return false;
}
this.satisfyLevel = type;
},
async handleComfirmSatisfy() {
if (!this.satisfyLevel) {
this.$message.info("请选择评价级别");
}
const url = "/governance/icEvent/comment";
let params = {
icEventId: this.eventId,
satisfaction: this.satisfyLevel,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("评价成功");
this.info.satisfactionName =
this.satisfyLevel == "bad"
? "不满意"
: this.satisfyLevel == "good"
? "满意"
: "非常满意";
this.showSatisfy = false;
} else {
this.$message.error(msg);
}
},
clickSatisfy(type) {
if (this.info.satisfactionName) {
return false;
}
this.changeSatisfyType(type);
},
changeSatisfyType(type) {
if (type === "bad") {
this.selGood = false;
this.selPerfect = false;
this.selBad = true;
} else if (type === "good") {
this.selGood = true;
this.selPerfect = false;
this.selBad = false;
} else if (type === "perfect") {
this.selGood = false;
this.selPerfect = true;
this.selBad = false;
}
},
async handleComfirmSatisfy() {
let satisfyLevel = "";
if (!this.selBad && !this.selGood && !this.selPerfect) {
this.$message.info("请选择评价级别");
} else {
if (this.selBad) {
satisfyLevel = "bad";
} else if (this.selGood) {
satisfyLevel = "good";
} else if (this.selPerfect) {
satisfyLevel = "perfect";
}
}
const url = "/governance/icEvent/comment";
let params = {
icEventId: this.eventId,
satisfaction: satisfyLevel,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("评价成功");
this.info.satisfactionName =
satisfyLevel == "bad"
? "不满意"
: satisfyLevel == "good"
? "满意"
: "非常满意";
this.showSatisfy = false;
} else {
this.$message.error(msg);
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
.m-info {
padding-left: 0px !important;
padding-left: 0px !important;
}
.m-info-prop {
margin: 25px 0 !important;
padding-left: 0px !important;
&::before {
content: "";
display: block;
position: absolute;
top: 9px;
left: 0;
width: 7px;
height: 7px;
background: none !important;
border-radius: 3px;
margin-right: 10px;
}
margin: 25px 0 !important;
padding-left: 0px !important;
&::before {
content: "";
display: block;
position: absolute;
top: 9px;
left: 0;
width: 7px;
height: 7px;
background: none !important;
border-radius: 3px;
margin-right: 10px;
}
}
</style>

1198
src/views/modules/shequzhili/eventOld/cpts/event-info.vue

File diff suppressed because it is too large

126
src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue

@ -28,15 +28,6 @@
placeholder="请输入转办意见,不超过500字" v-model="formData.content"></el-input>
</div>
</el-form-item>
<el-form-item style="display: block" label="附件" label-width="150px" prop="attach">
<el-upload :headers="$getElUploadHeaders()" class="upload-demo" :action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:on-success="handleFileSuccess" :on-remove="handleFileRemove" :on-preview="handleFileDownload"
:limit="3" :before-upload="beforeUpload" :file-list="fileList">
<el-button size="small" :disabled="fileList.length === 3" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">支持图片wordpdf</div>
</el-upload>
</el-form-item>
<el-form-item label="办结时限" prop="timeLimit" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
@ -64,8 +55,7 @@ export default {
categoryId: "",//
deptId: "", //
deptName: "",
categoryList: [],
files: [] //
categoryList: []
},
orgOptions: [],
orgOptionProps: {
@ -81,14 +71,12 @@ export default {
eventDetailCopy: {},
selCategoryArray: [],
casOptions: [],
fileList: [],
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
iscascaderShow: 0,
optionProps: {
multiple: false,
value: "id",
label: "categoryName",
children: "children",
label: "name",
children: "subCategory",
},
dataRule: {
content: [
@ -104,8 +92,8 @@ export default {
{ required: true, message: "办结时限不能为空", trigger: "blur" },
]
},
selCateObj: {
id: ""
selCateObj:{
id:""
},
};
},
@ -138,6 +126,7 @@ export default {
this.getCategoryList();
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
console.log(this.eventDetailCopy);
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCateObj.id = this.eventDetailCopy.categoryId
@ -163,11 +152,12 @@ export default {
}
},
async getCategoryList() {
const url = '/governance/icEvent/getCategoryTree';
const url = "/governance/issueprojectcategorydict/list";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let treeDataNew = this.deepTree(data, "children");
let treeDataNew = this.filterTree(data);
//
++this.iscascaderShow;
this.casOptions = [];
this.casOptions = treeDataNew;
@ -181,6 +171,7 @@ export default {
this.formData.orgType = obj.level === 'grid' ? 'grid' : 'agency'
this.formData.deptId = obj.agencyId
this.formData.deptName = obj.agencyName
} else {
this.form.orgType = ''
this.form.orgId = ''
@ -190,25 +181,24 @@ export default {
if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) {
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryId = this.selCateObj.id
console.log(this.formData.categoryId, 'this.formData.categoryId');
console.log(this.formData.categoryId,'this.formData.categoryId');
} else {
this.selCateObj = {}
}
},
//
deepTree(arr, children) {
if (Array.isArray(arr) && arr.length > 0) {
return arr.map((item) => {
return {
...item,
[children]:
(item[children] &&
item[children].length > 0 &&
this.deepTree(item[children], children)) ||
null,
};
});
filterTree(arr) {
let childs = arr;
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory);
} else {
delete childs[i].subCategory;
}
}
}
return arr;
},
async getReplayInfo() {
this.okflag = false;
@ -216,13 +206,11 @@ export default {
if (!valid) {
app.util.validateRule(messageObj);
} else {
console.log(this.selCateObj);
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.error("请选择事件分类");
return false;
}
if(this.fileList){
this.formData.files = this.fileList
}
this.formData.status = "processing";
this.formData.categoryId = this.selCateObj.id;
this.formData.categoryList = [];
@ -234,74 +222,6 @@ export default {
resetData() {
this.agencyIdArray = []
},
beforeUpload(file) {
const array = file.name.split(".");
const extension = array[array.length - 1];
const formatarray = [
"jpg",
"png",
"jpeg",
"bmp",
"mp4",
"wma",
"m4a",
"mp3",
"doc",
"docx",
"xls",
"xlsx",
"pdf",
];
if (formatarray.indexOf(extension) === -1) {
this.$message.error("只支持图片、word、pdf");
return false;
}
},
handleFileRemove(file) {
if (file && file.status === "success") {
this.fileList.splice(
this.fileList.findIndex((item) => item.uid === file.uid),
1
);
}
},
handleFileSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
const array = file.name.split(".");
const fileType = array[array.length - 1];
const picArray = ["jpg", "png", "jpeg", "bmp"];
const videoarray = ["mp4", "wma", "m4a"];
const docArray = ["doc", "docx", "xls", "xlsx", "pdf"];
const mp3Array = ["mp3"];
if (picArray.indexOf(fileType) > -1) {
file.attachmentFormat = "image";
} else if (videoarray.indexOf(fileType) > -1) {
file.attachmentFormat = "video";
} else if (docArray.indexOf(fileType) > -1) {
file.attachmentFormat = "doc";
} else if (mp3Array.indexOf(fileType) > -1) {
file.attachmentFormat = "voice";
}
file.url = res.data.url;
file.type = fileType;
file.attachmentName = file.name;
file.attachmentType = file.type;
file.attachmentUrl = file.url;
this.fileList.push(file);
} else this.$message.error(res.msg);
},
//
handleFileDownload(file) {
var a = document.createElement("a");
var event = new MouseEvent("click");
a.download = file.name;
a.href = file.url;
a.dispatchEvent(event);
},
//
startLoading() {
loading = Loading.service({

579
src/views/modules/shequzhili/eventOld/cpts/process-form-project.vue

@ -1,105 +1,76 @@
<template>
<div class="">
<el-form
ref="ref_form"
:inline="false"
:model="formData"
:rules="dataRule"
label-width="100px"
>
<el-form-item
label="事件分类"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="categoryList"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<!-- <el-cascader class="cell-width-2"
<el-form ref="ref_form"
:inline="false"
:model="formData"
:rules="dataRule"
label-width="100px">
<el-form-item label="事件分类"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="categoryList">
<div :class="{'visiual-form':source==='visiual'}">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader> -->
<my-cascader
v-model="formData.categoryList"
:casOptions="casOptions"
:props="optionProps"
:optionProps="optionProps"
@handleChangeCate="handleChangeCate"
></my-cascader>
@change="handleChangeCate"></el-cascader>
</div>
</el-form-item>
<el-form-item
label="项目标题"
prop="title"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input
class="cell-width-1"
maxlength="50"
placeholder="请输入项目标题"
v-model="formData.title"
>
<el-form-item label="项目标题"
prop="title"
:class="{'form-item':source==='visiual'}"
label-width="150px"
style="display: block">
<div :class="{'visiual-form':source==='visiual'}">
<el-input class="cell-width-1"
maxlength="50"
placeholder="请输入项目标题"
v-model="formData.title">
</el-input>
</div>
</el-form-item>
<el-form-item
label="所属网格 "
prop="gridId"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-select
v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1"
>
<el-option
v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form-item label="所属网格 "
prop="gridId"
:class="{'form-item':source==='visiual'}"
label-width="150px"
style="display: block">
<div :class="{'visiual-form':source==='visiual'}">
<el-select v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1">
<el-option v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item
label="处理部门"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="staffList"
>
<el-popover
placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel"
>
<el-form-item label="处理部门"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="staffList">
<el-popover placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel">
<div class="f">
<select-staff
@confirm="(ret) => (formData.staffList = ret)"
@close="visibleStaffPanel = false"
/>
<select-staff @confirm="(ret) => (formData.staffList = ret)"
@close="visibleStaffPanel = false" />
</div>
<div slot="reference">
<a v-if="formData.staffList.length == 0" style="cursor: pointer"
>点击选择</a
>
<a v-else style="cursor: pointer"
>已选 {{ formData.staffList.length }} </a
>
<a v-if="formData.staffList.length == 0"
style="cursor: pointer">点击选择</a>
<a v-else
style="cursor: pointer">已选 {{ formData.staffList.length }} </a>
</div>
</el-popover>
</el-form-item>
@ -121,134 +92,116 @@
</div>
</el-form-item> -->
<el-form-item
label="项目方案"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="publicReply"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input
type="textarea"
class="cell-width-area"
:rows="2"
placeholder="请输入项目方案"
v-model="formData.publicReply"
>
<el-form-item label="项目方案"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="publicReply">
<div :class="{'visiual-form':source==='visiual'}">
<el-input type="textarea"
class="cell-width-area"
:rows="2"
placeholder="请输入项目方案"
v-model="formData.publicReply">
</el-input>
</div>
</el-form-item>
<el-form-item
label="内部备注"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="internalRemark"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input
type="textarea"
class="cell-width-area"
:rows="2"
placeholder="请输入内部备注"
v-model="formData.internalRemark"
>
<el-form-item label="内部备注"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="internalRemark">
<div :class="{'visiual-form':source==='visiual'}">
<el-input type="textarea"
class="cell-width-area"
:rows="2"
placeholder="请输入内部备注"
v-model="formData.internalRemark">
</el-input>
</div>
</el-form-item>
<el-form-item
label="图片/附件"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="internalFile"
>
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-upload="beforeImgUpload"
>
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i>
<img
v-else
style="width: 27px; height: 27px"
src="@/assets/img/file-add.png"
/>
<el-form-item label="图片/附件:"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="internalFile">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-upload="beforeImgUpload">
<i v-if="source==='manage'"
:class="['el-icon-plus']"></i>
<img v-else
style="width:27px;height:27px"
src="@/assets/img/file-add.png">
</el-upload>
</el-form-item>
<el-form-item
label="标签"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="tagList"
>
<fold-text v-if="tagList.length > 0" style="width: 300px" :row="3">
<div :key="item.name" class="tag-name" v-for="item in tagList">
<el-form-item label="标签"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="tagList">
<fold-text v-if="tagList.length>0"
style="width: 300px"
:row="3">
<div :key="item.name"
class="tag-name"
v-for="item in tagList">
{{ item.name }}
</div>
</fold-text>
<el-popover
placement="top"
width="450"
height="450"
v-model="visibleTagPanel"
>
<div class="f" style="min-height: 120px">
<el-popover placement="top"
width="450"
height="450"
v-model="visibleTagPanel">
<div class="f"
style="min-height: 120px">
<h2>选择标签</h2>
<el-select
style="width: 350px"
v-model="selectedTagData"
multiple
allow-create
filterable
placeholder="请选择"
@change="handleTagChange"
>
<el-select style="width: 350px"
v-model="selectedTagData"
multiple
allow-create
filterable
placeholder="请选择"
@change="handleTagChange">
<el-option-group label="自定义标签">
<el-option
v-for="item in tagOptions.customized"
:key="item.id"
:label="item.name"
:value="item.id"
>
<el-option v-for="item in tagOptions.customized"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-option-group>
<el-option-group label="常用标签">
<el-option
v-for="item in tagOptions.defaulted"
:key="item.id"
:label="item.name"
:value="item.id"
>
<el-option v-for="item in tagOptions.defaulted"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-option-group>
</el-select>
<el-button
style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectTag"
>关闭</el-button
>
<el-button style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectTag">关闭</el-button>
</div>
<div slot="reference">
<el-button v-if="source === 'manage'" size="small" type=""
>选择</el-button
>
<div v-else class="one-btn">选择</div>
<el-button v-if="source==='manage'"
size="small"
type="">选择</el-button>
<div v-else
class="one-btn">选择</div>
</div>
</el-popover>
</el-form-item>
</el-form>
</div>
</template>
@ -258,64 +211,64 @@ import { requestPost } from "@/js/dai/request";
import selectStaff from "@/views/components/selectStaff";
import formVltHelper from "dai-js/tools/formVltHelper";
import foldText from "@/views/components/foldText";
import myCascader from "./myCascader.vue";
import { isCard } from "@/utils/validate";
let loading; //
function iniFmData() {
function iniFmData () {
return {
operationType: "1", //[0: 1: 2:]
publicReply: "", // 1000
internalRemark: "", // 1000
gridId: "", //
assistanceUnitIndex: "",
assistanceUnitId: "", // Id
assistanceUnitType: "", // 12
staffList: [], //
categoryList: [], //
tagList: [], //
internalFile: [], //
title: "", //
publicFile: [], //
locateAddress: "", //
locateLongitude: "", //
locateDimension: "", //
eventId: "", //
operationType: '1',//[0: 1: 2:]
publicReply: '',// 1000
internalRemark: '',// 1000
gridId: '',//
assistanceUnitIndex: '',
assistanceUnitId: '',// Id
assistanceUnitType: '',// 12
staffList: [],//
categoryList: [],//
tagList: [],//
internalFile: [],//
title: '',//
publicFile: [],//
locateAddress: '',//
locateLongitude: '',//
locateDimension: '',//
eventId: '',//
};
}
export default {
data() {
data () {
return {
btnDisable: false,
customerId: localStorage.getItem("customerId"),
gridList: [], //list--
myDepartmentList: [], //
gridList: [],//list--
myDepartmentList: [],//
visibleStaffPanel: false,
assistanceUnitList: [], //
tagList: [], //
assistanceUnitList: [],//
tagList: [],//
tagOptions: [],
visibleTagPanel: false,
selectedTagData: [],
casOptions: [],
// iscascaderShow: 0,
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: "id",
label: "name",
children: "subCategory",
value: 'id',
label: 'name',
children: 'subCategory',
},
formData: iniFmData(),
formDataTemp: {
assistanceUnitIndex: 0,
assistanceUnitId: "", // Id
assistanceUnitType: "", // 12
assistanceUnitId: '',// Id
assistanceUnitType: '',// 12
eventId: "",
gridId: "63d5ff92ea981b1c58e4914ac894c610",
@ -327,34 +280,38 @@ export default {
internalFile: [],
staffList: [],
tagList: [
{
id: "46294b3c9f96ee4d0b00e997e06c8f97",
isDisable: "enable",
name: "车行道、人行道、盲道、无障碍通道、路名牌",
},
{
id: "953bafc1191f784841d9b8da61ec7b9b",
isDisable: "enable",
name: "城市广场管理",
},
],
tagList: [{
id: "46294b3c9f96ee4d0b00e997e06c8f97",
isDisable: "enable",
name: "车行道、人行道、盲道、无障碍通道、路名牌",
},
{
id: "953bafc1191f784841d9b8da61ec7b9b",
isDisable: "enable",
name: "城市广场管理",
}],
},
okflag: false,
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
eventDetailCopy: {},
eventDetailCopy: {}
};
},
components: { selectStaff, foldText, myCascader },
components: { selectStaff, foldText },
computed: {
dataRule() {
dataRule () {
return {
categoryList: [
{ required: true, message: "事件分类不能为空", trigger: "blur" },
{ required: true, message: "请填写事件分类", trigger: "blur" },
],
title: [
{ required: true, message: "标题不能为空", trigger: "blur" },
],
title: [{ required: true, message: "标题不能为空", trigger: "blur" }],
gridId: [
{ required: true, message: "所属网格不能为空", trigger: "blur" },
],
@ -364,12 +321,14 @@ export default {
publicReply: [
{ required: true, message: "项目方案不能为空", trigger: "blur" },
],
};
},
},
props: {
gridId: {
//id
gridId: {//id
type: String,
default: "",
},
@ -379,21 +338,23 @@ export default {
},
eventDetailData: {
type: Object,
default() {
return {};
},
default () {
return {}
}
},
source: {
//manage visiual
source: {//manage visiual
type: String,
default: "manage",
},
default: 'manage'
}
},
watch: {
gridId: function (val) {
this.formData.gridId = val;
this.formData.gridId = val
},
"formData.assistanceUnitIndex": function (val) {
if (val === "" || this.assistanceUnitList.length === 0) {
this.formData.assistanceUnitId = "";
this.formData.assistanceUnitType = "";
@ -405,7 +366,7 @@ export default {
}
},
async selectedTagData(val) {
async selectedTagData (val) {
const { tagOptions } = this;
this.tagList = await Promise.all(
val.map(async (id) => {
@ -432,112 +393,115 @@ export default {
);
this.tagList = this.tagList.filter((item) => item.id);
console.log(this.tagList);
console.log(this.tagList)
},
},
created() {},
created () {
async mounted() {
const { user } = this.$store.state;
this.agencyId = user.agencyId;
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
this.getCategoryList();
this.loadGrid();
this.getMyDepartmentList();
// this.getAssistanceUnitList();
this.getTagList();
this.getTagList()
// this.formData = { ...this.formDataTemp }
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
this.formData.gridId = this.eventDetailCopy.gridId;
this.formData.gridId = this.eventDetailCopy.gridId
if (
this.eventDetailCopy.parentCategoryId &&
this.eventDetailCopy.categoryId
) {
this.selCategoryArray = [];
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId);
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId,
};
id: this.eventDetailCopy.categoryId
}
this.formData.categoryList = [];
this.formData.categoryList.push(this.selCateObj);
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
}
} else {
this.formData.gridId = this.gridId;
this.formData.gridId = this.gridId
}
},
methods: {
async getCategoryList() {
const url = "/governance/issueprojectcategorydict/list";
async getCategoryList () {
const url = "/governance/issueprojectcategorydict/list"
let params = {};
let params = {}
const { data, code, msg } = await requestPost(url, params);
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data);
let treeDataNew = this.filterTree(data)
//
// ++this.iscascaderShow;
this.casOptions = [];
this.casOptions = treeDataNew;
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg);
this.$message.error(msg)
}
},
handleChangeCate(obj) {
// console.log(this.$refs["myCascader"].getCheckedNodes()[0].data);
// this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data;
this.selCateObj = obj
this.formData.categoryList = [];
let flag = JSON.stringify(obj) == '{}'
if(flag) this.formData.categoryList = []
else this.formData.categoryList.push(this.selCateObj);
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
},
//
filterTree(arr) {
let childs = arr;
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory);
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory;
delete childs[i].subCategory
}
}
}
return arr;
return arr
},
async loadGrid() {
const url = "/gov/org/customergrid/gridoption";
async loadGrid () {
const url = "/gov/org/customergrid/gridoption"
let params = {
agencyId: this.agencyId,
};
agencyId: this.agencyId
}
const { data, code, msg } = await requestPost(url, params);
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.gridList = data;
this.gridList = data
} else {
this.$message.error(msg);
this.$message.error(msg)
}
},
//
async getMyDepartmentList() {
async getMyDepartmentList () {
const url = "/governance/trace/approvalagencylist";
const { data, code, msg } = await requestPost(url, {
issueId: "",
projectStaffId: "",
issueId: '',
projectStaffId: '',
});
if (code === 0) {
@ -548,7 +512,7 @@ export default {
},
//
async getAssistanceUnitList() {
async getAssistanceUnitList () {
const url = "/heart/icpartyunit/assistanceUnitList";
const { data, code, msg } = await requestPost(url, {
@ -557,14 +521,17 @@ export default {
if (code === 0) {
this.assistanceUnitList = data;
} else {
this.$message.error(msg);
}
},
//
async getTagList() {
async getTagList () {
const url = "/governance/issueprojecttagdict/list";
const { data, code, msg } = await requestPost(url, {});
const { data, code, msg } = await requestPost(url, {
});
if (code === 0) {
this.tagOptions = {
@ -576,26 +543,29 @@ export default {
}
},
handleTagChange(val) {
handleTagChange (val) {
console.log(val);
},
updateProjectTag() {
updateProjectTag () {
this.visibleTagPanel = false;
},
async getProjectInfo() {
this.okflag = false;
async getProjectInfo () {
this.okflag = false
this.$refs["ref_form"].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj);
} else {
this.formData.tagList = this.tagList;
this.okflag = true;
this.formData.tagList = this.tagList
this.okflag = true
}
});
},
beforeImgUpload(file) {
beforeImgUpload (file) {
const isLt1M = file.size / 1024 / 1024 < 10;
if (!isLt1M) {
@ -603,8 +573,10 @@ export default {
}
return isLt1M;
},
resetData() {},
handleImgSuccess(res, file, fileList) {
resetData () {
},
handleImgSuccess (res, file, fileList) {
console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url);
@ -621,7 +593,7 @@ export default {
}
},
handleImgRemove(file) {
handleImgRemove (file) {
let index = this.formData.internalFile.findIndex(
(item) => item.url == file.response.data.url
);
@ -629,8 +601,9 @@ export default {
console.log(this.formData.internalFile);
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -638,7 +611,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
@ -660,7 +633,7 @@ export default {
</style>
<style scoped>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}

436
src/views/modules/shequzhili/eventOld/cpts/process-form-replay.vue

@ -1,215 +1,263 @@
<!--
* @Author: mk 2403457699@qq.com
* @Date: 2023-07-26 16:23:24
* @LastEditors: mk 2403457699@qq.com
* @LastEditTime: 2023-08-09 10:21:34
* @Description: 事件分类回填
*
*
-->
<template>
<div class="search">
<el-form ref="ref_form1" :inline="false" :model="formData" :rules="dataRule">
<el-form-item label="事件分类" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
prop="categoryList">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-cascader class="cell-width-2" ref="myCascader" v-model="selCategoryArray" :key="iscascaderShow"
:options="casOptions" :props="optionProps" :show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</div>
</el-form-item>
<el-form-item label="回复内容" prop="content" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5"
placeholder="请输入回复内容,不超过500字" v-model="formData.content"></el-input>
</div>
</el-form-item>
<el-form-item label="办结时限" prop="timeLimit" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-date-picker v-model="formData.timeLimit" class="cell-width-1" type="datetime" placeholder="办结时限"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</div>
</el-form-item>
</el-form>
<el-form
ref="ref_form1"
:inline="false"
:model="formData"
:rules="dataRule"
>
<el-form-item
label="事件分类"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="categoryList"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</div>
</el-form-item>
<el-form-item
label="回复内容"
prop="content"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input
class="cell-width-area"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入回复内容,不超过500字"
v-model="formData.content"
></el-input>
</div>
</el-form-item>
<el-form-item
label=""
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-checkbox
:class="{ 'form-item': source === 'visiual' }"
v-model="status"
@change="handleChangeStatus"
>已完成</el-checkbox
>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
let loading; //
export default {
</template>
<script>
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper";
import { isCard } from "@/utils/validate";
let loading; //
export default {
data() {
return {
btnDisable: false,
formData: {
operationType: '0', //[0: 5 6]
content: '',
status: 'processing',
timeLimit: '',//
categoryList: [],
},
status: false,
okflag: false,
eventDetailCopy: {},
selCategoryArray: [],
casOptions: [],
iscascaderShow: 0,
optionProps: {
multiple: false,
value: "id",
label: "categoryName",
children: "children",
level: 'categoryType'
},
dataRule: {
content: [
{ required: true, message: '回复内容不能为空', trigger: 'blur' },
],
categoryList: [
// { required: true, message: '', trigger: 'blur' },
],
timeLimit: [
{ required: true, message: "办结时限不能为空", trigger: "blur" },
]
}
};
return {
btnDisable: false,
formData: {
operationType: "0", //[0: 1: 2:]
content: "",
status: "",
categoryList: [],
},
status: false,
okflag: false,
eventDetailCopy: {},
selCategoryArray:[],
casOptions: [],
iscascaderShow: 0,
optionProps: {
multiple: false,
value: "id",
label: "name",
children: "subCategory",
},
dataRule:{
content: [
{ required: true, message: "回复内容不能为空", trigger: "blur" },
],
categoryList: [
// { required: true, message: "", trigger: "blur" },
],
}
};
},
components: {},
components: { },
computed: {},
props: {
eventId: {
type: String,
default: '',
},
eventDetailData: {
type: Object,
default() {
return {};
},
},
source: {
//manage visiual
type: String,
default: 'manage',
eventId: {
type: String,
default: "",
},
eventDetailData: {
type: Object,
default() {
return {};
},
},
source: {
//manage visiual
type: String,
default: "manage",
},
},
watch: {
},
watch: {},
created() {
console.log(this.source);
},
async mounted() {
this.getCategoryList();
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
console.log('this.eventDetailCopy', this.eventDetailCopy);
let value = this.eventDetailCopy.parentCategoryId.split(",");
value.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(value)
this.getCategoryList();
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
// eventDetailCopy
if (
this.eventDetailCopy.parentCategoryId &&
this.eventDetailCopy.categoryId
) {
this.selCategoryArray.push( this.eventDetailCopy.parentCategoryId,this.eventDetailCopy.categoryId)
}
}
},
methods: {
async getCategoryList() {
const url = '/governance/icEvent/getCategoryTree';
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let treeDataNew = this.deepTree(data, "children");
//
++this.iscascaderShow;
this.casOptions = [];
this.casOptions = treeDataNew;
async getCategoryList() {
const url = "/governance/issueprojectcategorydict/list";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let treeDataNew = this.filterTree(data);
//
++this.iscascaderShow;
this.casOptions = [];
this.casOptions = treeDataNew;
} else {
this.$message.error(msg);
}
},
handleChangeCate() {
if(this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]){
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
}else{
this.selCateObj = {}
}
console.log(this.selCateObj);
},
//
filterTree(arr) {
let childs = arr;
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory);
} else {
this.$message.error(msg);
}
if (this.eventDetailCopy.parentCategoryId) {
let pids = this.eventDetailCopy.parentCategoryId.split(',');
pids.push(this.eventDetailCopy.categoryId)
pids.forEach(id => {
let node = this.buildTree(this.casOptions, toString(id));
this.selCategoryArray.push(node)
});
let node = this.buildTree(this.casOptions, this.eventDetailCopy.categoryId);
this.selCategoryArray.push(node);
console.log(this.selCategoryArray);
delete childs[i].subCategory;
}
},
buildTree(nodes, treeId) {
nodes.forEach(item => {
if (treeId === item.id) {
return item;
} else {
this.buildTree(item.children, treeId)
}
})
},
handleChangeCate(value) {
if (this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0]) {
this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0].data
}
}
return arr;
},
async getReplayInfo() {
this.okflag = false;
this.$refs["ref_form1"].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj);
} else {
if (this.status) {
console.log(this.selCateObj);
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.error("请选择事件分类");
return false;
}
this.formData.status = "closed_case";
} else {
this.selCateObj = {}
}
if(!value) return
this.selCategoryArray = value
},
//
deepTree(arr, children) {
if (Array.isArray(arr) && arr.length > 0) {
return arr.map((item) => {
return {
...item,
[children]:
(item[children] &&
item[children].length > 0 &&
this.deepTree(item[children], children)) ||
null,
};
});
}
},
async getReplayInfo() {
this.okflag = false;
this.$refs['ref_form1'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj);
} else {
if (this.status) {
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.error('请选择事件分类');
return false;
}
}
this.formData.categoryList = [];
this.formData.categoryList.push(this.selCateObj);
this.okflag = true;
}
});
},
resetData() { },
//
startLoading() {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)', //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
this.formData.status = "processing";
}
},
this.formData.categoryId = this.selCateObj.id;
this.formData.categoryList = [];
this.formData.categoryList.push(this.selCateObj);
this.okflag = true;
}
});
},
handleChangeStatus(val){
console.log(val);
if(!val){
this.$set(this.dataRule,'categoryList',[])
}else{
this.$set(this.dataRule,'categoryList',[{ required: true, message: "事件分类不能为空", trigger: "blur" }])
}
console.log(this.dataRule);
},
resetData() {},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
}
},
},
};
</script>
<style lang='scss' scoped>
@import '@/assets/scss/modules/visual/a_customize.scss';
@import '@/assets/scss/modules/shequzhili/event-info.scss';
.el-dialog__body {
};
</script>
<style lang='scss' scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
@import "@/assets/scss/modules/shequzhili/event-info.scss";
</style>
<style scoped>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>
}
</style>

175
src/views/modules/shequzhili/eventOld/cpts/process-form-urban.vue

@ -0,0 +1,175 @@
<template>
<div class="search">
<el-form ref="ref_form1"
:inline="false"
:model="formData"
:rules="dataRule">
<el-form-item label="处理意见"
prop="suggestion"
label-width="150px"
:class="{'form-item':source==='visiual'}"
style="display: block">
<div :class="{'visiual-form':source==='visiual'}">
<el-input class="cell-width-area"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入处理意见,不超过500字"
v-model="formData.suggestion"></el-input>
</div>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper";
import { isCard } from "@/utils/validate";
let loading; //
export default {
data () {
return {
btnDisable: false,
formData: {
operationType: '4',//[0: 1: 2: 3:,4]
suggestion: '',
},
okflag: false,
eventDetailCopy: {},
casOptions: [],
iscascaderShow: 0,
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
};
},
components: {},
computed: {
dataRule () {
return {
suggestion: [
{ required: true, message: "处理建议不能为空", trigger: "blur" },
],
};
},
},
props: {
eventId: {
type: String,
default: "",
},
eventDetailData: {
type: Object,
default () {
return {}
}
},
source: {//manage visiual
type: String,
default: 'manage'
}
},
watch: {},
created () {
console.log(this.source)
},
async mounted () {
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId
}
}
}
},
methods: {
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
},
async getUrbanInfo () {
this.okflag = false
this.$refs["ref_form1"].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj);
} else {
this.okflag = true
}
});
},
resetData () {
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
}
},
},
};
</script>
<style lang='scss' scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
@import "@/assets/scss/modules/shequzhili/event-info.scss";
</style>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>

406
src/views/modules/shequzhili/eventOld/cpts/process-form.vue

@ -1,201 +1,281 @@
<template>
<div class="">
<div>
<el-form ref="ref_form1" :inline="false" :rules="dataRule" class="form">
<el-form-item label="处理方式" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
prop="operationType">
<el-radio-group :class="{ 'form-item': source === 'visiual' }" v-model="operationType"
@change="handleChangeOperationType">
<el-radio v-if="!eventId" label="4">暂不处理</el-radio>
<el-radio label="0">回复</el-radio>
<el-radio label="5">指派</el-radio>
<el-radio label="6">完成并回复</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div v-if="operationType === '0'">
<process-form-replay ref="ref_process_form_replay" :source="source" :eventDetailData="eventDetailData"
:eventId="eventId"></process-form-replay>
</div>
<div v-if="operationType === '6'">
<process-form-replay-end ref="ref_process_form_replay_end" :source="source"
:eventDetailData="eventDetailData" :eventId="eventId"></process-form-replay-end>
</div>
<div v-if="operationType === '5'">
<process-form-designate ref="ref_process_form_designate" :source="source" :eventDetailData="eventDetailData"
:eventId="eventId"></process-form-designate>
</div>
</div>
<div class="">
<div>
<el-form ref="ref_form1"
:inline="false"
:rules="dataRule"
class="form">
<el-form-item label="处理方式"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="operationType">
<el-radio-group :class="{'form-item':source==='visiual'}"
v-model="operationType"
@change="handleChangeOperationType">
<el-radio v-if="!eventId"
label="4">暂不处理</el-radio>
<el-radio label="0">回复</el-radio>
<el-radio label="1">立项</el-radio>
<el-radio label="2">转服务</el-radio>
<el-radio label="3">转议题</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div v-if="operationType==='0'">
<process-form-replay ref="ref_process_form_replay"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"></process-form-replay>
</div>
<div v-if="operationType==='1'">
<process-form-project ref="ref_process_form_project"
:source="source"
:eventDetailData="eventDetailData"
:gridId="gridId"
:eventId="eventId"></process-form-project>
</div>
<div v-if="operationType==='2'">
<process-form-demand ref="ref_process_form_demond"
:source="source"
:eventId="eventId"
:transferObj="transferObj"
:demandUserId="demandUserId"
:demandUserName="demandUserName"
:demandUserMobile="demandUserMobile"
:eventDetailData="eventDetailData"></process-form-demand>
</div>
<div v-if="operationType==='3'">
<process-form-issue ref="ref_process_form_issue"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"></process-form-issue>
</div>
</div>
</div>
</template>
<script>
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import processFormReplay from "./process-form-replay";
import processFormReplayEnd from "./process-form-replay-end";
import processFormProject from "./process-form-project";
import processFormDemand from "./process-form-demand";
import processFormIssue from "./process-form-issue";
import processFormDesignate from "./process-form-designate";
let loading; //
export default {
data() {
return {
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
operationType: '',
replayInfo: {},
demand: {},
project: {},
issueInfo: {},
okflag: false,
eventDetailCopy: {},
transferObj: {
latitude: "",
longitude: ""
}
};
data () {
return {
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
operationType: '',
replayInfo: {},
demand: {},
project: {},
issueInfo: {},
okflag: false,
eventDetailCopy: {},
transferObj:{
latitude :"",
longitude :""
}
};
},
components: {
processFormReplay,
processFormProject,
processFormDemand,
processFormIssue
},
computed: {
dataRule () {
return {
operationType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" },
],
};
},
components: {
processFormReplay,
processFormProject,
processFormDemand,
processFormIssue,
processFormDesignate,
processFormReplayEnd
},
props: {
demandUserId: {
type: String,
default: "",
},
computed: {
dataRule() {
return {
operationType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" },
],
};
},
demandUserName: {
type: String,
default: "",
},
props: {
demandUserId: {
type: String,
default: "",
},
demandUserName: {
type: String,
default: "",
},
demandUserMobile: {
type: String,
default: "",
},
gridId: {
type: String,
default: "",
},
eventId: {
type: String,
default: "",
},
eventDetailData: {
type: Object,
default() {
return {}
}
},
source: {//manage visiual
type: String,
default: 'manage'
}
demandUserMobile: {
type: String,
default: "",
},
gridId: {
type: String,
default: "",
},
eventId: {
type: String,
default: "",
},
eventDetailData: {
type: Object,
default () {
return {}
}
},
source: {//manage visiual
type: String,
default: 'manage'
}
},
watch: {
},
created () {
console.log(this.source)
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
}
if(this.eventDetailData.operationType){
this.operationType = this.eventDetailCopy.operationType
// this.getProcessInfo()
}
this.$EventBus.$on('map',(val)=>{
this.transferObj.latitude = val.lat
this.transferObj.longitude = val.lng
})
},
methods: {
handleChangeOperationType (val) {
},
async getProcessInfo () {
this.okflag = false
if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo()
if (this.$refs.ref_process_form_replay.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay.formData
this.okflag = true
} else {
return false
}
watch: {},
} else if (this.operationType === '1') {
this.$refs.ref_process_form_project.getProjectInfo()
if (this.$refs.ref_process_form_project.okflag) {
created() { },
this.project = this.$refs.ref_process_form_project.formData
async mounted() {
const { user } = this.$store.state
this.agencyId = user.agencyId
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
//
this.okflag = true
} else {
return false
}
if (this.eventDetailData.operationType) {
this.operationType = this.eventDetailCopy.operationType
} else if (this.operationType === '2') {
this.$refs.ref_process_form_demond.getDemandInfo()
if (this.$refs.ref_process_form_demond.okflag) {
this.demand = this.$refs.ref_process_form_demond.formData
this.okflag = true
} else {
return false
}
this.$EventBus.$on('map', (val) => {
this.transferObj.latitude = val.lat
this.transferObj.longitude = val.lng
})
} else if (this.operationType === '3') {
this.$refs.ref_process_form_issue.getIssueInfo()
if (this.$refs.ref_process_form_issue.okflag) {
this.issueInfo = this.$refs.ref_process_form_issue.formData
this.okflag = true
} else {
return false
}
}
},
methods: {
handleChangeOperationType(val) {
this.operationType = val;
},
async getProcessInfo() {
this.okflag = false
if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo()
if (this.$refs.ref_process_form_replay.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay.formData;
this.okflag = true;
}
} else if (this.operationType === '5') {
this.$refs.ref_process_form_designate.getReplayInfo()
this.replayInfo = this.$refs.ref_process_form_designate.formData
if (this.$refs.ref_process_form_designate.okflag) {
this.replayInfo = this.$refs.ref_process_form_designate.formData
this.okflag = true
}
} else if (this.operationType === '6') {
this.$refs.ref_process_form_replay_end.getReplayInfo()
this.replayInfo = this.$refs.ref_process_form_replay_end.formData
if (this.$refs.ref_process_form_replay_end.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay_end.formData
this.okflag = true
}
}else {
return false
}
},
handleCancle() {
this.resetData();
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
resetData() {
},
//
endLoading() {
if (loading) {
loading.close();
}
},
handleCancle () {
this.resetData();
},
resetData () {
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
</style>
<style scoped>
.el-dialog__body {
padding: 0 10px 20px !important;
padding: 0 10px 20px !important;
}
</style>

1585
src/views/modules/shequzhili/eventOld/eventList.vue

File diff suppressed because it is too large

9
vue.config.js

@ -1,12 +1,3 @@
/*
* @Author: mk 2403457699@qq.com
* @Date: 2023-09-20 13:46:51
* @LastEditors: mk 2403457699@qq.com
* @LastEditTime: 2023-09-22 15:16:23
* @Description: 介绍一下改动了什么
*
*
*/
/**
* 配置参考: https://cli.vuejs.org/zh/config/
*/

Loading…
Cancel
Save