Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev

dev-用户反馈
jiangyy 3 years ago
parent
commit
e071cfdf79
  1. 4
      package.json
  2. 25
      src/views/components/tinymce2/index.vue
  3. 221
      src/views/modules/communityParty/article/index.vue
  4. 11
      src/views/modules/cpts/base/index.vue
  5. 18
      src/views/modules/shequzhili/issue/cpts/evaluationDetail.vue
  6. 21
      src/views/modules/shequzhili/issue/cpts/issue-detail.vue
  7. 7
      src/views/modules/shequzhili/issue/cpts/issue-info.vue
  8. 2
      src/views/modules/shequzhili/issue/cpts/suggestDetail.vue
  9. 26
      src/views/modules/shequzhili/issue/cptsAudit/issue-detail.vue
  10. 17
      src/views/modules/shequzhili/issue/cptsAudit/issue-info.vue
  11. 2
      src/views/modules/shequzhili/issue/issueAuditList.vue
  12. 21
      src/views/modules/shequzhili/issue/issueList.vue
  13. 222
      src/views/modules/shequzhili/xiangmu/index.vue
  14. 6
      src/views/modules/shujuduibi/canji.vue
  15. 6
      src/views/modules/shujuduibi/siwang.vue

4
package.json

@ -60,7 +60,7 @@
},
"devDependencies": {
"@antv/f2": "^3.8.10-beta.1",
"@tinymce/tinymce-vue": "^3.2.8",
"@tinymce/tinymce-vue": "3.2.8",
"@vue/cli-plugin-babel": "^3.10.0",
"@vue/cli-plugin-eslint": "^3.10.0",
"@vue/cli-service": "^3.10.0",
@ -71,7 +71,7 @@
"ol": "^6.9.0",
"sass-loader": "^7.3.1",
"script-loader": "^0.7.2",
"tinymce": "^5.8.2",
"tinymce": "5.8.2",
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {

25
src/views/components/tinymce2/index.vue

@ -87,11 +87,12 @@ export default {
toolbar_mode: "none",
toolbar_drawer: "sliding",
toolbar_mode: "sliding",
outputFormat: 'p',
outputFormat: "p",
plugins:
"wordcount visualchars visualblocks toc textpattern template tabfocus spellchecker searchreplace save quickbars print preview paste pagebreak noneditable nonbreaking media insertdatetime importcss imagetools image hr help fullscreen fullpage directionality codesample code charmap link code table lists advlist anchor autolink autoresize autosave", // import
toolbar:
"formats undo redo paste print fontsizeselect fontselect template fullpage|wordcount ltr rtl visualchars visualblocks toc spellchecker searchreplace|save preview pagebreak nonbreaking|media image|outdent indent aligncenter alignleft alignright alignjustify lineheight underline quicklink h2 h3 blockquote numlist bullist table removeformat forecolor backcolor bold italic strikethrough hr charmap link insertdatetime|subscript superscript cut codesample code |anchor preview fullscreen|help",
// "formats undo redo paste print fontsizeselect fontselect template fullpage|wordcount ltr rtl visualchars visualblocks toc spellchecker searchreplace|save preview pagebreak nonbreaking|media image|outdent indent aligncenter alignleft alignright alignjustify lineheight underline quicklink h2 h3 blockquote numlist bullist table removeformat forecolor backcolor bold italic strikethrough hr charmap link insertdatetime|subscript superscript cut codesample code |anchor preview fullscreen|help",
"formats undo redo|fontsizeselect|fontselect|forecolor backcolor bold italic underline strikethrough removeformat|image media link|outdent indent|aligncenter alignleft alignright alignjustify lineheight quicklink h2 h3 blockquote numlist bullist table|subscript superscript codesample code|preview fullscreen|wordcount|help",
content_style: "p {margin: 5px 0; font-size: 14px}",
fontsize_formats: "12px 14px 16px 18px 24px 36px 48px 56px 72px",
font_formats:
@ -171,17 +172,16 @@ export default {
if (editor && val !== prevVal && val !== editor.getContent()) {
if (typeof val !== "string") val = val.toString();
debounceSetContent.call(editor, val);
return
return;
}
// debounceSetContent.call(editor, this.dormatHtml(val));
});
editor.on("change keyup undo redo", () => {
// console.log('editor.getContent()---', editor.getContent({ format : 'p' }))
const c = editor.getContent({ format : 'p' })
const c = editor.getContent({ format: "p" });
this.$emit("input", editor.getContent());
// debounce(500, this.$emit("input", editor.getContent({ format : 'p' })));
;
});
editor.on("blur", () => {
// console.log('editor.blur--', editor.getContent({ format : 'p' }))
@ -190,12 +190,12 @@ export default {
});
},
dormatHtml(content) {
let c = ''
if (content.indexOf('DOCTYPE') != -1) {
let c = "";
if (content.indexOf("DOCTYPE") != -1) {
c = content.slice(45, -16);
}
console.log('content', typeof content)
return c || content
console.log("content", typeof content);
return c || content;
},
getUserToken() {
return localStorage.getItem("token");
@ -211,3 +211,10 @@ export default {
},
};
</script>
<style lang="scss">
//
.tox-tinymce-aux {
z-index: 5000 !important;
}
</style>

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

@ -1,6 +1,7 @@
<template>
<div>
<base-page ref="basePage"
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
@ -18,54 +19,126 @@
:editElseRules="editElseRules"
:editConfig="editConfig"
:editParamsDiv="5"
:editBtnName="(item) => (!item.latitude ? '待完善' : '修改')"
:editBtnName="(item) => '修改'"
:formBtnFixed="true"
idName="articleId">
idName="articleId"
>
<template v-slot:editOperateSup="{ id, formType, info }">
<el-button v-if="formType != 'watch'"
<el-button
v-if="formType == 'add'"
type="warning"
size="small"
:disabled="draftBtnDisable"
@click="handleClickDraft(info)">存草稿</el-button>
@click="handleClickDraft(info)"
>存草稿</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button v-if="
<el-button
v-if="
item.statusFlag == 'published' &&
item.agencyId == $store.state.user.agencyId
"
@click="handleOfflineShow(item)"
type="text"
size="small"
style="color: #666">下线</el-button>
style="color: #666"
>下线</el-button
>
</template>
<template v-slot:listBtnbefore="{ item }">
<el-button v-if="item.isTop == '1'"
@click="handleTopArticle(item,'cancel_top')"
<el-button
v-if="item.isTop == '1'"
v-show="item.statusFlag == 'published'"
@click="handleCancleTopArticle(item, 'cancel_top')"
type="text"
size="small"
style="color: #fe6252">取消置顶</el-button>
<el-button v-else
style="color: #fe6252"
>取消置顶</el-button
>
<el-button
v-show="item.statusFlag == 'published'"
v-else
@click="handleTopArticle(item, 'top')"
type="text"
size="small"
style="color: #22c1c3">置顶</el-button>
style="color: #22c1c3"
>置顶</el-button
>
</template>
</base-page>
<el-dialog :visible.sync="offlineShowed"
<el-dialog
:visible.sync="offlineShowed"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="下线"
width="850px"
top="5vh"
class="dialog-h"
@closed="offlineShowed = false">
<offline ref="offlineForm"
@closed="offlineShowed = false"
>
<offline
ref="offlineForm"
@close="offlineShowed = false"
@afterOffline="handleOfflineSuccess"></offline>
@afterOffline="handleOfflineSuccess"
></offline>
</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>
</template>
@ -195,14 +268,14 @@ export default {
exportUrl: "",
addUrl: "/gov/voice/article/addOrSaveDraft",
editUrl: "",
editUrl: "/gov/voice/article/updateArticle",
infoUrl: "/gov/voice/article/detailV2",
delUrl: "",
delUrl: "/gov/voice/article/delete批量",
editAuth(item) {
return false;
return item.statusFlagName == "已发布";
},
delAuth(item) {
return false;
return item.statusFlagName == "已下线";
},
editParams: [
@ -475,6 +548,15 @@ export default {
return true;
},
},
formData: {},
showAddImage: false,
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
replayImgList: [],
hideUploadBtn: false,
selType: "top",
selArticleId: "",
selImgUrl: "",
};
},
components: { basePage, offline },
@ -491,24 +573,99 @@ export default {
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) {
this.selType = type;
this.selArticleId = item.articleId;
const url = "/gov/voice/article/topArticle";
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 { data, code, msg } = await requestPost(url, {
articleId: item.articleId,
type: type
articleId: this.selArticleId,
});
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) {
this.$message.success("操作成功!");
this.showAddImage = false;
this.$refs.basePage.refresh();
} else {
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() {
this.$refs.basePage.refresh();
this.offlineShowed = false;
@ -541,4 +698,18 @@ export default {
};
</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>

11
src/views/modules/cpts/base/index.vue

@ -720,13 +720,18 @@ export default {
const { tableData, idName } = this;
const idValue = tableData[rowIndex][idName];
let param = {
[idName]: idValue,
};
if (url.endsWith("/")) {
url += idValue;
}
if (url.endsWith("批量")) {
url = url.slice(0, -2);
param = [idValue];
}
const { data, code, msg } = await requestPost(url, {
[idName]: idValue,
});
const { data, code, msg } = await requestPost(url, param);
if (code === 0) {
this.$message.success("删除成功!");

18
src/views/modules/shequzhili/issue/cpts/evaluationDetail.vue

@ -16,14 +16,14 @@
<el-table-column prop="userNickName"
align="center"
width="80"
min-width="120"
label="评价人"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="evaluateTimeShow"
align="center"
width="150"
min-width="170"
label="评价时间"
:show-overflow-tooltip="true">
</el-table-column>
@ -36,15 +36,15 @@
<template slot-scope="scope">
<el-image v-if="scope.row.satisfaction=='bad'"
style="width: 40px; height: 40px"
src="@/assets/img/satisfy-images/face1_light.png">
:src="badurl_light">
</el-image>
<el-image v-else-if="scope.row.satisfaction=='good'"
style="width: 40px; height: 40px"
src="@/assets/img/satisfy-images/face2_light.png">
:src="goodurl_light">
</el-image>
<el-image v-else
style="width: 40px; height: 40px"
src="@/assets/img/satisfy-images/face3_light.png">
:src="perfecturl_light">
</el-image>
</template>
@ -94,6 +94,11 @@ export default {
pageSize: window.localStorage.getItem("pageSize") || 20,
total: 1,
badurl_light: require('@/assets/img/satisfy-images/face1_light.png'),
goodurl_light: require('@/assets/img/satisfy-images/face2_light.png'),
perfecturl_light: require('@/assets/img/satisfy-images/face3_light.png'),
}
},
components: {},
@ -106,7 +111,7 @@ export default {
methods: {
async initForm (topicInfo) {
async initForm () {
this.startLoading()
await this.getList()
@ -127,6 +132,7 @@ export default {
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
data.forEach(element => {
element.evaluateTimeShow = dateFormat(

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

@ -19,6 +19,10 @@
<span class="info-title-2">所属网格</span>
<span>{{ issueInfo.belongsGridName||'--' }}</span>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">议题发表人</span>
<span>{{ issueInfo.issueInitiator||'--' }}</span>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">议题来源</span>
@ -34,8 +38,7 @@
@click="handleToTopic">查看话题>--</div>
</div>
<div v-if="issueInfo.sourceType==='resi_topic'"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">意见和建议</span>
<div class="line"
@click="handleToSuggest">查看全部</div>
@ -148,7 +151,7 @@
</el-popover>
</div>
<div v-if="issueInfo.issueStatus==='closed'&&issueInfo.sourceType==='resi_topic'"
<div v-if="issueInfo.issueStatus==='closed'"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">满意度评价</span>
<div class="line"
@ -215,6 +218,7 @@ function iniData () {
issueInfo: {},
showType: '',
popSelIssueCate: [],
issueCate: [],
cateOptions: [],
visibleCatePanel: false,
@ -267,7 +271,7 @@ export default {
watch: {
selectedCateData (val) {
const { cateOptions } = this;
this.issueCate = val
this.popSelIssueCate = val
.filter((arr) => arr.length > 0)
.map((arr) => {
let ele1 = cateOptions.find((item) => item.id == arr[0]);
@ -350,7 +354,7 @@ export default {
},
async getChartInfo () {
const url = "/gov/issue/manage/votingtrend";
const url = "/gov/issue/manage/votingTrendV2";
const { data, code, msg } = await requestPost(url, {
issueId: this.issueId,
@ -440,19 +444,20 @@ export default {
async updateIssueCate () {
const url = "/gov/issue/issuecategory/save";
const { issueCate } = this;
if (issueCate.length == 0) {
const { popSelIssueCate } = this;
if (popSelIssueCate.length == 0) {
return this.$message.error("分类不能为空");
}
const { data, code, msg } = await requestPost(url, {
issueId: this.issueId,
categoryList: issueCate,
categoryList: popSelIssueCate,
});
if (code === 0) {
this.$message.success("更改成功");
this.visibleCatePanel = false;
this.issueCate = popSelIssueCate
this.getTagOptions();
} else {
this.$message.error(msg);

7
src/views/modules/shequzhili/issue/cpts/issue-info.vue

@ -414,12 +414,17 @@ export default {
handleToSuggest () {
// this.pageTypeCopy = 'topic'
this.suggestShow = true
this.$nextTick(() => {
this.$refs.ref_detail_suggest.initForm()
})
},
handleToEvaluation () {
// this.pageTypeCopy = 'topic'
this.evaluationShow = true
this.$nextTick(() => {
this.$refs.ref_detail_evaluation.initForm()
})
},
//

2
src/views/modules/shequzhili/issue/cpts/suggestDetail.vue

@ -97,7 +97,7 @@ export default {
methods: {
async initForm (topicInfo) {
async initForm () {
this.startLoading()
await this.getSuggestion()

26
src/views/modules/shequzhili/issue/cptsAudit/issue-detail.vue

@ -34,14 +34,14 @@
v-for="src in topicInfo.photoList"
@click="watchImg(src.url)" />
</div>
<div v-if="topicInfo.voiceList&&topicInfo.voiceList.length>0"
<div v-if="voiceList&&voiceList.length>0"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">语音</span>
<audio controls>
<source :src="item.url"
type=""
:key="item.url"
v-for="item in topicInfo.voiceList" />
v-for="item in voiceList" />
</audio>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
@ -100,6 +100,7 @@ function iniData () {
issueInfo: {},
topicInfo: {},
voiceList: {},
showType: '',
};
@ -154,11 +155,30 @@ export default {
"yyyy-MM-dd hh:mm"
);
}
this.getAttechment()
}
},
methods: {
async getAttechment () {
const url = "/resi/group/topic/topicattachmentlist"
let params = {
topicId: this.topicInfo.topicId,
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.voiceList = data.voiceList
} else {
this.$message.error(msg)
}
},
watchImg (src) {
window.open(src);
},
@ -171,8 +191,6 @@ export default {
this.$emit("handleClose");
},
async getApiData () {
},
handleToTopic () {
this.$emit("handleToTopic")

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

@ -64,15 +64,26 @@
<div class="detail-field">提交审核时间</div>
<div class="detail-value">{{ item.operateTime }}</div>
</div>
<div v-if="item.actionType==='rejected'"
class="detail">
<div class="detail-field">理由</div>
<div v-if="item.actionType==='rejected'">
<div class="detail">
<div class="detail-field">驳回时间</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>
</div>
</el-card>

2
src/views/modules/shequzhili/issue/issueAuditList.vue

@ -434,7 +434,7 @@ export default {
async getTableData () {
const url = "/gov/issue/issueaudit/auditList";
// const url = "http://yapi.elinkservice.cn/mock/102/gov/issue/issue/allIssueList";
const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,

21
src/views/modules/shequzhili/issue/issueList.vue

@ -134,17 +134,22 @@
:show-overflow-tooltip="true"
label="转议题时间">
</el-table-column>
<el-table-column prop="sourceTypeName"
label="来源"
width="60"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="supportCount"
align="center"
width="80"
width="60"
label="支持"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="oppositionCount"
align="center"
width="80"
width="60"
label="反对"
:show-overflow-tooltip="true">
</el-table-column>
@ -456,7 +461,7 @@ export default {
async getTableData () {
const url = "/gov/issue/issue/allIssueList";
// const url = "http://yapi.elinkservice.cn/mock/102/gov/issue/issue/allIssueList";
const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,
@ -473,6 +478,14 @@ export default {
: [];
this.tableData.forEach(item => {
if (item.sourceType === 'ic_event') {
item.sourceTypeName = '事件'
} else if (item.sourceType === 'resi_topic') {
item.sourceTypeName = '话题'
} else {
item.sourceTypeName = '--'
}
if (item.operationType === '2') {
item.operationTypeShow = '已转服务'
}

222
src/views/modules/shequzhili/xiangmu/index.vue

@ -1,80 +1,67 @@
<template>
<div class="resi-container">
<div class="g-page" v-show="pageType == 'list'">
<el-card ref="searchCard" class="search-card">
<el-form
ref="searchForm"
<div class="g-page"
v-show="pageType == 'list'">
<el-card ref="searchCard"
class="search-card">
<el-form ref="searchForm"
:inline="true"
:model="fmData"
:label-width="'100px'"
class="demo-form-inline"
>
class="demo-form-inline">
<div>
<el-form-item label="项目标题" prop="title">
<el-input
v-model="fmData.title"
<el-form-item label="项目标题"
prop="title">
<el-input v-model="fmData.title"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入"
>
placeholder="请输入">
</el-input>
</el-form-item>
<el-form-item label="转项目时间" prop="date">
<el-date-picker
v-model="fmData.startDate"
<el-form-item label="转项目时间"
prop="date">
<el-date-picker v-model="fmData.startDate"
size="small"
type="date"
value-format="yyyy-MM-dd"
style="width: 150px"
placeholder="开始时间"
>
placeholder="开始时间">
</el-date-picker>
<span style="margin:0 8px;"></span>
<el-date-picker
v-model="fmData.endDate"
<el-date-picker v-model="fmData.endDate"
size="small"
type="date"
style="width: 150px"
value-format="yyyy-MM-dd"
placeholder="结束时间"
>
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model.trim="fmData.status"
<el-form-item label="状态"
prop="status">
<el-select v-model.trim="fmData.status"
placeholder="请选择"
size="small"
clearable
style="width: 150px"
class="resi-cell-select"
>
<el-option
v-for="item in optionsStatus"
class="resi-cell-select">
<el-option v-for="item in optionsStatus"
:key="item.value"
:label="item.label"
:value="item.value"
>
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item style="margin-left: 35px">
<el-button
class="diy-button--search"
<el-button class="diy-button--search"
size="small"
@click="handleSearch"
>查询</el-button
>
<el-button
class="diy-button--reset"
@click="handleSearch">查询</el-button>
<el-button class="diy-button--reset"
size="small"
@click="resetForm('searchForm')"
>重置</el-button
>
@click="resetForm('searchForm')">重置</el-button>
</el-form-item>
</div>
</el-form>
@ -82,20 +69,14 @@
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button
v-if="false"
<el-button v-if="false"
class="diy-button--add"
size="small"
@click="handleAdd"
>新增</el-button
>
<el-button
v-if="false"
@click="handleAdd">新增</el-button>
<el-button v-if="false"
class="diy-button--export"
size="small"
@click="handleExportModule('room')"
>下载模板</el-button
>
@click="handleExportModule('room')">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()"
v-if="false"
ref="upload"
@ -109,158 +90,126 @@
:on-progress="handleProgress"
:on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
>
<el-button
size="small"
:http-request="uploadHttpRequest">
<el-button size="small"
class="diy-button--delete"
:loading="importLoading"
>{{ importBtnTitle }}</el-button
>
:loading="importLoading">{{ importBtnTitle }}</el-button>
</el-upload>
<el-button @click="handleChu" class="diy-button--reset" size="small"
>导出</el-button
>
<el-button @click="handleChu"
class="diy-button--reset"
size="small">导出</el-button>
</div>
<el-table
:data="tableData"
<el-table :data="tableData"
border
style="width: 100%"
class="resi-table"
:height="maxTableHeight"
>
<el-table-column
label="序号"
:height="maxTableHeight">
<el-table-column label="序号"
fixed="left"
type="index"
align="center"
width="50"
/>
<el-table-column
prop="gridName"
width="50" />
<el-table-column prop="gridName"
align="center"
label="所属网格"
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="title"
<el-table-column prop="title"
label="项目标题"
align="center"
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="shiftProjectTime"
<el-table-column prop="shiftProjectTime"
width="100"
align="center"
label="转项目时间"
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="projectScheme"
<el-table-column prop="projectScheme"
align="center"
label="项目方案"
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="internalRemark"
<el-table-column prop="internalRemark"
align="center"
label="内部备注"
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="originName"
align="center"
label="来源"
width="100"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="departmentNameList"
<el-table-column prop="departmentNameList"
align="center"
label="当前处理部门 "
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="detentionDays"
<el-table-column prop="detentionDays"
align="center"
label="滞留工作日 "
:show-overflow-tooltip="true"
>
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
fixed="right"
<el-table-column fixed="right"
label="操作"
align="center"
width="100"
>
width="100">
<template slot-scope="scope">
<el-button
v-if="scope.row.status == 'pending' && scope.row.processable"
<el-button v-if="scope.row.status == 'pending' && scope.row.processable"
@click="handleEdit(scope.$index)"
type="text"
size="small"
class="div-table-button--edit"
>处理</el-button
>
class="div-table-button--edit">处理</el-button>
<el-button
v-else
<el-button v-else
@click="handleWatch(scope.$index)"
type="text"
size="small"
>查看</el-button
>
size="small">查看</el-button>
<el-popconfirm
v-if="false"
<el-popconfirm v-if="false"
title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row, scope.$index)"
@confirm="handleDel(scope.row, scope.$index)"
>
<el-button
slot="reference"
@confirm="handleDel(scope.row, scope.$index)">
<el-button slot="reference"
type="text"
size="small"
class="div-table-button--delete"
style="margin-left: 10px"
>删除</el-button
>
style="margin-left: 10px">删除</el-button>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination
@size-change="handleSizeChange"
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total"
>
:total="total">
</el-pagination>
</div>
</el-card>
</div>
<div class="g-page" v-if="pageType == 'edit' || pageType == 'info'">
<project-info
ref="eleEditForm"
<div class="g-page"
v-if="pageType == 'edit' || pageType == 'info'">
<project-info ref="eleEditForm"
:type="pageType"
:projectId="currentProject.projectId"
@close="handleClose"
@afterEdit="handleEditSuccess"
/>
@afterEdit="handleEditSuccess" />
</div>
</div>
</template>
@ -578,6 +527,25 @@ export default {
return item;
})
: [];
this.tableData.forEach(item => {
if (item.origin === 'issue') {
item.originName = '议题 '
} else if (item.origin === 'agency') {
item.originName = '项目立项'
} else if (item.origin === 'resi_event') {
item.originName = '旧版事件上报'
} else if (item.origin === 'work_event') {
item.originName = '巡查上报'
} else if (item.origin === 'ic_event') {
item.originName = '事件'
} else {
item.sourceTypeName = '--'
}
});
} else {
}
},

6
src/views/modules/shujuduibi/canji.vue

@ -19,7 +19,11 @@
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
<el-button
type="text"
v-if="item.dealStatus != 1"
@click="handleSync(item)"
size="small"
>全部更新</el-button
>
</template>

6
src/views/modules/shujuduibi/siwang.vue

@ -19,7 +19,11 @@
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
<el-button
type="text"
v-if="item.dealStatus != 1"
@click="handleSync(item)"
size="small"
>全部更新</el-button
>
</template>

Loading…
Cancel
Save