Browse Source

Merge branch 'dev-yiti1009' into test

test
jiangyy 3 years ago
parent
commit
28de8c8fe4
  1. 163
      src/views/modules/communityParty/article/index.vue
  2. 573
      src/views/modules/communityParty/heart/heartForm.vue
  3. 10
      src/views/modules/shequzhili/issue/cpts/issue-detail.vue
  4. 19
      src/views/modules/shequzhili/issue/cptsAudit/issue-info.vue

163
src/views/modules/communityParty/article/index.vue

@ -42,7 +42,7 @@
<template v-slot:listBtnbefore="{ item }"> <template v-slot:listBtnbefore="{ item }">
<el-button v-if="item.isTop == '1'" <el-button v-if="item.isTop == '1'"
@click="handleTopArticle(item,'cancel_top')" @click="handleCancleTopArticle(item,'cancel_top')"
type="text" type="text"
size="small" size="small"
style="color: #fe6252">取消置顶</el-button> style="color: #fe6252">取消置顶</el-button>
@ -67,6 +67,57 @@
@close="offlineShowed = false" @close="offlineShowed = false"
@afterOffline="handleOfflineSuccess"></offline> @afterOffline="handleOfflineSuccess"></offline>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="showAddImage"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="上传封面图片"
width="650px"
top="5vh"
class="dialog-h"
@closed="showAddImage = false">
<div class="dialog-h-content scroll-h">
<!-- <span>请先上 传封面图片</span> -->
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="div_form">
<div class="form_flex">
<div class="form_item">
<el-form-item label=""
prop="selImgUrl"
label-width="150px"
style="display: block">
<el-upload :headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:before-upload="beforeAvatarUpload"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="1">
<span class="font-14">选择图片</span>
</el-upload>
</el-form-item>
</div>
</div>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="showAddImage = false"> </el-button>
<el-button size="small"
type="primary"
@click="handleAddImage"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -475,6 +526,15 @@ export default {
return true; return true;
}, },
}, },
formData: {},
showAddImage: false,
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
replayImgList: [],
hideUploadBtn: false,
selType: 'top',
selArticleId: '',
selImgUrl: ''
}; };
}, },
components: { basePage, offline }, components: { basePage, offline },
@ -491,24 +551,103 @@ export default {
this.$refs.offlineForm.initForm(item); this.$refs.offlineForm.initForm(item);
}, },
async handleAddImage () {
console.log('formData', this.formData)
this.topArticle()
},
async handleCancleTopArticle (item, type) {
this.selType = type
this.selArticleId = item.articleId
await this.topArticle()
},
async handleTopArticle (item, type) { async handleTopArticle (item, type) {
const url = "/gov/voice/article/topArticle"; this.selType = type
this.selArticleId = item.articleId
let hasImage = await this.isHasImage()
if (hasImage === 'refrsh') {
this.$message.error("请求失败,请重新尝试");
} else if (hasImage === 'no') {
// this.$message.info("");
this.showAddImage = true
} else {
await this.topArticle()
}
},
async isHasImage () {
const url = "/gov/voice/article/detailV2";
const { tableData } = this; const { tableData } = this;
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
articleId: item.articleId, articleId: this.selArticleId,
type: type
}); });
if (code === 0) {
// this.formData = data
if (data.imgUrl) {
return 'has'
} else {
return 'no'
}
} else {
return 'refrsh'
}
},
async topArticle () {
const url = "/gov/voice/article/topArticle";
const { tableData } = this;
let params = {
articleId: this.selArticleId,
type: this.selType
}
if (this.selImgUrl) {
params.imgUrl = this.selImgUrl
}
const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.$message.success("操作成功!"); this.$message.success("操作成功!");
this.showAddImage = false
this.$refs.basePage.refresh(); this.$refs.basePage.refresh();
} else { } else {
this.$message.success("操作失败!"); this.$message.success("操作失败!");
} }
}, },
removePic (file, fileList) {
this.selImgUrl = "";
this.replayImgList = [];
this.hideUploadBtn = fileList.length >= 1;
},
// 3
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 1;
},
exceedPic () {
this.$message.warning("只能上传1张封面图");
},
beforeAvatarUpload (file) {
const isJPG = file.type === "image/jpeg";
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 10MB!");
}
return isLt2M;
},
handleSuccess (response, file, fileList) {
this.replayImgList.push(file);
this.selImgUrl = response.data.url;
},
handleOfflineSuccess () { handleOfflineSuccess () {
this.$refs.basePage.refresh(); this.$refs.basePage.refresh();
this.offlineShowed = false; this.offlineShowed = false;
@ -541,4 +680,18 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
@import "@/assets/scss/modules/management/form-main.scss";
.avatar-uploader {
margin: 0 0 0 20px;
}
</style>
<style lang="scss">
.hide {
.el-upload--picture-card {
display: none !important;
}
}
</style>

573
src/views/modules/communityParty/heart/heartForm.vue

@ -1,279 +1,215 @@
<template> <template>
<div> <div>
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<el-form <el-form ref="ref_form"
ref="ref_form" :inline="true"
:inline="true" :model="formData"
:model="formData" :rules="dataRule"
:rules="dataRule" :disabled="formType === 'detail'"
:disabled="formType === 'detail'" class="div_form">
class="div_form"
>
<div class="form_flex"> <div class="form_flex">
<div class="form_item"> <div class="form_item">
<el-form-item label="主办方" prop="sponsorId" label-width="150px"> <el-form-item label="主办方"
<el-cascader prop="sponsorId"
v-if="formData.richTextFlag || formType === 'add'" label-width="150px">
class="item_width_6" <el-cascader v-if="formData.richTextFlag || formType === 'add'"
ref="myCascader" class="item_width_6"
v-model="agencyIdArray" ref="myCascader"
:options="orgOptions" v-model="agencyIdArray"
:props="orgOptionProps" :options="orgOptions"
:show-all-levels="false" :props="orgOptionProps"
@change="handleChangeAgency" :show-all-levels="false"
></el-cascader> @change="handleChangeAgency"></el-cascader>
<el-input <el-input v-else
v-else class="item_width_6"
class="item_width_6" v-model="formData.sponsorName"></el-input>
v-model="formData.sponsorName"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="活动标题"
label="活动标题" prop="title"
prop="title" label-width="150px"
label-width="150px" style="display: block">
style="display: block" <el-input class="item_width_6"
> type="textarea"
<el-input maxlength="50"
class="item_width_6" show-word-limit
type="textarea" :rows="2"
maxlength="50" placeholder="请输入活动标题,不超过50字"
show-word-limit v-model="formData.title"></el-input>
:rows="2"
placeholder="请输入活动标题,不超过50字"
v-model="formData.title"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="封面"
label="封面" prop="coverPic"
prop="coverPic" label-width="150px"
label-width="150px" style="display: block">
style="display: block" <el-upload :headers="$getElUploadHeaders()"
> :class="['avatar-uploader', { hide: hideUploadBtn }]"
<el-upload ref="uploadPic"
:headers="$getElUploadHeaders()" :action="uploadUlr"
:class="['avatar-uploader', { hide: hideUploadBtn }]" list-type="picture-card"
ref="uploadPic" :on-exceed="exceedPic"
:action="uploadUlr" :before-upload="beforeAvatarUpload"
list-type="picture-card" :on-remove="removePic"
:on-exceed="exceedPic" :file-list="replayImgList"
:before-upload="beforeAvatarUpload" :on-change="handleEditChange"
:on-remove="removePic" :on-success="handleSuccess"
:file-list="replayImgList" :limit="1">
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="1"
>
<span class="font-14">选择图片</span> <span class="font-14">选择图片</span>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="活动时间"
label="活动时间" label-width="150px"
label-width="150px" prop="actStartTime">
prop="actStartTime" <el-date-picker v-model="formData.actStartTime"
> class="list_item_width_3"
<el-date-picker type="datetime"
v-model="formData.actStartTime" value-format="yyyy-MM-dd HH:mm"
class="list_item_width_3" format="yyyy-MM-dd HH:mm"
type="datetime" placeholder="开始时间">
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="开始时间"
>
</el-date-picker> </el-date-picker>
<span class="data-tag"></span> <span class="data-tag"></span>
<el-date-picker <el-date-picker v-model="formData.actEndTime"
v-model="formData.actEndTime" class="list_item_width_3 data-tag"
class="list_item_width_3 data-tag" type="datetime"
type="datetime" value-format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm" placeholder="结束时间">
placeholder="结束时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="活动人数"
label="活动人数" prop="actQuota"
prop="actQuota" style="display: block"
style="display: block" label-width="150px">
label-width="150px" <el-input-number class="item_width_2"
> :min="0"
<el-input-number v-model="formData.actQuota"
class="item_width_2" label="活动人数"></el-input-number>
:min="0"
v-model="formData.actQuota"
label="活动人数"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="活动积分"
label="活动积分" prop="reward"
prop="reward" style="display: block"
style="display: block" label-width="150px">
label-width="150px" <el-input-number class="item_width_2"
> :min="0"
<el-input-number v-model="formData.reward"
class="item_width_2" label="活动积分"></el-input-number>
:min="0"
v-model="formData.reward"
label="活动积分"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="联系人"
label="联系人" prop="sponsorContacts"
prop="sponsorContacts" label-width="150px"
label-width="150px" style="display: block">
style="display: block" <el-input class="item_width_6"
> maxlength="20"
<el-input placeholder="请输入联系人"
class="item_width_6" v-model="formData.sponsorContacts">
maxlength="20"
placeholder="请输入联系人"
v-model="formData.sponsorContacts"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="form_item"> <div class="form_item">
<el-form-item <el-form-item label="联系电话"
label="联系电话" prop="sponsorTel"
prop="sponsorTel" label-width="150px"
label-width="150px" style="display: block">
style="display: block" <el-input class="item_width_6"
> maxlength="20"
<el-input placeholder="请输入联系电话"
class="item_width_6" v-model="formData.sponsorTel">
maxlength="20"
placeholder="请输入联系电话"
v-model="formData.sponsorTel"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="报名仅限志愿者"
label="报名仅限志愿者" prop="volunteerLimit"
prop="volunteerLimit" label-width="150px"
label-width="150px" style="display: block">
style="display: block"
>
<el-checkbox v-model="formData.volunteerLimit"></el-checkbox> <el-checkbox v-model="formData.volunteerLimit"></el-checkbox>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="报名无需审核"
label="报名无需审核" prop="auditSwitch"
prop="auditSwitch" label-width="150px"
label-width="150px" style="display: block">
style="display: block"
>
<el-checkbox v-model="noauditSwitch"></el-checkbox> <el-checkbox v-model="noauditSwitch"></el-checkbox>
<span class="div-tooltip" <span class="div-tooltip">选中后报名参加活动人员可以直接审核通过</span>
>选中后报名参加活动人员可以直接审核通过</span
>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="报名截止时间"
label="报名截止时间" style="display: block"
style="display: block" prop="signUpEndTime"
prop="signUpEndTime" label-width="150px">
label-width="150px" <el-date-picker class="item_width_2"
> v-model="formData.signUpEndTime"
<el-date-picker value-format="yyyy-MM-dd HH:mm"
class="item_width_2" format="yyyy-MM-dd HH:mm"
v-model="formData.signUpEndTime" type="datetime"
value-format="yyyy-MM-dd HH:mm" placeholder="选择时间">
format="yyyy-MM-dd HH:mm"
type="datetime"
placeholder="选择时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="报名条件"
label="报名条件" prop="requirement"
prop="requirement" label-width="150px"
label-width="150px" style="display: block">
style="display: block" <el-input class="item_width_6"
> type="textarea"
<el-input maxlength="200"
class="item_width_6" show-word-limit
type="textarea" :rows="7"
maxlength="200" placeholder="请输入报名条件,不超过200字"
show-word-limit v-model="formData.requirement"></el-input>
:rows="7"
placeholder="请输入报名条件,不超过200字"
v-model="formData.requirement"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="签到时间"
label="签到时间" label-width="150px"
label-width="150px" prop="signInStartTime">
prop="signInStartTime" <el-date-picker v-model="formData.signInStartTime"
> class="list_item_width_3"
<el-date-picker type="datetime"
v-model="formData.signInStartTime" value-format="yyyy-MM-dd HH:mm"
class="list_item_width_3" format="yyyy-MM-dd HH:mm"
type="datetime" placeholder="开始时间">
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="开始时间"
>
</el-date-picker> </el-date-picker>
<span class="data-tag"></span> <span class="data-tag"></span>
<el-date-picker <el-date-picker v-model="formData.signInEndTime"
v-model="formData.signInEndTime" class="list_item_width_3 data-tag"
class="list_item_width_3 data-tag" type="datetime"
type="datetime" value-format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm" placeholder="结束时间">
placeholder="结束时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="签到有效范围(米)"
label="签到有效范围(米)" prop="signInRadius"
prop="signInRadius" style="display: block"
style="display: block" label-width="150px">
label-width="150px" <el-input-number class="item_width_2"
> :min="0"
<el-input-number v-model="formData.signInRadius"
class="item_width_2" label="签到有效范围"></el-input-number>
:min="0"
v-model="formData.signInRadius"
label="签到有效范围"
></el-input-number>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
<div class="form_flex"> <div class="form_flex">
<div class="form_item"> <div class="form_item">
<el-form-item <el-form-item label="活动地点"
label="活动地点" prop="actAddress"
prop="actAddress" label-width="150px">
label-width="150px"
>
<div style="width: 400px"> <div style="width: 400px">
<el-input <el-input class="item_width_4"
class="item_width_4" maxlength="100"
maxlength="100" style="width: 330px"
style="width: 330px" show-word-limit
show-word-limit placeholder="请输入所在地址"
placeholder="请输入所在地址" v-model="formData.actAddress">
v-model="formData.actAddress"
>
</el-input> </el-input>
<el-button <el-button style="margin-left: 10px"
style="margin-left: 10px" type="default"
type="default" size="small"
size="small" @click="handleSearchMapAct">查询</el-button>
@click="handleSearchMapAct" <div id="map_act_id"
>查询</el-button class="div_map"></div>
>
<div id="map_act_id" class="div_map"></div>
<!-- <div style="margin-top: 10px"> <!-- <div style="margin-top: 10px">
<span>经度</span> <span>经度</span>
<el-input class="item_width_3" <el-input class="item_width_3"
@ -292,29 +228,23 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="form_item"> <div class="form_item">
<el-form-item <el-form-item label="签到地点"
label="签到地点" prop="signInAddress"
prop="signInAddress" label-width="150px">
label-width="150px"
>
<div style="width: 400px"> <div style="width: 400px">
<el-input <el-input class="item_width_4"
class="item_width_4" maxlength="100"
maxlength="100" style="width: 330px"
style="width: 330px" show-word-limit
show-word-limit placeholder="请输入所在地址"
placeholder="请输入所在地址" v-model="formData.signInAddress">
v-model="formData.signInAddress"
>
</el-input> </el-input>
<el-button <el-button style="margin-left: 10px"
style="margin-left: 10px" type="default"
type="default" size="small"
size="small" @click="handleSearchMapSignin">查询</el-button>
@click="handleSearchMapSignin" <div id="map_signin_id"
>查询</el-button class="div_map"></div>
>
<div id="map_signin_id" class="div_map"></div>
<!-- <div style="margin-top: 10px"> <!-- <div style="margin-top: 10px">
<span>经度</span> <span>经度</span>
<el-input class="item_width_3" <el-input class="item_width_3"
@ -333,74 +263,67 @@
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
<el-form-item <el-form-item label="活动详情"
label="活动详情" prop="actContentHtml"
prop="actContentHtml" label-width="150px"
label-width="150px" style="display: block">
style="display: block"
>
<div v-if="formData.richTextFlag || formType === 'add'"> <div v-if="formData.richTextFlag || formType === 'add'">
<Tinymce <Tinymce class="tinymce_view"
class="tinymce_view" v-if="formType != 'detail'"
v-if="formType != 'detail'" v-model="formData.actContentHtml"
v-model="formData.actContentHtml" :height="250"
:height="250" style="width: 1000px"
style="width: 1000px" :customerId="customerId"
:customerId="customerId" placeholder="在这里输入文字" />
placeholder="在这里输入文字" <p v-else
/> class="text_p"
<p v-else class="text_p" v-html="formData.actContentHtml"></p> v-html="formData.actContentHtml"></p>
</div> </div>
<div class="div_content" v-else> <div class="div_content"
<div v-for="(item, index) in formData.actContent" :key="index"> v-else>
<div v-for="(item, index) in formData.actContent"
:key="index">
<div v-if="item.contentType === 'text'">{{ item.content }}</div> <div v-if="item.contentType === 'text'">{{ item.content }}</div>
<img <img v-if="item.contentType === 'img'"
v-if="item.contentType === 'img'" class="img_icon"
class="img_icon" :src="item.content" />
:src="item.content"
/>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item v-if="formData.summaryFlag"
v-if="formData.summaryFlag" label="活动回顾"
label="活动回顾" prop="summaryContentHtml"
prop="summaryContentHtml" label-width="150px"
label-width="150px" style="display: block">
style="display: block"
>
<div v-if="formData.richTextFlag"> <div v-if="formData.richTextFlag">
<p class="text_p" v-html="formData.summaryContentHtml"></p> <p class="text_p"
v-html="formData.summaryContentHtml"></p>
</div> </div>
<div class="div_content" v-else> <div class="div_content"
<div v-for="(item, index) in formData.summaryContent" :key="index"> v-else>
<div v-for="(item, index) in formData.summaryContent"
:key="index">
<div v-if="item.contentType === 'text'">{{ item.content }}</div> <div v-if="item.contentType === 'text'">{{ item.content }}</div>
<img <img v-if="item.contentType === 'img'"
v-if="item.contentType === 'img'" class="img_icon"
class="img_icon" :src="item.content" />
:src="item.content" <p v-if="item.contentType === 'rich_text'"
/> class="text_p"
<p v-html="item.content"></p>
v-if="item.contentType === 'rich_text'"
class="text_p"
v-html="item.content"
></p>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="div_btn"> <div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button> <el-button size="small"
<el-button @click="handleCancle"> </el-button>
size="small" <el-button size="small"
v-if="formType != 'detail'" v-if="formType != 'detail'"
type="primary" type="primary"
:disabled="btnDisable" :disabled="btnDisable"
@click="handleComfirm" @click="handleComfirm"> </el-button>
> </el-button
>
</div> </div>
</div> </div>
</template> </template>
@ -427,7 +350,7 @@ var infoWindowList_signin;
var geocoder_signin; // var geocoder_signin; //
export default { export default {
data() { data () {
let endDisabledDate = (time) => { let endDisabledDate = (time) => {
//datareturn //datareturn
let nowData = Date.now(); let nowData = Date.now();
@ -542,7 +465,7 @@ export default {
}; };
}, },
components: { Tinymce }, components: { Tinymce },
mounted() { mounted () {
this.customerId = localStorage.getItem("customerId"); this.customerId = localStorage.getItem("customerId");
this.loadSponsorlist(); this.loadSponsorlist();
this.initMap(); this.initMap();
@ -551,7 +474,7 @@ export default {
}, },
methods: { methods: {
async initForm(type, actId) { async initForm (type, actId) {
this.$refs.ref_form.resetFields(); this.$refs.ref_form.resetFields();
this.formType = type; this.formType = type;
@ -570,7 +493,7 @@ export default {
}, },
// //
async loadSponsorlist() { async loadSponsorlist () {
const url = "/heart/work/act/sponsorlist"; const url = "/heart/work/act/sponsorlist";
let params = {}; let params = {};
@ -587,7 +510,7 @@ export default {
} }
}, },
handleChangeAgency(val) { handleChangeAgency (val) {
let obj = this.$refs["myCascader"].getCheckedNodes()[0].data; let obj = this.$refs["myCascader"].getCheckedNodes()[0].data;
if (obj) { if (obj) {
this.formData.sponsorId = obj.gridId; this.formData.sponsorId = obj.gridId;
@ -608,7 +531,7 @@ export default {
}, },
//form //form
async loadFormData() { async loadFormData () {
const url = "/heart/work/act/detail"; const url = "/heart/work/act/detail";
let params = { let params = {
@ -651,7 +574,7 @@ export default {
} }
}, },
async handleComfirm() { async handleComfirm () {
console.log(this.formData); console.log(this.formData);
this.btnDisable = true; this.btnDisable = true;
@ -690,7 +613,7 @@ export default {
} }
}); });
}, },
async addHeartAct() { async addHeartAct () {
let obj = { let obj = {
contentType: "rich_text", contentType: "rich_text",
content: this.dormatHtml(this.formData.actContentHtml), content: this.dormatHtml(this.formData.actContentHtml),
@ -730,7 +653,7 @@ export default {
} }
}, },
dormatHtml(content) { dormatHtml (content) {
let c = ""; let c = "";
if (content.indexOf("DOCTYPE") != -1) { if (content.indexOf("DOCTYPE") != -1) {
c = content.slice(45, -16); c = content.slice(45, -16);
@ -739,19 +662,19 @@ export default {
return c || content; return c || content;
}, },
removePic(file, fileList) { removePic (file, fileList) {
this.formData.coverPic = ""; this.formData.coverPic = "";
this.replayImgList = []; this.replayImgList = [];
this.hideUploadBtn = fileList.length >= 1; this.hideUploadBtn = fileList.length >= 1;
}, },
// 3 // 3
handleEditChange(file, fileList) { handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 1; this.hideUploadBtn = fileList.length >= 1;
}, },
exceedPic() { exceedPic () {
this.$message.warning("只能上传1张封面图"); this.$message.warning("只能上传1张封面图");
}, },
beforeAvatarUpload(file) { beforeAvatarUpload (file) {
const isJPG = file.type === "image/jpeg"; const isJPG = file.type === "image/jpeg";
const isLt2M = file.size / 1024 / 1024 < 10; const isLt2M = file.size / 1024 / 1024 < 10;
@ -760,13 +683,13 @@ export default {
} }
return isLt2M; return isLt2M;
}, },
handleSuccess(response, file, fileList) { handleSuccess (response, file, fileList) {
this.replayImgList.push(file); this.replayImgList.push(file);
this.formData.coverPic = response.data.url; this.formData.coverPic = response.data.url;
}, },
// init // init
initMap() { initMap () {
// //
var center = new window.TMap.LatLng(36.0722275, 120.38945519); var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map() // map TMap.Map()
@ -819,7 +742,7 @@ export default {
this.handleMoveCenterSignin(); this.handleMoveCenterSignin();
}, },
setMarkerAct(lat, lng) { setMarkerAct (lat, lng) {
markers_act.setGeometries([]); markers_act.setGeometries([]);
markers_act.add([ markers_act.add([
{ {
@ -833,7 +756,7 @@ export default {
]); ]);
}, },
handleSearchMapAct() { handleSearchMapAct () {
infoWindowList_act.forEach((infoWindow) => { infoWindowList_act.forEach((infoWindow) => {
infoWindow.close(); infoWindow.close();
}); });
@ -863,7 +786,7 @@ export default {
}); });
}, },
handleMoveCenterAct(e) { handleMoveCenterAct (e) {
// //
const center = map_act.getCenter(); const center = map_act.getCenter();
const lat = center.getLat(); const lat = center.getLat();
@ -880,7 +803,7 @@ export default {
}); });
} }
}, },
setMarkerSignin(lat, lng) { setMarkerSignin (lat, lng) {
markers_signin.setGeometries([]); markers_signin.setGeometries([]);
markers_signin.add([ markers_signin.add([
{ {
@ -894,7 +817,7 @@ export default {
]); ]);
}, },
handleSearchMapSignin() { handleSearchMapSignin () {
infoWindowList_signin.forEach((infoWindow) => { infoWindowList_signin.forEach((infoWindow) => {
infoWindow.close(); infoWindow.close();
}); });
@ -924,7 +847,7 @@ export default {
}); });
}, },
handleMoveCenterSignin(e) { handleMoveCenterSignin (e) {
// //
const center = map_signin.getCenter(); const center = map_signin.getCenter();
const lat = center.getLat(); const lat = center.getLat();
@ -942,12 +865,12 @@ export default {
} }
}, },
handleCancle() { handleCancle () {
this.resetData(); this.resetData();
this.$emit("dialogCancle"); this.$emit("dialogCancle");
}, },
resetData() { resetData () {
this.actId = ""; this.actId = "";
this.replayImgList = []; this.replayImgList = [];
this.agencyIdArray = []; this.agencyIdArray = [];
@ -995,7 +918,7 @@ export default {
}; };
}, },
// //
startLoading() { startLoading () {
loading = Loading.service({ loading = Loading.service({
lock: true, // lock: true, //
text: "正在加载……", // text: "正在加载……", //
@ -1003,7 +926,7 @@ export default {
}); });
}, },
// //
endLoading() { endLoading () {
// clearTimeout(timer); // clearTimeout(timer);
if (loading) { if (loading) {
loading.close(); loading.close();
@ -1011,7 +934,7 @@ export default {
}, },
}, },
computed: { computed: {
dataRule() { dataRule () {
return { return {
sponsorId: [ sponsorId: [
{ required: true, message: "主办方不能为空", trigger: "change" }, { required: true, message: "主办方不能为空", trigger: "change" },

10
src/views/modules/shequzhili/issue/cpts/issue-detail.vue

@ -218,6 +218,7 @@ function iniData () {
issueInfo: {}, issueInfo: {},
showType: '', showType: '',
popSelIssueCate: [],
issueCate: [], issueCate: [],
cateOptions: [], cateOptions: [],
visibleCatePanel: false, visibleCatePanel: false,
@ -270,7 +271,7 @@ export default {
watch: { watch: {
selectedCateData (val) { selectedCateData (val) {
const { cateOptions } = this; const { cateOptions } = this;
this.issueCate = val this.popSelIssueCate = val
.filter((arr) => arr.length > 0) .filter((arr) => arr.length > 0)
.map((arr) => { .map((arr) => {
let ele1 = cateOptions.find((item) => item.id == arr[0]); let ele1 = cateOptions.find((item) => item.id == arr[0]);
@ -443,19 +444,20 @@ export default {
async updateIssueCate () { async updateIssueCate () {
const url = "/gov/issue/issuecategory/save"; const url = "/gov/issue/issuecategory/save";
const { issueCate } = this; const { popSelIssueCate } = this;
if (issueCate.length == 0) { if (popSelIssueCate.length == 0) {
return this.$message.error("分类不能为空"); return this.$message.error("分类不能为空");
} }
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
issueId: this.issueId, issueId: this.issueId,
categoryList: issueCate, categoryList: popSelIssueCate,
}); });
if (code === 0) { if (code === 0) {
this.$message.success("更改成功"); this.$message.success("更改成功");
this.visibleCatePanel = false; this.visibleCatePanel = false;
this.issueCate = popSelIssueCate
this.getTagOptions(); this.getTagOptions();
} else { } else {
this.$message.error(msg); this.$message.error(msg);

19
src/views/modules/shequzhili/issue/cptsAudit/issue-info.vue

@ -64,10 +64,21 @@
<div class="detail-field">提交审核时间</div> <div class="detail-field">提交审核时间</div>
<div class="detail-value">{{ item.operateTime }}</div> <div class="detail-value">{{ item.operateTime }}</div>
</div> </div>
<div v-if="item.actionType==='rejected'" <div v-if="item.actionType==='rejected'">
class="detail"> <div class="detail">
<div class="detail-field">理由</div> <div class="detail-field">驳回时间</div>
<div class="detail-value">{{ item.reason }}</div> <div class="detail-value">{{ item.operateTime }}</div>
</div>
<div class="detail">
<div class="detail-field">驳回人</div>
<div class="detail-value">{{ item.staffName }}</div>
</div>
<div class="detail">
<div class="detail-field">驳回理由</div>
<div class="detail-value">{{ item.reason }}</div>
</div>
</div> </div>
</div> </div>

Loading…
Cancel
Save