This commit is contained in:
yanran200730
2021-12-24 17:43:22 +08:00
6 changed files with 261 additions and 246 deletions

View File

@@ -186,10 +186,12 @@
v-if="forms.plottingStatus == 1"
>
<el-button type="primary" size="mini" @click="polyEditor.open()"
>开始编辑</el-button
>开始编辑
</el-button
>
<el-button size="mini" @click="polyEditor.close()"
>结束编辑</el-button
>结束编辑
</el-button
>
</el-button-group>
<el-button-group
@@ -197,7 +199,8 @@
v-if="forms.plottingStatus == 0"
>
<el-button size="mini" @click="draw('polygon')"
>开始绘制多边形</el-button
>开始绘制多边形
</el-button
>
<!-- <el-button size="mini" @click="close()">关闭绘制</el-button> -->
<el-button size="mini" @click="clear()">清除绘制</el-button>
@@ -206,7 +209,8 @@
<div class="dialog-footer" slot="footer">
<el-button size="medium" @click="showMap = false">取消</el-button>
<el-button type="primary" size="medium" @click="surePotting()"
>确认</el-button
>确认
</el-button
>
</div>
</ai-dialog>
@@ -216,6 +220,7 @@
<script>
import AMapLoader from "@amap/amap-jsapi-loader";
import {mapState} from "vuex";
export default {
name: "addBlock",
props: {
@@ -306,33 +311,30 @@ export default {
// this.forms.isLastLevel = ['0','1'].includes(this.forms.girdLevel)?'0':'1';
this.title = "添加网格区块";
}
this.getAllUnit(this.user.info.areaId);
// this.getAllUnit(this.user.info.areaId);
},
methods: {
cancel(isRefresh) {
this.$emit('change', {
type: 'list',
isRefresh: isRefresh ? true : false,
isRefresh: !!isRefresh,
})
},
// 获取所有单位
getAllUnit(data) {
this.options = [];
this.instance
.post("/admin/sysunit/getAll", null, {
params: {
areaId: data,
},
})
.then((res) => {
this.instance.post("/admin/sysunit/getAll", null, {
params: {areaId: data},
}).then((res) => {
if (res?.data) {
res.data = res.data.map((a) => {
return { ...a, label: a.name };
return {...a, label: a.name}
});
this.options = res.data.filter((e) => !e.parentId);
this.options.map((t) => this.addChild(t, res.data));
}
});
},
beforeSelectMap() {
AMapLoader.load({
key: "b553334ba34f7ac3cd09df9bc8b539dc", // 申请好的Web端开发者Key首次调用 load 时必填
@@ -392,17 +394,13 @@ export default {
eventOn() {
this.path = [];
this.overlays = [];
this.map.on("mousemove", this.showInfoMove, this);
this.mouseTool.on("draw", ({ type, obj }) => {
console.log(obj);
this.map.on("mousemove", null, this);
this.mouseTool.on("draw", ({obj}) => {
obj.getPath().map((e) => {
this.path.push({lat: e.getLat(), lng: e.getLng()});
});
this.overlays.push(obj);
});
this.placeSearch.on("listElementClick", (e) => {
console.log(e);
});
})
},
//map搜索
addressChange(val) {
@@ -497,12 +495,10 @@ export default {
});
},
searchDetail() {
this.instance
.post(`/app/appgirdinfo/queryDetailById`, null, {
this.instance.post(`/app/appgirdinfo/queryDetailById`, null, {
params: {id: this.params.id},
})
.then((res) => {
if (res.code == 0) {
}).then((res) => {
if (res?.data) {
this.forms = {...res.data};
this.parentGirdInfo = this.forms.parentGirdInfo;
this.forms.parentGirdName = this.parentGirdInfo.girdName;
@@ -518,41 +514,48 @@ export default {
.add-block {
width: 100%;
height: 100%;
.above {
overflow: hidden;
padding: 8px 0;
.left {
width: 380px;
float: left;
}
.right {
width: 380px;
float: right;
}
}
.footer-btn {
width: 92px;
}
.map {
width: 780px;
position: relative;
overflow: hidden;
.container {
width: 760px;
height: 420px;
border-radius: 2px;
border: 1px solid #d0d4dc;
}
#panel {
position: absolute;
height: 400px;
right: 30px;
overflow-x: auto;
top: 20px;
width: 280px;
overflow: hidden;
z-index: 10000;
}
.tipinput {
position: absolute;
width: 200px;

View File

@@ -11,10 +11,12 @@
<ai-select v-model="formData.mediaId" placeholder="播发内容" clearable :selectList="mediaList"></ai-select>
</el-form-item>
<el-form-item label="播放设备" prop="serialNo">
<ai-select v-model="formData.serialNo" placeholder="播放设备" clearable :selectList="equipmentList"></ai-select>
<ai-select v-model="formData.serialNo" placeholder="播放设备" clearable
:selectList="equipmentList"></ai-select>
</el-form-item>
<el-form-item label="播发级别" prop="messageLevel">
<ai-select v-model="formData.messageLevel" placeholder="播发级别" clearable :selectList="$dict.getDict('dlbMessageUrgency')"></ai-select>
<ai-select v-model="formData.messageLevel" placeholder="播发级别" clearable
:selectList="$dict.getDict('dlbMessageUrgency')"></ai-select>
</el-form-item>
<el-form-item label="播放方式" prop="taskType" class="buildingTypes">
<el-radio-group v-model="formData.taskType">
@@ -23,9 +25,11 @@
</el-radio-group>
</el-form-item>
<el-form-item label="定时策略" prop="cyclingType" v-if="formData.taskType != 0">
<ai-select v-model="formData.cyclingType" placeholder="定时策略" clearable :selectList="$dict.getDict('dlbDyclingType')"></ai-select>
<ai-select v-model="formData.cyclingType" placeholder="定时策略" clearable
:selectList="$dict.getDict('dlbDyclingType')"></ai-select>
</el-form-item>
<el-form-item label="播放天数" prop="checkList" class="buildingTypes" v-if="formData.taskType != 0 && formData.cyclingType == 2">
<el-form-item label="播放天数" prop="checkList" class="buildingTypes"
v-if="formData.taskType != 0 && formData.cyclingType == 2">
<el-checkbox-group v-model="formData.checkList">
<el-checkbox label="1">每周一</el-checkbox>
<el-checkbox label="2">每周二</el-checkbox>
@@ -37,16 +41,22 @@
</el-checkbox-group>
</el-form-item>
<el-form-item label="播放天数" prop="broadcastDay" v-if="formData.taskType != 0 && formData.cyclingType == 3">
<el-input v-model="formData.broadcastDay" placeholder="播放天数" clearable size="small" maxlength="4"></el-input>
<el-input v-model="formData.broadcastDay" placeholder="播放天数" clearable size="small"
maxlength="4"></el-input>
</el-form-item>
<el-form-item label="开始日期" prop="startDate" v-if="formData.taskType != 0">
<el-date-picker v-model="formData.startDate" type="date" placeholder="选择日期" size="small" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker v-model="formData.startDate" type="date" placeholder="选择日期" size="small"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="开始时间" prop="startTime" v-if="formData.taskType != 0">
<el-time-picker v-model="formData.startTime" placeholder="开始时间" size="small" :picker-options="{ start: newDate, minTime: newDate}" value-format="HH:mm:ss"></el-time-picker>
<el-time-picker v-model="formData.startTime" placeholder="开始时间" size="small"
:picker-options="{ start: newDate, minTime: newDate}"
value-format="HH:mm:ss"></el-time-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime" v-if="formData.taskType != 0">
<el-time-picker v-model="formData.endTime" placeholder="结束时间" size="small" :picker-options="{ start: formData.startTime, minTime: formData.startTime}" value-format="HH:mm:ss"></el-time-picker>
<el-time-picker v-model="formData.endTime" placeholder="结束时间" size="small"
:picker-options="{ start: formData.startTime, minTime: formData.startTime}"
value-format="HH:mm:ss"></el-time-picker>
</el-form-item>
</el-form>
</template>
@@ -153,50 +163,33 @@ export default {
},
newDate() {
var myDate = new Date();
var time = myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds()
return time
return myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds()
}
},
created() {
this.dict.load('dlbMessageUrgency', 'dlbBroadTaskType', 'dlbDyclingType')
Promise.all([this.getEquipmentList(), this.getMediaList()]).then(() => {
this.formData.mediaId = this.params.id
this.dict.load('dlbMessageUrgency', 'dlbBroadTaskType', 'dlbDyclingType').then(() => {
this.getEquipmentList()
})
},
methods: {
getMediaList() {
this.instance.post(`/app/appdlbresource/list?current=1&size=10000`).then((res) => {
if (res.code == 0) {
this.mediaList = []
if(res.data && res.data.records.length) {
res.data.records.map((item) => {
let info = {
return this.instance.post(`/app/appdlbresource/list?current=1&size=10000`).then((res) => {
if (res?.data) {
this.mediaList = res.data.records?.map((item) => ({
dictName: item.name,
dictValue: item.id
}
this.mediaList.push(info)
})
}
// if(this.params.id) {
// this.getDetail()
// }
})) || []
}
})
},
getEquipmentList() {
this.instance.post(`/app/appdlbquipment/getDlbDeviceList?current=1&size=10000&devStatus=5&keyword=`).then((res) => {
if (res.code == 0) {
this.equipmentList = []
if(res.data && res.data.records.length) {
res.data.records.map((item) => {
let info = {
return this.instance.post(`/app/appdlbquipment/getDlbDeviceList?current=1&size=10000&devStatus=5`).then((res) => {
if (res?.data) {
this.equipmentList = res.data.records?.map((item) => ({
dictName: item.deviceName,
dictValue: item.serialNo
}
this.equipmentList.push(info)
})
}
this.getMediaList()
})) || []
}
})
},
@@ -224,7 +217,7 @@ export default {
},
getDetail() {
this.instance.post(`/app/appzyvideobroadcast/queryDetailById?id=${this.params.id}`).then((res) => {
if (res.code == 0) {
if (res?.data) {
this.formData = {
...res.data,
checkList: []

View File

@@ -3,8 +3,15 @@
<ai-list v-if="showList">
<ai-title title="三会一课" isShowBottomBorder slot="title">
<template #rightBtn>
<ai-party :instance="instance" v-model="partyId" :topOrgId="topOrgId" size="small"
style="display:inline-block" @origin="changeParty"/>
<ai-party :instance="instance" v-model="partyId" :topOrgId="topOrgId" :name.sync="partyOrgLabel"
style="display:inline-block" @origin="changeParty" customClicker url="/app/partyOrganization/queryChildrenByParentId">
<el-input size="small" v-model="partyOrgLabel" readonly placeholder="选择党组织">
<el-row slot="append" type="flex" class="partyPicker">
<i class="iconfont icondangyuan"/>
<div v-text="`切换党组织`"/>
</el-row>
</el-input>
</ai-party>
<el-button icon="iconfont iconNav_DataCenter" size="small" type="primary" @click="showStatistics()">会议统计
</el-button>
<el-button icon="iconfont iconSetting" size="small" type="primary" @click="toMeetSet()">设置</el-button>
@@ -235,6 +242,7 @@ export default {
totalTitleList: [],
pieData: {},
pieChart: [],
partyOrgLabel: ""
}
},
methods: {
@@ -413,10 +421,23 @@ export default {
.AppMeetingChinaunion {
height: 100%;
::v-deep .ai-party {
::v-deep .ai-partyorg {
.el-dialog__header, .el-dialog__footer {
line-height: 1 !important;
}
.el-input-group__append {
background: rgba(245, 245, 245, 1);
}
.el-input__inner {
direction: rtl;
}
.partyPicker {
gap: 8px;
align-items: center;
}
}
.pieList {

View File

@@ -394,7 +394,6 @@ export default {
filterText(val) {
this.$refs.partyTree.filter(val);
},
selectParty(newVal) {
++this.partyKey
@@ -413,7 +412,6 @@ export default {
this.$set(this.form, 'chargeOfSignInList', [])
this.$set(this.form, 'participantList', [])
},
form: {
handler(newVal) {
if (newVal.startTime && newVal.meetingBefore) {
@@ -590,7 +588,7 @@ export default {
//获取会议详请
getDetailInfo() {
this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
this.detail.id && this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
if (res && res.data) {
this.form = res.data
this.form.meetingClassification = res.data.meetingClassification.split(",");

View File

@@ -429,7 +429,7 @@ export default {
},
//获取会议详请
getDetailInfo() {
this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
this.detail.id&& this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
if (res?.data) {
res.data.annex = JSON.parse(res.data.annex);
res.data.meetingClassification = res.data.meetingClassification.split(',');

View File

@@ -15,10 +15,10 @@
:selectList="dict.getDict('villagePictureAlbumType')">
</ai-select>
</el-form-item>
<el-form-item prop="areaId" style="width: 100%;" label="发布地区" :rules="[{required: true, pattern: /[^000]$/, message: '请选择地区', trigger: 'change'}]">
<el-form-item prop="areaId" style="width: 100%;" label="发布地区" :rules="[{required: true, pattern: /[^000]$/, message: '请选择到村', trigger: 'change'}]">
<ai-area-select @fullname="v => form.areaName = v" clearable always-show :instance="instance" v-model="form.areaId" :disabled-level="disabledLevel"></ai-area-select>
</el-form-item>
<el-form-item label="图片" style="width: 100%;" prop="urlList">
<el-form-item label="图片" style="width: 100%;" prop="urlList" :rules="[{required: true, message: '请上传图片'}]">
<ai-uploader
:instance="instance"
v-model="form.urlList"