|
@@ -6,6 +6,7 @@
|
|
|
width="60%"
|
|
|
>
|
|
|
<el-form
|
|
|
+ :rules="rules"
|
|
|
ref="formData"
|
|
|
:model="formData"
|
|
|
label-position="right"
|
|
@@ -14,132 +15,142 @@
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12"
|
|
|
><div class="grid-content bg-purple">
|
|
|
- <el-form-item label="设备名称:" :label-width="formLabelWidth" prop="device_name">
|
|
|
- <el-input
|
|
|
- v-model="formData.device_name"
|
|
|
- autocomplete="off"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="设备编号:" :label-width="formLabelWidth" prop="device_code">
|
|
|
+ <el-form-item
|
|
|
+ label="设备名称:"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ prop="deviceCode"
|
|
|
+ >
|
|
|
<el-select
|
|
|
- v-model="formData.device_code"
|
|
|
- placeholder=""
|
|
|
+ v-model="formData.deviceCode"
|
|
|
style="width: 100%"
|
|
|
+ placeholder=""
|
|
|
>
|
|
|
- <el-option label="一" value="1"></el-option>
|
|
|
- <el-option label="二" value="2"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="item in deviceData"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.deviceName"
|
|
|
+ :value="item.deviceCode"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="巡更计划:" :label-width="formLabelWidth" prop="patrol_plan_name">
|
|
|
- <el-select
|
|
|
- v-model="formData.patrol_plan_name"
|
|
|
- placeholder=""
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option label="计划一" value="1"></el-option>
|
|
|
- <el-option label="计划二" value="2"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-form-item
|
|
|
+ label="巡更计划:"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ prop="patrolPlanName"
|
|
|
+ >
|
|
|
+ <el-input v-model="formData.patrolPlanName"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开始时间:" :label-width="formLabelWidth" prop="start_time">
|
|
|
- <el-date-picker
|
|
|
+
|
|
|
+ <el-form-item
|
|
|
+ label="巡更开始时间:"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ prop="startTime"
|
|
|
+ >
|
|
|
+
|
|
|
+ <!-- <el-time-picker
|
|
|
+ is-range
|
|
|
+ v-model="formData.connectTime"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ placeholder="选择时间范围"
|
|
|
+ >
|
|
|
+ </el-time-picker> -->
|
|
|
+
|
|
|
+
|
|
|
+ <el-time-select
|
|
|
+ placeholder="开始时间"
|
|
|
+ v-model="formData.startTime"
|
|
|
style="width: 100%"
|
|
|
- v-model="formData.start_time"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- align="right"
|
|
|
- format="yyyy-MM-dd HH:mm:ss"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
- :picker-options="pickerOptions3"
|
|
|
- ></el-date-picker>
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '18:30',
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束时间:" :label-width="formLabelWidth" prop="end_time">
|
|
|
- <el-date-picker
|
|
|
+ <el-form-item
|
|
|
+ label="巡更结束时间:"
|
|
|
+ v-model="formData.endTime"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ prop="endTime"
|
|
|
+ >
|
|
|
+ <el-time-select
|
|
|
+ placeholder="结束时间"
|
|
|
+ v-model="formData.endTime"
|
|
|
style="width: 100%"
|
|
|
- v-model="formData.end_time"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- align="right"
|
|
|
- format="yyyy-MM-dd HH:mm:ss"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
- :picker-options="pickerOptions4"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '18:30',
|
|
|
+ minTime: formData.startTime,
|
|
|
+ }"
|
|
|
>
|
|
|
- </el-date-picker>
|
|
|
+ </el-time-select>
|
|
|
</el-form-item></div
|
|
|
></el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12"
|
|
|
><div class="grid-content bg-purple">
|
|
|
- <el-form-item label="巡更周期:" :label-width="formLabelWidth" prop="patrol_plan_cycle">
|
|
|
- <el-checkbox
|
|
|
- :indeterminate="isIndeterminate"
|
|
|
- v-model="patrol_plan_cycle"
|
|
|
- @change="handleCheckAllChange"
|
|
|
- >全选</el-checkbox
|
|
|
- >
|
|
|
- <div style="margin: 10px 0"></div>
|
|
|
+ <el-form-item
|
|
|
+ label="巡更周期"
|
|
|
+ prop="patrolPlanCycle"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ >
|
|
|
<el-checkbox-group
|
|
|
- v-model="checkedCities"
|
|
|
- @change="handleCheckedCitiesChange"
|
|
|
+ v-model="formData2.patrolPlanCycle"
|
|
|
+ style="width: 100%"
|
|
|
>
|
|
|
- <el-checkbox v-for="city in cities" :label="city" :key="city">{{
|
|
|
- city
|
|
|
- }}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ name="patrolPlanCycle"
|
|
|
+ v-for="item in cycles"
|
|
|
+ :label="item"
|
|
|
+ :key="item"
|
|
|
+ >{{ item }}</el-checkbox
|
|
|
+ >
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item
|
|
|
- label="开始日期:"
|
|
|
+ label="执行开始日期:"
|
|
|
:label-width="formLabelWidth"
|
|
|
style="margin-top: 0px"
|
|
|
- prop="start_date"
|
|
|
+ prop="startDate"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
|
- v-model="formData.start_date"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
+ v-model="formData.startDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择开始日期"
|
|
|
align="right"
|
|
|
- format="yyyy-MM-dd HH:mm:ss"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ format="yyyy-MM-dd"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
:picker-options="pickerOptions1"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束日期:" :label-width="formLabelWidth" prop="end_date">
|
|
|
+ <el-form-item
|
|
|
+ label="执行结束日期:"
|
|
|
+ :label-width="formLabelWidth"
|
|
|
+ prop="endDate"
|
|
|
+ >
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
|
- v-model="formData.end_date"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
+ v-model="formData.endDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择结束日期"
|
|
|
align="right"
|
|
|
- format="yyyy-MM-dd HH:mm:ss"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ format="yyyy-MM-dd"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
:picker-options="pickerOptions2"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item></div
|
|
|
></el-col>
|
|
|
</el-row>
|
|
|
-
|
|
|
- <el-table
|
|
|
- :data="tableData2"
|
|
|
- stripe
|
|
|
- border
|
|
|
- :header-cell-style="{ background: '#EBF1FF', color: '#606266' }"
|
|
|
- style="width: 100%"
|
|
|
- id="out-table"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="selection" width="40"> </el-table-column>
|
|
|
-
|
|
|
- <el-table-column prop="order" label="序号"> </el-table-column>
|
|
|
- <el-table-column prop="cameraName" label="摄像头名称">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="company" label="摄像头所属单位">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="cameraPosition" label="摄像头位置">
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button @click="handleClose" style="background: #f6f6f6"
|
|
@@ -152,100 +163,102 @@
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
<script>
|
|
|
-const cityOptions = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
|
|
|
+import { add } from "@/api/partol";
|
|
|
+
|
|
|
+//import api from "@/api/partol";
|
|
|
+
|
|
|
+const cycleOptions = [
|
|
|
+ "星期一",
|
|
|
+ "星期二",
|
|
|
+ "星期三",
|
|
|
+ "星期四",
|
|
|
+ "星期五",
|
|
|
+ "星期六",
|
|
|
+ "星期日",
|
|
|
+];
|
|
|
+
|
|
|
+const deviceData = [
|
|
|
+ {
|
|
|
+ deviceCode: "4689975698772669995465611",
|
|
|
+ deviceName: "设备1",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deviceCode: "122",
|
|
|
+ deviceName: "设备2",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deviceCode: "123",
|
|
|
+ deviceName: "设备3",
|
|
|
+ },
|
|
|
+];
|
|
|
|
|
|
export default {
|
|
|
name: "edit",
|
|
|
props: {
|
|
|
- title: {//弹框的标题
|
|
|
+ title: {
|
|
|
+ //弹框的标题
|
|
|
type: String,
|
|
|
default: "",
|
|
|
},
|
|
|
- visible: {//弹框窗口,true弹出
|
|
|
+ visible: {
|
|
|
+ //弹框窗口,true弹出
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
|
},
|
|
|
- remoteClose:Function ,//用于关闭窗口
|
|
|
- formData:{ //提交表单数据
|
|
|
- type:Object,
|
|
|
- default:{}
|
|
|
-
|
|
|
- }
|
|
|
+ remoteClose: Function, //用于关闭窗口
|
|
|
+ formData: {
|
|
|
+ //提交表单数据
|
|
|
+ type: Object,
|
|
|
+ default: {},
|
|
|
+ },
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- tableData2: [
|
|
|
- {
|
|
|
- order: "1",
|
|
|
- cameraName: "摄像头A",
|
|
|
- company: "上海永天科技",
|
|
|
- cameraPosition: "三楼大厅西南角",
|
|
|
- },
|
|
|
- {
|
|
|
- order: "2",
|
|
|
- cameraName: "摄像头B",
|
|
|
- company: "虹泾总部",
|
|
|
- cameraPosition: "一楼大厅大门处",
|
|
|
- },
|
|
|
- ],
|
|
|
- multipleSelection: [],
|
|
|
+ formData2: {
|
|
|
+ // patrolPlanCycle: ["星期五"],
|
|
|
|
|
|
- options2: [
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "角色1",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "2",
|
|
|
- label: "角色2",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "3",
|
|
|
- label: "角色3",
|
|
|
- },
|
|
|
- ],
|
|
|
- value2: "",
|
|
|
+ patrolPlanCycle:this.formData.patrolPlanCycle ? this.formData.patrolPlanCycle : []
|
|
|
+ },
|
|
|
|
|
|
- options3: [
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "单位名称1",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "2",
|
|
|
- label: "单位名称2",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "3",
|
|
|
- label: "单位名称3",
|
|
|
- },
|
|
|
- ],
|
|
|
- value3: "",
|
|
|
+ deviceData,
|
|
|
+ //校验
|
|
|
+ rules: {
|
|
|
+ deviceName: [
|
|
|
+ { required: true, message: "请选择设备名称", trigger: "change" },
|
|
|
+ ],
|
|
|
+ patrolPlanName: [
|
|
|
+ { required: true, message: "请输入巡更计划名称", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ // patrolPlanCycle: [
|
|
|
+ // { required: true, message: "请选择巡更周期", trigger: "change" },
|
|
|
+ // ],
|
|
|
+ // startTime: [
|
|
|
+ // { required: true, message: "请选择开始时间", trigger: "change" },
|
|
|
+ // ],
|
|
|
+ // endTime: [
|
|
|
+ // { required: true, message: "请输入结束时间", trigger: "change" },
|
|
|
+ // ],
|
|
|
+ startDate: [
|
|
|
+ { required: true, message: "请选择开始日期", trigger: "change" },
|
|
|
+ ],
|
|
|
+ endDate: [
|
|
|
+ { required: true, message: "请输入结束日期", trigger: "change" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
|
|
|
- input: "",
|
|
|
+ multipleSelection: [],
|
|
|
|
|
|
-
|
|
|
formLabelWidth: "120px",
|
|
|
|
|
|
- // 全选
|
|
|
- checkAll: false,
|
|
|
- checkedCities: ["周一", "周五"],
|
|
|
- cities: cityOptions,
|
|
|
- isIndeterminate: true,
|
|
|
+ cycles: cycleOptions,
|
|
|
|
|
|
- //日期时间选择器
|
|
|
- formData: {
|
|
|
- start_date: "",
|
|
|
- end_date: "",
|
|
|
- start_time: "",
|
|
|
- end_time: "",
|
|
|
- },
|
|
|
+ // 时间插件
|
|
|
pickerOptions1: {
|
|
|
disabledDate: (time) => {
|
|
|
- if (this.formData.end_date) {
|
|
|
+ if (this.formData.endDate) {
|
|
|
return (
|
|
|
time.getTime() < Date.now() - 8.64e7 ||
|
|
|
- time.getTime() > new Date(this.formData.end_date).getTime()
|
|
|
+ time.getTime() > new Date(this.formData.endDate).getTime()
|
|
|
);
|
|
|
} else {
|
|
|
return time.getTime() < Date.now() - 8.64e7;
|
|
@@ -254,10 +267,10 @@ export default {
|
|
|
},
|
|
|
pickerOptions2: {
|
|
|
disabledDate: (time) => {
|
|
|
- if (this.formData.start_date) {
|
|
|
+ if (this.formData.startDate) {
|
|
|
return (
|
|
|
time.getTime() < Date.now() - 8.64e7 ||
|
|
|
- time.getTime() < new Date(this.formData.start_date).getTime()
|
|
|
+ time.getTime() < new Date(this.formData.startDate).getTime()
|
|
|
);
|
|
|
} else {
|
|
|
return time.getTime() < Date.now() - 8.64e7;
|
|
@@ -267,10 +280,10 @@ export default {
|
|
|
|
|
|
pickerOptions3: {
|
|
|
disabledDate: (time) => {
|
|
|
- if (this.formData.end_date) {
|
|
|
+ if (this.formData.endDate) {
|
|
|
return (
|
|
|
time.getTime() < Date.now() - 8.64e7 ||
|
|
|
- time.getTime() > new Date(this.formData.end_date).getTime()
|
|
|
+ time.getTime() > new Date(this.formData.endDate).getTime()
|
|
|
);
|
|
|
} else {
|
|
|
return time.getTime() < Date.now() - 8.64e7;
|
|
@@ -279,10 +292,10 @@ export default {
|
|
|
},
|
|
|
pickerOptions4: {
|
|
|
disabledDate: (time) => {
|
|
|
- if (this.formData.start_date) {
|
|
|
+ if (this.formData.startDate) {
|
|
|
return (
|
|
|
time.getTime() < Date.now() - 8.64e7 ||
|
|
|
- time.getTime() < new Date(this.formData.start_date).getTime()
|
|
|
+ time.getTime() < new Date(this.formData.startDate).getTime()
|
|
|
);
|
|
|
} else {
|
|
|
return time.getTime() < Date.now() - 8.64e7;
|
|
@@ -292,31 +305,66 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- // 全选
|
|
|
- handleCheckAllChange(val) {
|
|
|
- this.checkedCities = val ? cityOptions : [];
|
|
|
- this.isIndeterminate = false;
|
|
|
- },
|
|
|
- handleCheckedCitiesChange(value) {
|
|
|
- let checkedCount = value.length;
|
|
|
- this.checkAll = checkedCount === this.cities.length;
|
|
|
- this.isIndeterminate =
|
|
|
- checkedCount > 0 && checkedCount < this.cities.length;
|
|
|
- },
|
|
|
- handleSelectionChange(val) {
|
|
|
- this.multipleSelection = val;
|
|
|
+ renderTime(date) {
|
|
|
+ var dateee = new Date(date).toJSON();
|
|
|
+ return new Date(+new Date(dateee) + 8 * 3600 * 1000)
|
|
|
+ .toISOString()
|
|
|
+ .replace(/T/g, " ")
|
|
|
+ .replace(/\.[\d]{3}Z/, "");
|
|
|
},
|
|
|
+
|
|
|
//关闭窗口
|
|
|
handleClose() {
|
|
|
- //将表单清空
|
|
|
- this.$refs['formData'].resetFields()
|
|
|
- //注意不可以通过this.visiable=false来关闭,因为他是父组件的属性
|
|
|
- this.remoteClose()
|
|
|
+ //将表单清空
|
|
|
+ this.$refs["formData"].resetFields();
|
|
|
+ //注意不可以通过this.visiable=false来关闭,因为他是父组件的属性
|
|
|
+ this.remoteClose();
|
|
|
},
|
|
|
|
|
|
//提交表单数据
|
|
|
submitForm(formName) {
|
|
|
- this.$emit("update:visible", false);
|
|
|
+ this.formData.patrolPlanCycle = this.formData2.patrolPlanCycle;
|
|
|
+ // let startTime = this.renderTime(this.formData.connectTime[0]);
|
|
|
+ // let endTime = this.renderTime(this.formData.connectTime[1]);
|
|
|
+
|
|
|
+ // this.formData.startTime = startTime.split(" ")[1];
|
|
|
+ // this.formData.endTime = endTime.split(" ")[1];
|
|
|
+ // delete this.formData.connectTime;
|
|
|
+
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ //检验通过,提交表单数据
|
|
|
+
|
|
|
+ console.log(this.formData);
|
|
|
+ deviceData.forEach((item, index) => {
|
|
|
+ if (item.deviceCode == this.formData.deviceCode) {
|
|
|
+ this.formData.deviceName = item.deviceName;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ this.formData.patrolPlanCycle = JSON.stringify(
|
|
|
+ this.formData.patrolPlanCycle
|
|
|
+ );
|
|
|
+
|
|
|
+ add(this.formData).then((response) => {
|
|
|
+ if (response.success) {
|
|
|
+ this.$message({
|
|
|
+ message: "保存成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.handleClose();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: response.Msg,
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ console.log("error submit!!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
},
|
|
|
};
|