diff --git a/package.json b/package.json index b6c7da275..30f7bf7db 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,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", @@ -70,7 +70,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": { diff --git a/src/router/index.js b/src/router/index.js index 04c4dbdf2..c17e618ce 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -6,6 +6,7 @@ import store from "@/js/store"; Vue.use(Router); +const CUSTOMER = process.env.VUE_APP_CUSTOMER; // 页面路由(独立页面) export const pageRoutes = [ { @@ -156,6 +157,18 @@ function cookApiDataItem(item) { // }); return item; } +// 把按钮都化为页面内部的权限 +function cookApiDataItem2(item) { + let { children } = item; + if (children && Array.isArray(children) && children.length > 0) { + let btns = item.children.filter((item) => item.type == 1); + item.btns = btns; + item.children = item.children + .filter((val) => val.type == 0) + .map((val) => cookApiDataItem2(val)); + } + return item; +} // 模块路由(基于主入口布局页面) 可视化数据 export const moduleShujuRoutes = { @@ -163,7 +176,10 @@ export const moduleShujuRoutes = { component: () => import("@/views/main-shuju/main"), name: "main-shuju", redirect: { - path: "/main-shuju/visual-basicinfo-basicInfoMain", + path: + CUSTOMER == "yantai" && process.env.VUE_APP_NODE_ENV == "prod" + ? "/main-shuju/i-1536625421829599234" + : "/main-shuju/visual-basicinfo-basicInfoMain", }, meta: { title: "主入口布局", @@ -300,9 +316,9 @@ router.beforeEach((to, from, next) => { name: "login", }); } - window.SITE_CONFIG["menuList"] = res.data.map((item) => - cookApiDataItem(item) - ); + window.SITE_CONFIG["menuList"] = res.data + .map((item) => cookApiDataItem2(item)) + .map((item) => cookApiDataItem(item)); fnAddDynamicMenuRoutes(window.SITE_CONFIG["menuList"]); // next({ ...to, replace: true }) next({ @@ -356,6 +372,7 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) { ...window.SITE_CONFIG["contentTabDefault"], menuId: menuList[i].id, title: menuList[i].name, + btns: menuList[i].btns || [], }, }; // eslint-disable-next-line diff --git a/src/views/components/tinymce2/index.vue b/src/views/components/tinymce2/index.vue index eb118d6ad..8f7f561d6 100644 --- a/src/views/components/tinymce2/index.vue +++ b/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 { }, }; + + diff --git a/src/views/modules/base/community/community.vue b/src/views/modules/base/community/community.vue index 03b19b0de..4507abb30 100644 --- a/src/views/modules/base/community/community.vue +++ b/src/views/modules/base/community/community.vue @@ -122,6 +122,72 @@ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ 0) { @@ -299,6 +385,113 @@ export default { ...mapGetters(['clientHeight', 'iframeHeight']) }, methods: { + handleChangeV (val) { + + this.buildingId = ""; + this.buildingUnitId = ""; + this.houseId = ""; + this.getBuildList(); + // this.getUniList(); + // this.getHouseList(); + }, + handleChangeB (val) { + + this.buildingUnitId = ""; + this.houseId = ""; + this.getUniList(); + // this.getHouseList(); + }, + handleChangeD () { + this.houseId = ""; + this.getHouseList(); + }, + + async getValiheList () { + const { user } = this.$store.state; + if (!this.selGridId) { + this.selAgencyId = this.selAgencyId ? this.selAgencyId : user.agencyId + } + + const url = "/gov/org/icneighborhood/neighborhood-options"; + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page" + let params = { + gridId: this.selGridId, + agencyId: this.selAgencyId, + isPage: false + }; + + const { data, code, msg } = await requestPost(url, params); + + if (code === 0) { + this.optionsV = data; + + this.neighborHoodId = "" + this.buildingId = ""; + this.buildingUnitId = ""; + this.houseId = ""; + } else { + this.$message.error(msg); + } + + + }, + + async getBuildList () { + const url = "/gov/org/icbuilding/buildingoption"; + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page" + let params = { + neighborHoodId: this.neighborHoodId, + }; + + const { data, code, msg } = await requestPost(url, params); + + if (code === 0) { + this.optionsB = data; + this.buildingId = ""; + this.buildingUnitId = ""; + this.houseId = ""; + } else { + this.$message.error(msg); + } + + + }, + async getUniList () { + + const url = "/gov/org/icbuildingunit/unitoption"; + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page" + let params = { + buildingId: this.buildingId, + }; + + const { data, code, msg } = await requestPost(url, params); + + if (code === 0) { + this.optionsD = data; + this.buildingUnitId = ""; + this.houseId = ""; + } else { + this.$message.error(msg); + } + + + }, + getHouseList () { + this.$http + .post("/gov/org/ichouse/houseoption", { unitId: this.buildingUnitId }) + .then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg); + } else { + + this.optionsH = res.data; + this.houseId = ""; + } + }) + .catch(() => { + return this.$message.error("网络错误"); + }); + }, handleSearch () { // if (this.ownerName || this.ownerPhone || this.rentFlag || this.purpose || this.remark) { @@ -323,6 +516,10 @@ export default { this.remark = '' this.updateStartDate = '' this.updateEndDate = '' + this.neighborHoodId = '' + this.buildingId = '' + this.buildingUnitId = '' + this.houseId = '' this.pageSize = 10 this.pageNo = 1 @@ -392,7 +589,7 @@ export default { }, - handleNodeClick (obj) { + async handleNodeClick (obj) { this.ownerName = '' this.ownerPhone = '' this.rentFlag = '' @@ -404,18 +601,42 @@ export default { this.selObj = JSON.parse(JSON.stringify(obj)) this.getTreeObj(obj) + await nextTick(1000) + this.vDisabled = false + this.bDisabled = false + if (obj.level === 'building') {//点击楼栋 + this.$refs['ref_buildingTable'].loadTable('tree', this.selTreeObj) + this.selAgencyId = '' + this.selGridId = '' + await this.getValiheList() + this.neighborHoodId = this.selTreeObj.pid + await this.getBuildList() + this.buildingId = this.selTreeObj.id + await this.getUniList() + this.vDisabled = true + this.bDisabled = true - this.$nextTick(() => { - if (obj.level === 'building') {//点击楼栋 - this.$refs['ref_buildingTable'].loadTable('tree', this.selTreeObj) - - } else if (obj.level === 'neighborHood') {//点击小区 - this.$refs['ref_neighTable'].loadTable(true, this.selTreeObj) + } else if (obj.level === 'neighborHood') {//点击小区 + this.$refs['ref_neighTable'].loadTable(true, this.selTreeObj) + this.selAgencyId = '' + this.selGridId = '' + await this.getValiheList() + this.neighborHoodId = this.selTreeObj.id + await this.getBuildList() + this.vDisabled = true + } else { + this.$refs['ref_communityTable'].loadTable(true, this.selTreeObj) + if (obj.level === 'grid') { + this.selAgencyId = '' + this.selGridId = this.selTreeObj.id } else { - this.$refs['ref_communityTable'].loadTable(true, this.selTreeObj) + this.selAgencyId = this.selTreeObj.id + this.selGridId = '' } - }) + this.getValiheList('', '') + } + }, @@ -507,7 +728,7 @@ export default { obj.longitude = this.centerPoint[1] } this.selTreeObj = obj - console.log(this.selTreeObj) + console.log('selTreeObj', this.selTreeObj) }, diff --git a/src/views/modules/base/community/communityTable.vue b/src/views/modules/base/community/communityTable.vue index 519ffa792..4c7803184 100644 --- a/src/views/modules/base/community/communityTable.vue +++ b/src/views/modules/base/community/communityTable.vue @@ -2,13 +2,13 @@
- 补全一房一码信息 - diff --git a/src/views/modules/base/epidemic/antiInfo.vue b/src/views/modules/base/epidemic/antiInfo.vue index 34db813b7..c87b14164 100644 --- a/src/views/modules/base/epidemic/antiInfo.vue +++ b/src/views/modules/base/epidemic/antiInfo.vue @@ -141,6 +141,22 @@ + + + + + +
+
+ + 导出 +
{ + this.download(data, title + '.xlsx') + }, + (rspMsg, data) => { + this.$message.error(rspMsg); + } + ); + + }, + + // 下载文件 + download (data, fileName) { + if (!data) { + return + } + + var csvData = new Blob([data]) + + if (window.navigator && window.navigator.msSaveOrOpenBlob) { + window.navigator.msSaveOrOpenBlob(csvData, fileName); + } + // for Non-IE (chrome, firefox etc.) + else { + var a = document.createElement('a'); + document.body.appendChild(a); + a.style = 'display: none'; + var url = window.URL.createObjectURL(csvData); + a.href = url; + a.download = fileName; + a.click(); + a.remove(); + window.URL.revokeObjectURL(url); + } + + }, + handleSizeChange (val) { this.pageSize = val this.pageNo = 1 diff --git a/src/views/modules/base/epidemic/natFocus/natFocusList.vue b/src/views/modules/base/epidemic/natFocus/natFocusList.vue index 527e2d4ef..6ad5af005 100644 --- a/src/views/modules/base/epidemic/natFocus/natFocusList.vue +++ b/src/views/modules/base/epidemic/natFocus/natFocusList.vue @@ -304,7 +304,12 @@ size="small" @click="handleVisiteList(scope.row)">随访记录
- +
+ 删除 +
{ + + let delUrl = "/epmetuser/icEpidemicSpecialAttention/delete"; + const { data, code, msg } = await requestPost(delUrl, [row.id]); + + if (code === 0) { + this.$message({ + type: "success", + message: "删除成功", + }); + this.loadTable(); + } else { + this.$message.error(msg); + } + }) + .catch((err) => { + if (err == "cancel") { + // this.$message({ + // type: "info", + // message: "已取消删除" + // }); + } + }); + }, + async deleteFocus (row) { const url = "/epmetuser/icEpidemicSpecialAttention/cancel-attention"; // const url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/del" diff --git a/src/views/modules/base/epidemic/natInfo/natList.vue b/src/views/modules/base/epidemic/natInfo/natList.vue index 648b2e73f..609c6d914 100644 --- a/src/views/modules/base/epidemic/natInfo/natList.vue +++ b/src/views/modules/base/epidemic/natInfo/natList.vue @@ -22,7 +22,6 @@ { - item.isResiUserShow = item.isResiUser === '0' ? '否' : '是' + item.isResiUserShow = item.isLocalResiUser === '0' ? '否' : '是' if (item.natResult === '1') { item.natResultShow = '阳性' } else if (item.natResult === '0') { diff --git a/src/views/modules/base/epidemic/natInfo/noNatList.vue b/src/views/modules/base/epidemic/natInfo/noNatList.vue index 3490c6060..b2921afe5 100644 --- a/src/views/modules/base/epidemic/natInfo/noNatList.vue +++ b/src/views/modules/base/epidemic/natInfo/noNatList.vue @@ -64,6 +64,31 @@ + + + + + + + + + + +
- + - - - + + - +
- +
- - - + + 选择图片 -
-
-
- 取 消 - 确 定 + 取 消 + 确 定
@@ -132,7 +154,7 @@ import nextTick from "dai-js/tools/nextTick"; export default { props: {}, - data () { + data() { return { offlineShowed: false, @@ -148,7 +170,7 @@ export default { optionUrl: "/gov/voice/tag/taglist", optionUrlParams: {}, optionList: [], - optionCook (list) { + optionCook(list) { return list.map((item) => ({ label: item.tagName, value: item.tagId, @@ -189,12 +211,12 @@ export default { children: "subAgencyList", checkStrictly: true, }, - optionCook (obj) { + optionCook(obj) { return [obj]; }, supKeys: ["publishRangeId", "publishRangeType"], supValues: ["", ""], - handleChangeFn (vals, item) { + handleChangeFn(vals, item) { const { optionList } = item; if (vals.length > 0) { item["supValues"][0] = vals[vals.length - 1]; @@ -246,14 +268,14 @@ export default { exportUrl: "", addUrl: "/gov/voice/article/addOrSaveDraft", - editUrl: "", + editUrl: "/gov/voice/article/updateArticle", infoUrl: "/gov/voice/article/detailV2", - delUrl: "", - editAuth (item) { - return false; + delUrl: "/gov/voice/article/delete批量", + editAuth(item) { + return item.statusFlagName == "已发布"; }, - delAuth (item) { - return false; + delAuth(item) { + return item.statusFlagName == "已下线"; }, editParams: [ @@ -283,7 +305,7 @@ export default { uploadUrl: window.SITE_CONFIG["apiURL"] + "/oss/file/article/upload", supKeys: ["imgUrlArr", "imgUrl"], supValues: [() => [], ""], - beforeImgUpload (file, item, that) { + beforeImgUpload(file, item, that) { console.log(file); const isLt1M = file.size / 1024 / 1024 < 10; const srcType = file.type; @@ -319,10 +341,10 @@ export default { checkStrictly: false, emitPath: false, }, - optionCook (obj) { + optionCook(obj) { return [obj]; }, - handleChangeFn (vals, item, that) { + handleChangeFn(vals, item, that) { console.log("handleChangeFn", vals); const { optionList } = item; const optionPlaneList = collapse(optionList, "subAgencyList"); @@ -363,7 +385,7 @@ export default { type: "date", value: dateFormat(new Date(), "yyyy-MM-dd"), pickerOptions: { - disabledDate (time) { + disabledDate(time) { return time.getTime() > Date.now(); }, }, @@ -384,7 +406,7 @@ export default { optionType: "group", supKeys: ["publisherName", "publisherType"], supValues: ["", ""], - optionCook (data) { + optionCook(data) { let ret = []; const { agencyDeptList, agencyGridList, agencyId, agencyName } = data; @@ -426,7 +448,7 @@ export default { } return ret; }, - handleChangeFn (vals, item, that) { + handleChangeFn(vals, item, that) { const { optionList } = item; let opts = []; optionList.forEach((g) => { @@ -454,7 +476,7 @@ export default { optionUrl: "/gov/voice/tag/taglist", optionUrlParams: {}, optionList: [], - optionCook (list) { + optionCook(list) { return list.map((item) => ({ label: item.tagName, value: item.tagName, @@ -487,7 +509,7 @@ export default { editElseRules: {}, editConfig: { confirmBtnName: "发布", - cookInfoFn (data) { + cookInfoFn(data) { if (data.richTextFlag == "0") { data.content = data.contentList .map((item) => { @@ -518,7 +540,7 @@ export default { return data; }, - beforeSubmit (formType, fmData, that) { + beforeSubmit(formType, fmData, that) { if (fmData.isTop == "1" && !fmData.imgUrl) { that.$message.error("请上传封面图片"); return false; @@ -532,109 +554,105 @@ export default { uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile", replayImgList: [], hideUploadBtn: false, - selType: 'top', - selArticleId: '', - selImgUrl: '' + selType: "top", + selArticleId: "", + selImgUrl: "", }; }, components: { basePage, offline }, computed: {}, watch: {}, - async mounted () { }, + async mounted() {}, methods: { - async handleOfflineShow (item) { + async handleOfflineShow(item) { console.log(item); this.offlineShowed = true; await nextTick(100); this.$refs.offlineForm.initForm(item); }, - async handleAddImage () { - console.log('formData', this.formData) - this.topArticle() + async handleAddImage() { + console.log("formData", this.formData); + this.topArticle(); }, - async handleCancleTopArticle (item, type) { - this.selType = type - this.selArticleId = item.articleId - await 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 + async handleTopArticle(item, type) { + this.selType = type; + this.selArticleId = item.articleId; - let hasImage = await this.isHasImage() + let hasImage = await this.isHasImage(); - if (hasImage === 'refrsh') { + if (hasImage === "refrsh") { this.$message.error("请求失败,请重新尝试"); - - } else if (hasImage === 'no') { + } else if (hasImage === "no") { // this.$message.info("请先上传封面图片"); - this.showAddImage = true + this.showAddImage = true; } else { - await this.topArticle() + await this.topArticle(); } - }, - async isHasImage () { + async isHasImage() { const url = "/gov/voice/article/detailV2"; const { tableData } = this; const { data, code, msg } = await requestPost(url, { articleId: this.selArticleId, - }); if (code === 0) { // this.formData = data if (data.imgUrl) { - return 'has' + return "has"; } else { - return 'no' + return "no"; } } else { - return 'refrsh' + return "refrsh"; } }, - async topArticle () { + async topArticle() { const url = "/gov/voice/article/topArticle"; const { tableData } = this; let params = { articleId: this.selArticleId, - type: this.selType - } + type: this.selType, + }; if (this.selImgUrl) { - params.imgUrl = this.selImgUrl + params.imgUrl = this.selImgUrl; } const { data, code, msg } = await requestPost(url, params); if (code === 0) { this.$message.success("操作成功!"); - this.showAddImage = false + this.showAddImage = false; this.$refs.basePage.refresh(); } else { this.$message.success("操作失败!"); } }, - removePic (file, fileList) { + removePic(file, fileList) { this.selImgUrl = ""; this.replayImgList = []; this.hideUploadBtn = fileList.length >= 1; }, // 最多上传3张图,超过时隐藏上传按钮 - handleEditChange (file, fileList) { + handleEditChange(file, fileList) { this.hideUploadBtn = fileList.length >= 1; }, - exceedPic () { + exceedPic() { this.$message.warning("只能上传1张封面图"); }, - beforeAvatarUpload (file) { + beforeAvatarUpload(file) { const isJPG = file.type === "image/jpeg"; const isLt2M = file.size / 1024 / 1024 < 10; @@ -643,17 +661,17 @@ export default { } return isLt2M; }, - handleSuccess (response, file, fileList) { + handleSuccess(response, file, fileList) { this.replayImgList.push(file); this.selImgUrl = response.data.url; }, - handleOfflineSuccess () { + handleOfflineSuccess() { this.$refs.basePage.refresh(); this.offlineShowed = false; }, - async handleClickDraft (fmData) { + async handleClickDraft(fmData) { let url = this.addUrl; let params = { ...fmData, diff --git a/src/views/modules/cpts/base/index.vue b/src/views/modules/cpts/base/index.vue index f06ecc7ac..71face8d1 100644 --- a/src/views/modules/cpts/base/index.vue +++ b/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("删除成功!"); diff --git a/src/views/modules/plugins/change/changedeath.vue b/src/views/modules/plugins/change/changedeath.vue index d82ec3e3c..bfe0f7014 100644 --- a/src/views/modules/plugins/change/changedeath.vue +++ b/src/views/modules/plugins/change/changedeath.vue @@ -249,7 +249,9 @@ export default {