Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into dev
This commit is contained in:
355
packages/2.0.5/AppGridBlock/components/add.vue
vendored
355
packages/2.0.5/AppGridBlock/components/add.vue
vendored
@@ -3,67 +3,67 @@
|
||||
<ai-detail>
|
||||
<template #title>
|
||||
<ai-title
|
||||
:title="title"
|
||||
:isShowBack="true"
|
||||
:isShowBottomBorder="true"
|
||||
@onBackClick="cancel(false)"
|
||||
:title="title"
|
||||
:isShowBack="true"
|
||||
:isShowBottomBorder="true"
|
||||
@onBackClick="cancel(false)"
|
||||
></ai-title>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-card title="层级信息" >
|
||||
<ai-card title="层级信息">
|
||||
<template slot="content">
|
||||
<ai-wrapper label-width="120px" :columnsNumber="2" style="margin-top: 16px">
|
||||
<ai-wrapper label-width="120px" :columnsNumber="2" style="margin-top: 16px">
|
||||
<ai-info-item label="上级层级单位:"><span>{{ forms.parentGirdName }}</span></ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
|
||||
|
||||
<el-form
|
||||
ref="rules"
|
||||
:model="forms"
|
||||
:rules="formRules"
|
||||
size="small"
|
||||
label-suffix=":"
|
||||
label-width="120px"
|
||||
ref="rules"
|
||||
:model="forms"
|
||||
:rules="formRules"
|
||||
size="small"
|
||||
label-suffix=":"
|
||||
label-width="120px"
|
||||
>
|
||||
<ai-card title="基础信息" >
|
||||
<ai-card title="基础信息">
|
||||
<template slot="content">
|
||||
<div class="above">
|
||||
<div class="left">
|
||||
<el-form-item label="网格名称" prop="girdName">
|
||||
<el-input
|
||||
v-model="forms.girdName"
|
||||
placeholder="请输入…"
|
||||
maxlength="10"
|
||||
show-word-limit
|
||||
v-model="forms.girdName"
|
||||
placeholder="请输入…"
|
||||
maxlength="10"
|
||||
show-word-limit
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="网格类型" prop="girdType">
|
||||
<el-select
|
||||
v-model="forms.girdType"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
v-model="forms.girdType"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, i) in dict.getDict('girdType')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
v-for="(item, i) in dict.getDict('girdType')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否最后一级" prop="isLastLevel">
|
||||
<el-select
|
||||
v-model="forms.isLastLevel"
|
||||
placeholder="请选择"
|
||||
:disabled="isEdit"
|
||||
clearable
|
||||
v-model="forms.isLastLevel"
|
||||
placeholder="请选择"
|
||||
:disabled="isEdit"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, i) in dict.getDict('isLastLevel')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
v-for="(item, i) in dict.getDict('isLastLevel')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -71,24 +71,24 @@
|
||||
<div class="right">
|
||||
<el-form-item label="网格编码" prop="girdCode">
|
||||
<el-input
|
||||
v-model="forms.girdCode"
|
||||
placeholder="请输入…"
|
||||
maxlength="30"
|
||||
show-word-limit
|
||||
v-model="forms.girdCode"
|
||||
placeholder="请输入…"
|
||||
maxlength="30"
|
||||
show-word-limit
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="网格层级" prop="girdLevel">
|
||||
<el-select
|
||||
v-model="forms.girdLevel"
|
||||
placeholder="请选择"
|
||||
:disabled="isEdit"
|
||||
clearable
|
||||
v-model="forms.girdLevel"
|
||||
placeholder="请选择"
|
||||
:disabled="isEdit"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, i) in dict.getDict('girdLevel')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
v-for="(item, i) in dict.getDict('girdLevel')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -97,7 +97,7 @@
|
||||
</template>
|
||||
</ai-card>
|
||||
|
||||
<ai-card title="其他信息" >
|
||||
<ai-card title="其他信息">
|
||||
<template slot="content">
|
||||
<div class="above">
|
||||
<div class="left">
|
||||
@@ -113,19 +113,19 @@
|
||||
</el-form-item> -->
|
||||
<el-form-item label="初始日期" prop="startDate">
|
||||
<el-date-picker
|
||||
v-model="forms.startDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
v-model="forms.startDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="终止日期" prop="endDate">
|
||||
<el-date-picker
|
||||
v-model="forms.endDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
v-model="forms.endDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
@@ -133,8 +133,8 @@
|
||||
<div class="right">
|
||||
<el-form-item label="面积" prop="area">
|
||||
<el-input
|
||||
v-model="forms.area"
|
||||
placeholder="面积㎡"
|
||||
v-model="forms.area"
|
||||
placeholder="面积㎡"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -146,7 +146,7 @@
|
||||
<el-button size="small" @click="showMap = true">地图标绘</el-button>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</ai-card>
|
||||
</ai-card>
|
||||
</el-form>
|
||||
</template>
|
||||
<template #footer>
|
||||
@@ -159,45 +159,48 @@
|
||||
</template>
|
||||
</ai-detail>
|
||||
<ai-dialog
|
||||
title="网格范围"
|
||||
:visible.sync="showMap"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
@opened="beforeSelectMap"
|
||||
border
|
||||
width="850px"
|
||||
title="网格范围"
|
||||
:visible.sync="showMap"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
@opened="beforeSelectMap"
|
||||
border
|
||||
width="850px"
|
||||
>
|
||||
<div class="map">
|
||||
<div class="tipinput">
|
||||
<el-input
|
||||
v-model="searchAddress"
|
||||
@change="addressChange"
|
||||
clearable
|
||||
placeholder="请输入关键字"
|
||||
id="tipinput"
|
||||
size="medium"
|
||||
style="width: 200px"
|
||||
v-model="searchAddress"
|
||||
@change="addressChange"
|
||||
clearable
|
||||
placeholder="请输入关键字"
|
||||
id="tipinput"
|
||||
size="medium"
|
||||
style="width: 200px"
|
||||
></el-input>
|
||||
</div>
|
||||
<div id="panel"></div>
|
||||
<div class="container" id="container"></div>
|
||||
<el-button-group
|
||||
style="margin-top: 8px"
|
||||
v-if="forms.plottingStatus == 1"
|
||||
style="margin-top: 8px"
|
||||
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
|
||||
style="margin-top: 8px"
|
||||
v-if="forms.plottingStatus == 0"
|
||||
style="margin-top: 8px"
|
||||
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>
|
||||
@@ -215,7 +219,8 @@
|
||||
|
||||
<script>
|
||||
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||
import { mapState } from "vuex";
|
||||
import {mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
name: "addBlock",
|
||||
props: {
|
||||
@@ -262,22 +267,22 @@ export default {
|
||||
formRules() {
|
||||
return {
|
||||
girdName: [
|
||||
{ required: true, message: "请填写网格名称", trigger: "change" },
|
||||
{required: true, message: "请填写网格名称", trigger: "change"},
|
||||
],
|
||||
girdCode: [
|
||||
{ required: true, message: "请填写网格编码", trigger: "change" },
|
||||
{required: true, message: "请填写网格编码", trigger: "change"},
|
||||
],
|
||||
girdType: [
|
||||
{ required: true, message: "请选择网格类型", trigger: "change" },
|
||||
{required: true, message: "请选择网格类型", trigger: "change"},
|
||||
],
|
||||
isLastLevel: [
|
||||
{ required: true, message: "请选择是否最后一级", trigger: "change" },
|
||||
{required: true, message: "请选择是否最后一级", trigger: "change"},
|
||||
],
|
||||
girdLevel: [
|
||||
{ required: true, message: "请选择网格层级", trigger: "change" },
|
||||
{required: true, message: "请选择网格层级", trigger: "change"},
|
||||
],
|
||||
eventReportUnitId: [
|
||||
{ required: true, message: "请选择事件上报主体", trigger: "change" },
|
||||
{required: true, message: "请选择事件上报主体", trigger: "change"},
|
||||
],
|
||||
};
|
||||
},
|
||||
@@ -290,7 +295,7 @@ export default {
|
||||
},
|
||||
unitOps() {
|
||||
let initData = JSON.parse(JSON.stringify(this.options)),
|
||||
ops = initData.filter((e) => !e.parentId);
|
||||
ops = initData.filter((e) => !e.parentId);
|
||||
ops.map((e) => this.addChild(e, initData));
|
||||
return ops;
|
||||
},
|
||||
@@ -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) {
|
||||
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 时必填
|
||||
@@ -344,65 +346,61 @@ export default {
|
||||
plugins: [], // 需要加载的 AMapUI ui插件
|
||||
},
|
||||
})
|
||||
.then((AMap) => {
|
||||
this.map = new AMap.Map("container", {
|
||||
resizeEnable: true,
|
||||
});
|
||||
if (this.forms.plottingStatus == 1) {
|
||||
let path = [];
|
||||
this.forms.points.map((e, index) => {
|
||||
path[index] = [e.lng, e.lat];
|
||||
});
|
||||
let polygon = new AMap.Polygon({
|
||||
path: path,
|
||||
strokeColor: "#FF33FF",
|
||||
strokeWeight: 6,
|
||||
strokeOpacity: 0.2,
|
||||
fillOpacity: 0.4,
|
||||
fillColor: "#1791fc",
|
||||
zIndex: 50,
|
||||
bubble: true,
|
||||
});
|
||||
this.map.add([polygon]);
|
||||
this.map.setFitView();
|
||||
this.polyEditor = new AMap.PolygonEditor(this.map, polygon);
|
||||
} else {
|
||||
this.mouseTool = new AMap.MouseTool(this.map);
|
||||
// this.map.add(new AMap.Marker({
|
||||
// position:this.map.getCenter()
|
||||
// }));
|
||||
this.placeSearch = new AMap.PlaceSearch({
|
||||
pageSize: 3, // 单页显示结果条数
|
||||
pageIndex: 1, // 页码
|
||||
city: "", // 兴趣点城市
|
||||
citylimit: false, //是否强制限制在设置的城市内搜索
|
||||
map: this.map, // 展现结果的地图实例
|
||||
panel: "panel", // 结果列表将在此容器中进行展示。
|
||||
autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
|
||||
});
|
||||
this.map.setZoomAndCenter(14, [117.147097, 36.72081], false, 600);
|
||||
this.eventOn();
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
.then((AMap) => {
|
||||
this.map = new AMap.Map("container", {
|
||||
resizeEnable: true,
|
||||
});
|
||||
if (this.forms.plottingStatus == 1) {
|
||||
let path = [];
|
||||
this.forms.points.map((e, index) => {
|
||||
path[index] = [e.lng, e.lat];
|
||||
});
|
||||
let polygon = new AMap.Polygon({
|
||||
path: path,
|
||||
strokeColor: "#FF33FF",
|
||||
strokeWeight: 6,
|
||||
strokeOpacity: 0.2,
|
||||
fillOpacity: 0.4,
|
||||
fillColor: "#1791fc",
|
||||
zIndex: 50,
|
||||
bubble: true,
|
||||
});
|
||||
this.map.add([polygon]);
|
||||
this.map.setFitView();
|
||||
this.polyEditor = new AMap.PolygonEditor(this.map, polygon);
|
||||
} else {
|
||||
this.mouseTool = new AMap.MouseTool(this.map);
|
||||
// this.map.add(new AMap.Marker({
|
||||
// position:this.map.getCenter()
|
||||
// }));
|
||||
this.placeSearch = new AMap.PlaceSearch({
|
||||
pageSize: 3, // 单页显示结果条数
|
||||
pageIndex: 1, // 页码
|
||||
city: "", // 兴趣点城市
|
||||
citylimit: false, //是否强制限制在设置的城市内搜索
|
||||
map: this.map, // 展现结果的地图实例
|
||||
panel: "panel", // 结果列表将在此容器中进行展示。
|
||||
autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
|
||||
});
|
||||
this.map.setZoomAndCenter(14, [117.147097, 36.72081], false, 600);
|
||||
this.eventOn();
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
},
|
||||
//地图事件绑定
|
||||
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.path.push({lat: e.getLat(), lng: e.getLng()});
|
||||
});
|
||||
this.overlays.push(obj);
|
||||
});
|
||||
this.placeSearch.on("listElementClick", (e) => {
|
||||
console.log(e);
|
||||
});
|
||||
})
|
||||
},
|
||||
//map搜索
|
||||
addressChange(val) {
|
||||
@@ -464,11 +462,11 @@ export default {
|
||||
// this.forms.eventReportUnit = this.$refs.cascader.getCheckedNodes().label;
|
||||
if (this.forms.plottingStatus == 1) {
|
||||
this.polyEditor
|
||||
.getTarget()
|
||||
.getPath()
|
||||
.map((e) => {
|
||||
this.forms.points.push({ lng: e.lng, lat: e.lat });
|
||||
});
|
||||
.getTarget()
|
||||
.getPath()
|
||||
.map((e) => {
|
||||
this.forms.points.push({lng: e.lng, lat: e.lat});
|
||||
});
|
||||
} else {
|
||||
this.forms.points = [...this.path];
|
||||
}
|
||||
@@ -478,18 +476,18 @@ export default {
|
||||
this.$refs["rules"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance
|
||||
.post(
|
||||
.post(
|
||||
`/app/appgirdinfo/addOrUpdate`,
|
||||
{
|
||||
...this.forms,
|
||||
},
|
||||
null
|
||||
)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.cancel(true)
|
||||
}
|
||||
});
|
||||
)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.cancel(true)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
@@ -497,18 +495,16 @@ export default {
|
||||
});
|
||||
},
|
||||
searchDetail() {
|
||||
this.instance
|
||||
.post(`/app/appgirdinfo/queryDetailById`, null, {
|
||||
params: { id: this.params.id },
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.forms = { ...res.data };
|
||||
this.parentGirdInfo = this.forms.parentGirdInfo;
|
||||
this.forms.parentGirdName = this.parentGirdInfo.girdName;
|
||||
// this.forms.isLastLevel =this.forms.girdLevel;
|
||||
}
|
||||
});
|
||||
this.instance.post(`/app/appgirdinfo/queryDetailById`, null, {
|
||||
params: {id: this.params.id},
|
||||
}).then((res) => {
|
||||
if (res?.data) {
|
||||
this.forms = {...res.data};
|
||||
this.parentGirdInfo = this.forms.parentGirdInfo;
|
||||
this.forms.parentGirdName = this.parentGirdInfo.girdName;
|
||||
// this.forms.isLastLevel =this.forms.girdLevel;
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -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;
|
||||
@@ -563,4 +566,4 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
115
packages/2.0.5/AppMediaManage/components/Play.vue
vendored
115
packages/2.0.5/AppMediaManage/components/Play.vue
vendored
@@ -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>
|
||||
@@ -60,7 +70,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'Add',
|
||||
@@ -74,8 +84,8 @@ export default {
|
||||
let startTimePass = (rule, value, callback) => {
|
||||
if (value) {
|
||||
var myDate = new Date();
|
||||
var time = myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds()
|
||||
if (this.timeToSec(value) - this.timeToSec(time)> 0) {
|
||||
var time = myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds()
|
||||
if (this.timeToSec(value) - this.timeToSec(time) > 0) {
|
||||
callback()
|
||||
} else {
|
||||
callback(new Error('开始时间要大于当前时间'));
|
||||
@@ -86,7 +96,7 @@ export default {
|
||||
};
|
||||
let endTimePass = (rule, value, callback) => {
|
||||
if (value) {
|
||||
if (this.timeToSec(value) - this.timeToSec(this.formData.startTime)> 0) {
|
||||
if (this.timeToSec(value) - this.timeToSec(this.formData.startTime) > 0) {
|
||||
callback()
|
||||
} else {
|
||||
callback(new Error('结束时间要大于开始时间'));
|
||||
@@ -111,34 +121,34 @@ export default {
|
||||
},
|
||||
formRules: {
|
||||
mediaId: [
|
||||
{ required: true, message: '请选择播发内容', trigger: 'change' }
|
||||
{required: true, message: '请选择播发内容', trigger: 'change'}
|
||||
],
|
||||
serialNo: [
|
||||
{ required: true, message: '请选择播放设备', trigger: 'change' }
|
||||
{required: true, message: '请选择播放设备', trigger: 'change'}
|
||||
],
|
||||
messageLevel: [
|
||||
{ required: true, message: '请选择播发级别', trigger: 'change' }
|
||||
{required: true, message: '请选择播发级别', trigger: 'change'}
|
||||
],
|
||||
cyclingType: [
|
||||
{ required: true, message: '请选择定时策略', trigger: 'change' }
|
||||
{required: true, message: '请选择定时策略', trigger: 'change'}
|
||||
],
|
||||
taskType: [
|
||||
{ required: true, message: '请选择播放方式', trigger: 'change' }
|
||||
{required: true, message: '请选择播放方式', trigger: 'change'}
|
||||
],
|
||||
broadcastDay: [
|
||||
{ required: true, message: '请输入播放天数', trigger: 'change' }
|
||||
{required: true, message: '请输入播放天数', trigger: 'change'}
|
||||
],
|
||||
startDate: [
|
||||
{ required: true, message: '请选择开始日期', trigger: 'change' }
|
||||
{required: true, message: '请选择开始日期', trigger: 'change'}
|
||||
],
|
||||
startTime: [
|
||||
{ required: true, validator: startTimePass, trigger: 'change' }
|
||||
{required: true, validator: startTimePass, trigger: 'change'}
|
||||
],
|
||||
endTime: [
|
||||
{ required: true, validator: endTimePass, trigger: 'change' }
|
||||
{required: true, validator: endTimePass, trigger: 'change'}
|
||||
],
|
||||
checkList: [
|
||||
{ required: true, message: '播放天数', trigger: 'change' }
|
||||
{required: true, message: '播放天数', trigger: 'change'}
|
||||
],
|
||||
},
|
||||
mediaList: [],
|
||||
@@ -153,57 +163,40 @@ 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.formData.mediaId = this.params.id
|
||||
this.dict.load('dlbMessageUrgency', 'dlbBroadTaskType', 'dlbDyclingType').then(() => {
|
||||
this.getEquipmentList()
|
||||
this.dict.load('dlbMessageUrgency', 'dlbBroadTaskType', 'dlbDyclingType')
|
||||
Promise.all([this.getEquipmentList(), this.getMediaList()]).then(() => {
|
||||
this.formData.mediaId = this.params.id
|
||||
})
|
||||
},
|
||||
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 = {
|
||||
dictName: item.name,
|
||||
dictValue: item.id
|
||||
}
|
||||
this.mediaList.push(info)
|
||||
})
|
||||
}
|
||||
// if(this.params.id) {
|
||||
// this.getDetail()
|
||||
// }
|
||||
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
|
||||
})) || []
|
||||
}
|
||||
})
|
||||
},
|
||||
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 = {
|
||||
dictName: item.deviceName,
|
||||
dictValue: item.serialNo
|
||||
}
|
||||
this.equipmentList.push(info)
|
||||
})
|
||||
}
|
||||
this.getMediaList()
|
||||
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
|
||||
})) || []
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm() {
|
||||
this.$refs['ruleForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
if(this.formData.checkList.length) {
|
||||
if (this.formData.checkList.length) {
|
||||
this.formData.cyclingDate = this.formData.checkList.join(',')
|
||||
}
|
||||
this.formData.coverageType = '4'
|
||||
@@ -224,27 +217,27 @@ 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: []
|
||||
}
|
||||
this.formData.mediaId = String(this.formData.mediaId)
|
||||
this.formData.cyclingType = String(this.formData.cyclingType)
|
||||
if(this.formData.cyclingDate) {
|
||||
if (this.formData.cyclingDate) {
|
||||
this.formData.checkList = this.formData.cyclingDate.split(',')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
timeToSec(time) {
|
||||
var s = "";
|
||||
var s = "";
|
||||
var hour = time.split(":")[0];
|
||||
var min = time.split(":")[1];
|
||||
var second = time.split(":")[2];
|
||||
var second = time.split(":")[2];
|
||||
s = Number(hour * 3600) + Number(min * 60) + Number(second)
|
||||
return s;
|
||||
},
|
||||
},
|
||||
// 返回按钮
|
||||
cancel(isRefresh) {
|
||||
this.$emit('change', {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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(",");
|
||||
|
||||
@@ -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(',');
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user