Browse Source

Merge branch 'feature/dev_point_manage' into dev

test
wanggongfeng 3 years ago
parent
commit
2de4ec9c4e
  1. 131
      src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue
  2. 32
      src/views/modules/plugins/point/icpointnucleicmonitoring.vue
  3. 265
      src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue
  4. 55
      src/views/modules/plugins/point/icpointvaccinesinoculation.vue

131
src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue

@ -1,5 +1,5 @@
<template>
<div style="height:600px;overflow:auto;padding: 20px;" class="form-class">
<div style="height: 600px; overflow: auto; padding: 20px" class="form-class">
<el-form
:model="dataForm"
:rules="dataRule"
@ -8,7 +8,12 @@
label-width="120px"
>
<el-form-item label="所属组织名称" prop="orgId">
<el-select v-model="dataForm.orgId" placeholder="所属组织名称" @change="orgChangeHandle" :disabled='dialogTitle == "查看"'>
<el-select
v-model="dataForm.orgId"
placeholder="所属组织名称"
@change="orgChangeHandle"
:disabled="dialogTitle == '查看'"
>
<el-option
ref="org"
v-for="item in organizationList"
@ -23,7 +28,7 @@
<el-input
v-model="dataForm.name"
placeholder="核酸检测点名称"
:disabled='dialogTitle == "查看"'
:disabled="dialogTitle == '查看'"
></el-input>
</el-form-item>
<el-form-item label="服务时间" prop="serveTime">
@ -32,7 +37,7 @@
type="textarea"
:rows="2"
placeholder="请输入服务时间,如:每日开放 上午:8:00-11:30 ;下午:13:00-17:00"
:disabled='dialogTitle == "查看"'
:disabled="dialogTitle == '查看'"
></el-input>
</el-form-item>
<el-form-item label="咨询电话" prop="mobile">
@ -40,23 +45,29 @@
v-model="dataForm.mobile"
placeholder="咨询电话"
:change="check_num()"
:disabled='dialogTitle == "查看"'
:disabled="dialogTitle == '查看'"
></el-input>
</el-form-item>
<el-form-item label="检测点地址" prop="address">
<el-input
v-model="dataForm.address"
placeholder="例:青岛市时代国际广场"
style="width:65%;"
></el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
</el-form-item>
<el-form-item label="位置坐标" prop="longitude" style="display: block" class="position_label">
<el-form-item
label="位置坐标"
prop="longitude"
style="display: block"
class="position_label"
>
<div>
<!-- <el-input
class="item_width_4"
@ -87,7 +98,7 @@
placeholder="请输入经度"
v-model="dataForm.longitude"
disabled
style="width: 200px;margin-left: 20px;"
style="width: 200px; margin-left: 20px"
>
</el-input>
<span style="margin-left: 20px">纬度</span>
@ -97,7 +108,7 @@
placeholder="请输入纬度"
v-model="dataForm.latitude"
disabled
style="width: 200px;margin-left: 20px;"
style="width: 200px; margin-left: 20px"
>
</el-input>
</div>
@ -106,9 +117,12 @@
</el-form>
<div class="submit">
<el-button @click="closeSubmit">{{ $t("cancel") }}</el-button>
<el-button v-if='dialogTitle != "查看"' type="primary" @click="dataFormSubmitHandle()">{{
$t("confirm")
}}</el-button>
<el-button
v-if="dialogTitle != '查看'"
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t("confirm") }}</el-button
>
</div>
</div>
</template>
@ -134,8 +148,8 @@ export default {
serveTime: "",
mobile: "",
address: "",
longitude: "120.38945519",
latitude: "36.0722275",
longitude: '',
latitude: '',
},
keyWords: null,
organizationList: [],
@ -213,29 +227,34 @@ export default {
mounted() {
this.getFormInfo();
},
props:{
dialogTitle:{
type:String,
default:''
}
props: {
dialogTitle: {
type: String,
default: "",
},
},
methods: {
closeSubmit(){
this.$emit('closeDialog')
closeSubmit() {
this.$emit("closeDialog");
},
orgChangeHandle(val){
for(var i = 0 ; i < this.organizationList.length ; i++){
if( this.organizationList[i].orgId === val){
this.dataForm.orgName=this.organizationList[i].orgName
return false
}
orgChangeHandle(val) {
for (var i = 0; i < this.organizationList.length; i++) {
if (this.organizationList[i].orgId === val) {
this.dataForm.orgName = this.organizationList[i].orgName;
return false;
}
}
},
// init
initMap() {
let { latitude, longitude } = this.dataForm;
//
let _this = this
var center = new window.TMap.LatLng(_this.dataForm.latitude, _this.dataForm.longitude);
if (!latitude || latitude == "" || latitude == "0") {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
console.log(latitude,longitude);
var center = new window.TMap.LatLng(latitude, longitude);
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("map_add"), {
center: center, //
@ -250,12 +269,14 @@ export default {
geometries: [],
});
infoWindowList = Array(10);
geocoder = new TMap.service.Geocoder(); //
//
map.on("panend", () => {
this.handleMoveCenter();
});
this.handleMoveCenter();
// this.handleMoveCenter()
this.convert();
},
handleMoveCenter() {
@ -278,7 +299,6 @@ export default {
//
search
.searchRectangle({
// keyword: this.keyWords,
keyword: this.dataForm.address,
bounds: map.getBounds(),
})
@ -288,6 +308,7 @@ export default {
const {
location: { lat, lng },
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
@ -321,8 +342,14 @@ export default {
geocoder
.getAddress({ location: location }) //
.then((result) => {
this.dataForm.address = result.result.address;
this.dataForm.address =
this.dataForm.address !== "" &&
this.dataForm.address !== null &&
(this.dataForm.longitude === "" || this.dataForm.longitude === null)
? this.dataForm.address
: result.result.address;
//
console.log(this.dataForm.address);
});
},
@ -344,7 +371,7 @@ export default {
this.$http
.post(`/gov/org/agency/communityListByCustomerId`)
.then(({ data: res }) => {
if (res.code !== 0) {
if (tMapres.code !== 0) {
return this.$message.error(res.msg);
}
this.organizationList = res.data;
@ -356,9 +383,8 @@ export default {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
}else{
this.dataForm.longitude = "120.38945519"
this.dataForm.latitude = "36.0722275"
} else {
this.initMap();
}
});
@ -376,11 +402,6 @@ export default {
...this.dataForm,
...res.data,
};
if(!this.dataForm.longitude && !this.dataForm.latitude){
this.dataForm.longitude = "120.38945519"
this.dataForm.latitude = "36.0722275"
}
this.initMap();
})
.catch(() => {});
@ -398,7 +419,7 @@ export default {
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.internalMsg);
return this.$message.error(res.internalMsg ? res.internalMsg : res.msg);
}
this.$message({
message: this.$t("prompt.success"),
@ -406,7 +427,7 @@ export default {
duration: 500,
onClose: () => {
this.$emit("refreshDataList");
this.closeSubmit()
this.closeSubmit();
},
});
})
@ -427,17 +448,17 @@ export default {
};
</script>
<style scoped>
.position_label >>> .el-form-item__label::before{
color:#fff!important;
.position_label >>> .el-form-item__label::before {
color: #fff !important;
}
.submit{
.submit {
text-align: center;
margin: auto;
}
.form-class .el-input{
.form-class .el-input {
width: 75%;
}
.form-class .el-textarea{
width: 75%!important;
.form-class .el-textarea {
width: 75% !important;
}
</style>

32
src/views/modules/plugins/point/icpointnucleicmonitoring.vue

@ -11,7 +11,7 @@
ref="org"
v-model="orgIds"
:options="organizationList"
:props="{ checkStrictly: false, multiple: false, emitPath: true }"
:props="{ checkStrictly: true, multiple: false, emitPath: true }"
style="width: 200px"
clearable
@change="orgChangeHandle"
@ -112,13 +112,12 @@
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%"
>
<el-table-column
type="selection"
style="width: 100%; height: 564px"
><el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
@ -181,16 +180,13 @@
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
<el-pagination @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
:page-sizes="[20, 50, 100, 200]"
:page-size="limit"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
<!-- 弹窗, 新增 / 修改 -->
<el-dialog
@ -499,6 +495,8 @@ export default {
display: flex;
align-items: center;
margin-bottom: 20px;
margin-top: 10px;
margin-left: 10px;
}
.div_left_table {
margin-top: 10px;
@ -507,7 +505,7 @@ export default {
border-radius: 5px;
padding: 10px;
}
.dialog-h >>> .el-dialog__body{
.dialog-h >>> .el-dialog__body {
overflow: scroll;
}
</style>

265
src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue

@ -1,5 +1,5 @@
<template>
<div style="height:600px;overflow:auto;padding: 20px;" class="form-class">
<div style="height: 600px; overflow: auto; padding: 20px" class="form-class">
<el-form
:model="dataForm"
:rules="dataRule"
@ -22,81 +22,93 @@
<el-input
v-model="dataForm.name"
placeholder="疫苗接种点名称"
:disabled='dialogTitle == "查看"'
:disabled="dialogTitle == '查看'"
></el-input>
</el-form-item>
<el-form-item label="接种日期" prop="inoculationDate">
<!-- <el-input
v-model="dataForm.inoculationDate"
placeholder="接种日期"
></el-input> -->
<el-date-picker
v-model="dataForm.inoculationDate"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
:disabled='dialogTitle == "查看"'
>
</el-date-picker>
</el-form-item>
<el-form-item label="上午接种时间" prop="morningTime" class="time-class">
<el-time-picker
is-range
v-model="morningTime"
format="HH:mm"
value-format="HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围"
@change="startTimeChange"
:disabled='dialogTitle == "查看"'
:clearable="false"
:editable="false"
>
</el-time-picker>
</el-form-item>
<el-form-item label="下午接种时间" prop="afterTime" class="time-class">
<el-time-picker
is-range
v-model="afterTime"
format="HH:mm"
value-format="HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围"
@change="endTimeChange"
:disabled='dialogTitle == "查看"'
:clearable="false"
:editable="false"
>
</el-time-picker>
<el-form-item label="接种时间" :class="dataForm.noAvailableVaccines != '2'?'':'time-class'">
<div class="data-block">
<div style="width: 30%">
<el-date-picker
v-model="dataForm.inoculationDate"
value-format="yyyy-MM-dd"
type="date"
:clearable="false"
placeholder="选择日期"
:disabled="dialogTitle == '查看'"
>
</el-date-picker>
</div>
<div class="time-block">
<div>
<span>上午</span>
<el-time-picker
is-range
v-model="morningTime"
format="HH:mm"
value-format="HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围"
@change="startTimeChange"
:disabled="dialogTitle == '查看'"
:clearable="false"
:editable="false"
style="width: 56%"
>
</el-time-picker>
</div>
<div>
<span>下午</span>
<el-time-picker
is-range
v-model="afterTime"
format="HH:mm"
value-format="HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围"
@change="endTimeChange"
:disabled="dialogTitle == '查看'"
:clearable="false"
:editable="false"
style="width: 56%"
>
</el-time-picker>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="" prop="noAvailableVaccines">
<el-checkbox
v-model="dataForm.noAvailableVaccines"
true-label="1"
false-label="2"
:disabled='dialogTitle == "查看"'
:disabled="dialogTitle == '查看'"
>暂无疫苗</el-checkbox
>
</el-form-item>
<el-form-item label="咨询电话" prop="mobile">
<el-input v-model="dataForm.mobile" :disabled='dialogTitle == "查看"' placeholder="咨询电话"></el-input>
<el-input
v-model="dataForm.mobile"
:disabled="dialogTitle == '查看'"
placeholder="咨询电话"
></el-input>
</el-form-item>
<el-form-item label="接种点地址" prop="address">
<el-input
v-model="dataForm.address"
placeholder="例:青岛市时代国际广场"
style="width: 65%"
></el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
</el-form-item>
<el-form-item
label="位置坐标"
@ -122,7 +134,7 @@
>查询</el-button
> -->
<div
id="map_app"
id="map_add"
class="div_map"
style="width: 500px; height: 300px; margin-top: 20px"
></div>
@ -153,9 +165,12 @@
</el-form>
<div class="submit">
<el-button @click="closeSubmit">{{ $t("cancel") }}</el-button>
<el-button v-if='dialogTitle != "查看"' type="primary" @click="dataFormSubmitHandle()">{{
$t("confirm")
}}</el-button>
<el-button
v-if="dialogTitle != '查看'"
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t("confirm") }}</el-button
>
</div>
</div>
</template>
@ -187,8 +202,8 @@ export default {
noAvailableVaccines: "1",
mobile: "",
address: "",
longitude: "120.38945519",
latitude: "36.0722275",
longitude: "",
latitude: "",
},
keyWords: null,
// organizationList: [],
@ -213,13 +228,6 @@ export default {
trigger: "blur",
},
],
inoculationDate: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
noAvailableVaccines: [
{
required: true,
@ -258,11 +266,11 @@ export default {
};
},
},
props:{
dialogTitle:{
type:String,
default:''
}
props: {
dialogTitle: {
type: String,
default: "",
},
},
methods: {
startTimeChange() {
@ -279,14 +287,14 @@ export default {
return false;
}
if (hour_0 == 12) {
if(minute_0 > 0 || second_0 > 0){
if (minute_0 > 0 || second_0 > 0) {
this.$message.error("请选择00:00-12:00时间段的时间");
this.morningTime = null;
return false;
}
}
if (hour_1 == 12) {
if(minute_1 > 0 || second_1 > 0){
if (minute_1 > 0 || second_1 > 0) {
this.$message.error("请选择00:00-12:00时间段的时间");
this.morningTime = null;
return false;
@ -310,14 +318,14 @@ export default {
return false;
}
if (hour_0 == 12) {
if(minute_0 == 0 && second_0 == 0){
if (minute_0 == 0 && second_0 == 0) {
this.$message.error("请选择12:01-23:59时间段的时间");
this.afterTime = null;
return false;
}
}
if (hour_1 == 12) {
if(minute_1 == 0 && second_1 == 0){
if (minute_1 == 0 && second_1 == 0) {
this.$message.error("请选择12:01-23:59时间段的时间");
this.afterTime = null;
return false;
@ -332,14 +340,16 @@ export default {
},
// init
initMap() {
let { latitude, longitude } = this.dataForm;
//
let _this = this;
var center = new window.TMap.LatLng(
_this.dataForm.latitude,
_this.dataForm.longitude
);
if (!latitude || latitude == "" || latitude == "0") {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
console.log(latitude, longitude);
var center = new window.TMap.LatLng(latitude, longitude);
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("map_app"), {
map = new window.TMap.Map(document.getElementById("map_add"), {
center: center, //
zoom: 17.2, //
pitch: 43.5, //
@ -352,12 +362,14 @@ export default {
geometries: [],
});
infoWindowList = Array(10);
geocoder = new TMap.service.Geocoder(); //
//
map.on("panend", () => {
this.handleMoveCenter();
});
this.handleMoveCenter();
// this.handleMoveCenter()
this.convert();
},
handleMoveCenter() {
@ -380,7 +392,6 @@ export default {
//
search
.searchRectangle({
// keyword: this.keyWords,
keyword: this.dataForm.address,
bounds: map.getBounds(),
})
@ -390,6 +401,7 @@ export default {
const {
location: { lat, lng },
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
@ -423,8 +435,14 @@ export default {
geocoder
.getAddress({ location: location }) //
.then((result) => {
this.dataForm.address = result.result.address;
this.dataForm.address =
this.dataForm.address !== "" &&
this.dataForm.address !== null &&
(this.dataForm.longitude === "" || this.dataForm.longitude === null)
? this.dataForm.address
: result.result.address;
//
console.log(this.dataForm.address);
});
},
@ -460,8 +478,6 @@ export default {
if (this.dataForm.id) {
this.getInfo();
} else {
this.dataForm.longitude = "120.38945519";
this.dataForm.latitude = "36.0722275";
this.initMap();
}
});
@ -478,11 +494,13 @@ export default {
...this.dataForm,
...res.data,
};
this.morningTime = [res.data.moStartTime,res.data.moEndTime]
this.afterTime = [res.data.afStartTime,res.data.afEndTime]
if(!this.dataForm.longitude && !this.dataForm.latitude){
this.dataForm.longitude = "120.38945519"
this.dataForm.latitude = "36.0722275"
if (res.data.moStartTime !== "" && res.data.afStartTime !== "") {
this.morningTime = [res.data.moStartTime, res.data.moEndTime];
this.afterTime = [res.data.afStartTime, res.data.afEndTime];
}
if (!this.dataForm.longitude && !this.dataForm.latitude) {
this.dataForm.longitude = "120.38945519";
this.dataForm.latitude = "36.0722275";
}
this.initMap();
})
@ -495,13 +513,24 @@ export default {
if (!valid) {
return false;
}
if(this.morningTime === null){
this.$message.error('请填写上午接种时间');
return false
if(!this.dataForm.inoculationDate &&
this.dataForm.noAvailableVaccines === "2"){
this.$message.error("请选择接种日期");
return false;
}
if(this.afterTime === null ){
this.$message.error('请填写下午接种时间');
return false
if (
this.morningTime === null &&
this.dataForm.noAvailableVaccines === "2"
) {
this.$message.error("请填写上午接种时间");
return false;
}
if (
this.afterTime === null &&
this.dataForm.noAvailableVaccines === "2"
) {
this.$message.error("请填写下午接种时间");
return false;
}
this.$http[!this.dataForm.id ? "post" : "put"](
"/epmetuser/icPointVaccinesInoculation/",
@ -509,7 +538,9 @@ export default {
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.internalMsg);
return this.$message.error(
res.internalMsg ? res.internalMsg : res.msg
);
}
this.$message({
message: this.$t("prompt.success"),
@ -532,6 +563,15 @@ export default {
};
</script>
<style scoped>
.data-block {
display: flex;
}
.time-block>div{
margin-bottom: 10px;
}
.time-block span {
padding: 10px;
}
.position_label >>> .el-form-item__label::before {
color: #fff !important;
}
@ -539,21 +579,20 @@ export default {
text-align: center;
margin: auto;
}
.form-class .el-input{
.form-class .el-input {
width: 75%;
}
.form-class .el-textarea{
width: 75%!important;
.form-class .el-textarea {
width: 75% !important;
}
.time-class{
.time-class {
position: relative;
}
.time-class::before{
content: '*';
color: #F56C6C;
position: absolute;
left:16px;
top: 10px;
.time-class::before {
content: "*";
color: #f56c6c;
position: absolute;
left: 42px;
top: 10px;
}
</style>

55
src/views/modules/plugins/point/icpointvaccinesinoculation.vue

@ -102,13 +102,13 @@
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%"
style="width: 100%; height: 564px"
>
<el-table-column
type="selection"
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<!--<el-table-column-->
@ -130,29 +130,23 @@
align="center"
></el-table-column>
<el-table-column
prop="moStartTime"
label="接种上午开始时间"
label="接种上午时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="moEndTime"
label="接种上午结束时间"
header-align="center"
align="center"
></el-table-column>
>
<template slot-scope="scope">
<div>{{ scope.row.moStartTime }} - {{ scope.row.moEndTime }}</div>
</template>
</el-table-column>
<el-table-column
prop="afStartTime"
label="接种下午开始时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="afEndTime"
label="接种下午结束时间"
header-align="center"
align="center"
></el-table-column>
>
<template slot-scope="scope">
<div>{{ scope.row.afStartTime }} - {{ scope.row.afEndTime }}</div>
</template>
</el-table-column>
<el-table-column
prop="noAvailableVaccines"
label="暂无疫苗"
@ -201,16 +195,13 @@
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
<el-pagination @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
:page-sizes="[20, 50, 100, 200]"
:page-size="limit"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
<!-- 弹窗, 新增 / 修改 -->
<el-dialog
@ -483,6 +474,8 @@ export default {
display: flex;
align-items: center;
margin-bottom: 20px;
margin-top: 10px;
margin-left: 10px;
}
.div_left_table {
margin-top: 10px;
@ -491,7 +484,7 @@ export default {
border-radius: 5px;
padding: 10px;
}
.dialog-h{
.dialog-h {
overflow: scroll;
}
</style>

Loading…
Cancel
Save