Browse Source

dd

shibei_master
13176889840 3 years ago
parent
commit
71b59a9191
  1. 2
      src/assets/scss/buttonstyle.scss
  2. 8
      src/assets/scss/main-shuju.scss
  3. 44
      src/router/index.js
  4. 142
      src/views/main-shuju/main-content.vue
  5. 18
      src/views/modules/base/community/communityTable.vue
  6. 244
      src/views/modules/communityService/dqfwzx/index.vue
  7. 6
      src/views/modules/secretaryLog/difficulty/difficultyForm.vue
  8. 6
      src/views/modules/secretaryLog/humanisticCare/careForm.vue
  9. 7
      src/views/modules/secretaryLog/workLog/form.vue

2
src/assets/scss/buttonstyle.scss

@ -106,7 +106,7 @@
text-decoration: underline !important;
}
//
//
.div-table-button--qr {
color: #4ec591 !important;
text-decoration: underline !important;

8
src/assets/scss/main-shuju.scss

@ -5,6 +5,14 @@
body {
}
.m-iframe {
position: relative;
width: 100vw;
height: calc(100vh - 55px);
margin: -10px;
z-index: 100;
}
/* Reset element-ui
------------------------------ */
.g-bd {

44
src/router/index.js

@ -319,11 +319,13 @@ router.beforeEach((to, from, next) => {
// url: "visual/basicinfo/basicInfoMain",
children: [
{
url: "/visual/ai/index",
name: "AI安防",
url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/monitor-panel",
// url: "/visual/ai/index",
name: "视频监控",
id: "5feawfwa111111efwa57",
},
{
/*{
// url: "http://www.baidu.com",
url: "/visual/ai/renliu",
name: "人流数据",
id: "5fwaefwae222112fawef58",
@ -342,10 +344,11 @@ router.beforeEach((to, from, next) => {
url: "/visual/ai/gongdan",
name: "工单数据",
id: "fewafwafewaefddd",
},
},*/
{
url: "/visual/ai/yujing",
name: "预警事件",
// url: "/visual/ai/yujing",
url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/data-analysis",
name: "预警分析",
id: "545345fdsfs",
},
],
@ -500,12 +503,33 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) {
eval(s2)
); // URL支持{{ window.xxx }}占位符变量
if (isURL(URL)) {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = URL;
if (menuList[i].children && menuList[i].children.length >= 1) {
let item = menuList[i].children.find(
(subMenu) => subMenu.url == menuList[i].url
);
if (item) {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["redirect"] = `i-${item.id}`;
} else {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = URL;
}
} else {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = URL;
}
} else {
URL = URL.replace(/^\//, "").replace(/_/g, "-");
route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/${URL}`);
if (URL.startsWith("unopen")) {
route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/unopen`);
} else if (menuList[i].children && menuList[i].children.length >= 1) {
route["path"] = route["name"] = URL;
route["redirect"] = URL.replace(/\//g, "-");
} else {
route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/${URL}`);
}
}
routes.push(route);
}

142
src/views/main-shuju/main-content.vue

@ -1,98 +1,126 @@
<template>
<main :class="['aui-content']">
<!-- 其他方式, 展示内容 -->
<!-- tab展示内容 -->
<template>
<keep-alive>
<router-view />
<template v-if="tabIsIframe($router.currentRoute.meta.iframeURL)">
<iframe
:src="
$router.currentRoute.meta.iframeURL +
'?token=' +
token +
'&customerId=' +
customerId
"
ref="iframe"
class="m-iframe"
id="iframe"
width="100%"
height="100%"
frameborder="0"
scrolling="yes"
/>
</template>
<keep-alive v-show="!tabIsIframe($router.currentRoute.meta.iframeURL)">
<router-view @changeCustomerName="changeCustomerName" />
</keep-alive>
</template>
</main>
</template>
<script>
import { isURL } from '@/utils/validate'
import Cookie from 'js-cookie'
import { isURL } from "@/utils/validate";
import Cookie from "js-cookie";
export default {
data () {
data() {
return {
iframeUrl: '',
token: '',
customerId: ''
}
iframeUrl: "",
token: "",
customerId: "",
};
},
created () {
// this.$nextTick(() => {
// this.sendMessage()
// })
this.token = localStorage.getItem('token')
this.customerId = localStorage.getItem('customerId')
watch: {
// "$router.currentRoute.name": function () {
// console.log($router.currentRoute);
// },
},
created() {
this.token = localStorage.getItem("token");
this.customerId = localStorage.getItem("customerId");
},
methods: {
changeCustomerName (customerName) {
this.$emit('changeCustomerName', customerName)
changeCustomerName(customerName) {
this.$emit("changeCustomerName", customerName);
},
// tabs, iframe
tabIsIframe (url) {
tabIsIframe(url) {
// this.appendIframe(url)
this.iframeUrl = url + '?token=' + localStorage.getItem('token') + '&customerId=' + localStorage.getItem('customerId')
return isURL(url)
// this.iframeUrl =
// url +
// "?token=" +
// localStorage.getItem("token") +
// "&customerId=" +
// localStorage.getItem("customerId");
return isURL(url);
},
// tabs, tab
tabSelectedHandle (tab) {
tab = this.$store.state.contentTabs.filter(item => item.name === tab.name)[0]
tabSelectedHandle(tab) {
tab = this.$store.state.contentTabs.filter(
(item) => item.name === tab.name
)[0];
if (tab) {
this.$router.push({
'name': tab.name,
'params': { ...tab.params },
'query': { ...tab.query }
})
name: tab.name,
params: { ...tab.params },
query: { ...tab.query },
});
}
},
// tabs, tab
tabRemoveHandle (tabName) {
if (tabName === 'home') {
return false
tabRemoveHandle(tabName) {
if (tabName === "home") {
return false;
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
);
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home'
return false
this.$store.state.sidebarMenuActiveName =
this.$store.state.contentTabsActiveName = "home";
return false;
}
// tab
if (tabName === this.$store.state.contentTabsActiveName) {
let tab = this.$store.state.contentTabs[this.$store.state.contentTabs.length - 1]
let tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
];
this.$router.push({
name: tab.name,
params: { ...tab.params },
query: { ...tab.query }
})
query: { ...tab.query },
});
}
},
// tabs,
tabsCloseOtherHandle () {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => {
return item.name === 'home' || item.name === this.$store.state.contentTabsActiveName
})
tabsCloseOtherHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => {
return (
item.name === "home" ||
item.name === this.$store.state.contentTabsActiveName
);
}
);
},
// tabs,
tabsCloseAllHandle () {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name === 'home')
this.$router.push({ name: 'home' })
tabsCloseAllHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name === "home"
);
this.$router.push({ name: "home" });
},
sendMessage () {
// const iframe = this.$refs.iframes.contentWindow
const iframe = document.getElementsByClassName('iframes')[0].contentWindow
console.log('iframe', iframe)
// iframe.postMessage({
// token: localStorage.getItem('token'),
// customerId: localStorage.getItem('customerId')
// }, '*')
iframe.postMessage({ name: 'lalalal' }, '*')
},
}
}
},
};
</script>
<style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style>

18
src/views/modules/base/community/communityTable.vue

@ -103,7 +103,8 @@
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
<el-button v-if="agencyObj.level == 'community'" style="margin-left:10px"
<el-button v-if="agencyObj.level == 'community'"
style="margin-left:10px"
class="diy-button--qrcode"
size="small"
@click="handleDownQr(agencyObj, 'community')">社区二维码</el-button>
@ -173,8 +174,7 @@
class="div-table-button--qr"
size="small"
@click="handleDownQr(scope.row, 'neighborHood')">二维码</el-button> -->
<el-button
type="text"
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
@ -547,7 +547,7 @@ export default {
this.$message.error(msg)
}
},
async handleDownQr(row, type) {
async handleDownQr (row, type) {
// const url = window.SITE_CONFIG['apiURL'] + `/gov/org/icneighborhood/createQrCode/${row.neighborHoodId}`
const url = '/gov/org/agency/create-qrcode'
const _id = type == 'community' ? row.id : row.neighborHoodId
@ -563,11 +563,11 @@ export default {
}).then(res => {
console.log('res----1r', res)
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
this.download(res.data, fileName) //blob
} else this.$message.error('下载失败')
// this.download(res.data, '1.png')
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
this.download(res.data, fileName) //blob
} else this.$message.error('下载失败')
// this.download(res.data, '1.png')
})
},
//

244
src/views/modules/communityService/dqfwzx/index.vue

@ -2,26 +2,25 @@
<div>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button class="diy-button--add" size="small" @click="handleAdd"
>新增</el-button
>
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
</div>
<div class="m-center" v-if="tableData.length > 0">
<div class="m-center"
v-if="tableData.length > 0">
<div class="center-left">
<div class="list">
<div
@click="currentIndex = index"
class="item"
:class="{ 'z-on': currentIndex == index }"
:key="'ct' + index"
v-for="(item, index) in tableData"
>
<div class="item-btns">
<a v-if="currentIndex == index" @click="handleEdit">修改</a>
<a v-if="currentIndex == index" @click="handleDel">删除</a>
<div @click="currentIndex = index"
class="item"
:class="{ 'z-on': currentIndex == index }"
:key="'ct' + index"
v-for="(item, index) in tableData">
<div class="item-btn"
v-if="currentIndex == index"
@click="handleEdit">
修改
</div>
<div class="item-name">{{ item.centerName }}</div>
<div class="item-prop">
<div class="prop-field">社区地址</div>
@ -49,114 +48,95 @@
>
</div> -->
<div id="centerIndexApp" class="div_map"></div>
<el-table
:data="tableData[currentIndex].matterList"
border
style="width: 100%"
class="resi-table"
:max-height="maxTableHeight"
>
<el-table-column
label="序号"
type="index"
align="center"
width="50"
/>
<el-table-column prop="matterName" label="事项名称">
<div id="centerIndexApp"
class="div_map"></div>
<el-table :data="tableData[currentIndex].matterList"
border
style="width: 100%"
class="resi-table"
:max-height="maxTableHeight">
<el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column prop="matterName"
label="事项名称">
</el-table-column>
<el-table-column prop="allowTime" label="可预约时间 ">
<el-table-column prop="allowTime"
label="可预约时间 ">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="120"
>
<el-table-column fixed="right"
label="操作"
align="center"
width="120">
<template slot-scope="scope">
<el-button
@click="handleOrder(scope.$index)"
type="text"
size="small"
style="color: #1c6afd"
>预约</el-button
>
<el-button
@click="handleOrderList(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #1c6afd"
>预约记录</el-button
>
<el-button @click="handleOrder(scope.$index)"
type="text"
size="small"
style="color: #1c6afd">预约</el-button>
<el-button @click="handleOrderList(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #1c6afd">预约记录</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="m-hint" v-else>
<el-empty description="暂无内容" :image-size="200"></el-empty>
<div class="m-hint"
v-else>
<el-empty description="暂无内容"
:image-size="200"></el-empty>
</div>
</el-card>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleClose"
>
<edit-form
ref="eleEditForm"
@dialogCancle="handleClose"
@dialogOk="handleEditSuccess"
></edit-form>
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleClose">
<edit-form ref="eleEditForm"
@dialogCancle="handleClose"
@dialogOk="handleEditSuccess"></edit-form>
</el-dialog>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="form2Show"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseForm2"
>
<order-form
ref="eleOrderForm"
@dialogCancle="handleCloseForm2"
@dialogOk="handleOrderSuccess"
></order-form>
<el-dialog :visible.sync="form2Show"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseForm2">
<order-form ref="eleOrderForm"
@dialogCancle="handleCloseForm2"
@dialogOk="handleOrderSuccess"></order-form>
</el-dialog>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="orderListShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约记录"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseOrderList"
>
<order-list
ref="eleOrderList"
@dialogCancle="handleCloseOrderList"
></order-list>
<el-dialog :visible.sync="orderListShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约记录"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseOrderList">
<order-list ref="eleOrderList"
@dialogCancle="handleCloseOrderList"></order-list>
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request2";
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import editForm from "./cpts/edit";
@ -171,7 +151,7 @@ let loading; // 加载动画
export default {
components: { editForm, orderForm, orderList },
data() {
data () {
return {
openSearch: false,
@ -188,23 +168,23 @@ export default {
};
},
computed: {
maxTableHeight() {
maxTableHeight () {
return this.clientHeight - 520;
},
...mapGetters(["clientHeight"]),
},
watch: {
currentIndex() {
currentIndex () {
this.setMap();
},
},
async mounted() {
async mounted () {
await this.loadAgency();
await this.getTableData();
},
methods: {
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map()
@ -224,7 +204,7 @@ export default {
infoWindowList = Array(10);
},
setMarker(lat, lng, centerName) {
setMarker (lat, lng, centerName) {
markers.setGeometries([]);
markers.add([
{
@ -238,11 +218,11 @@ export default {
]);
},
setCenter(lat, lng) {
setCenter (lat, lng) {
map.setCenter(new window.TMap.LatLng(lat, lng));
},
setMap() {
setMap () {
const { tableData, currentIndex } = this;
let item = tableData[currentIndex];
if (item) {
@ -251,24 +231,24 @@ export default {
}
},
handleClose() {
handleClose () {
this.formShow = false;
},
handleCloseForm2() {
handleCloseForm2 () {
this.form2Show = false;
},
handleCloseOrderList() {
handleCloseOrderList () {
this.orderListShow = false;
},
async handleAdd() {
async handleAdd () {
this.formShow = true;
await nextTick();
console.log(this.$refs);
this.$refs.eleEditForm.initForm("add");
},
async handleWatch() {
async handleWatch () {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm(
@ -277,7 +257,7 @@ export default {
);
},
async handleEdit() {
async handleEdit () {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm(
@ -286,12 +266,12 @@ export default {
);
},
handleEditSuccess() {
handleEditSuccess () {
this.handleClose();
this.getTableData();
},
async handleOrder(index) {
async handleOrder (index) {
this.form2Show = true;
await nextTick();
this.$refs.eleOrderForm.initForm(
@ -301,34 +281,36 @@ export default {
);
},
handleOrderSuccess() {
handleOrderSuccess () {
this.handleCloseForm2();
},
async handleOrderList(index) {
async handleOrderList (index) {
this.orderListShow = true;
await nextTick(0);
console.log(this.$refs);
this.$refs.eleOrderList.init(this.tableData[this.currentIndex], index);
},
async handleDel() {
if (!confirm("删除后不可恢复,确定删除?")) return;
async handleDel (rowData, rowIndex) {
console.log(rowData, rowIndex);
const url =
"/heart/iccommunityselforganization/delcommunityselforganization";
const { tableData } = this;
const item = this.tableData[this.currentIndex];
const url = "/gov/org/icpartyservicecenter/del";
const { data, code, msg } = await requestPost(url, [
item.partyServiceCenterId,
]);
const { data, code, msg } = await requestPost(url, {
orgId: tableData[rowIndex].orgId,
});
if (code === 0) {
this.$message.success("删除成功!");
this.getTableData();
} else {
this.$message.success("操作失败!");
}
},
async getTableData() {
async getTableData () {
const oldLen = this.tableData.length;
const url = "/gov/org/icpartyservicecenter/partyservicecenterlist";
const { data, code, msg } = await requestPost(url, {
@ -349,7 +331,7 @@ export default {
},
//
async loadAgency() {
async loadAgency () {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
@ -357,6 +339,8 @@ export default {
if (code === 0) {
this.agencyId = data.agencyId;
} else {
this.$message.error(msg);
}
},
},
@ -410,8 +394,7 @@ export default {
background-color: #ffffff;
box-shadow: 0 0 10px #6aa;
}
.item-btns {
.item-btn {
position: absolute;
top: 5px;
right: 5px;
@ -440,7 +423,6 @@ export default {
}
}
}
.item-name {
font-size: 16px;
font-weight: bold;

6
src/views/modules/secretaryLog/difficulty/difficultyForm.vue

@ -276,7 +276,7 @@ export default {
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'xls'
&& extension !== 'xlsx'
&& extension !== 'doc'
@ -285,6 +285,10 @@ export default {
this.$message.error('只能上传word、excel、pdf文件!')
return false
}
if (!isLt1M) {
this.$message.error('上传文件大小不能超过 5MB!')
}
return isLt1M
},

6
src/views/modules/secretaryLog/humanisticCare/careForm.vue

@ -331,7 +331,7 @@ export default {
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'xls'
&& extension !== 'xlsx'
&& extension !== 'doc'
@ -340,6 +340,10 @@ export default {
this.$message.error('只能上传word、excel、pdf文件!')
return false
}
if (!isLt1M) {
this.$message.error('上传文件大小不能超过 5MB!')
}
return isLt1M
},

7
src/views/modules/secretaryLog/workLog/form.vue

@ -252,7 +252,7 @@ export default {
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'xls'
&& extension !== 'xlsx'
&& extension !== 'doc'
@ -261,7 +261,10 @@ export default {
this.$message.error('只能上传word、excel、pdf文件!')
return false
}
if (!isLt1M) {
this.$message.error('上传文件大小不能超过 5MB!')
}
return isLt1M
},
handleFileRemove (file) {

Loading…
Cancel
Save