master
xy 1 year ago
parent ac07f0dd31
commit ca84dcf442

@ -63,6 +63,7 @@
size="small"
:data="equipments"
:columns="table"
@on-row-click="row => equipmentSelect(pickedEquipments, row, false)"
@on-select="(selection, row) => equipmentSelect(selection, row, false)"
@on-select-cancel="(selection, row) => equipmentSelect(selection, row, false)"
@on-select-all="(selection) => equipmentSelect(selection, {}, true)"
@ -90,44 +91,55 @@
</div>
</div>
<el-form v-for="(item, index) in form"
size="mini"
:model="item"
label-position="top"
:key="index">
<div v-for="(item, index) in form" :key="index">
<Divider />
<div>
<p>{{ item._name }}</p>
<h3>{{ ++index }}.{{ item._name }}</h3>
<Button size="small" type="primary" @click="item._isShow = !item._isShow">{{ item._isShow ? '收起' : '展开' }}</Button>
</div>
<el-form-item label="闸门数量">
<el-input-number v-model="item.kaiqishuliang" :precision="0" :max="Number(item._bengzhashuliang)" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="水泵数量">
<el-input-number v-model="item.kaiqishuliang1" :precision="0" :max="Number(item._shuibengtaishu)" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="调令类型">
<el-radio-group v-model="item.diaolingleixing">
<el-radio :label="i.value" v-for="i in diaolingleixing">{{ i.key }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="开启时间">
<el-time-select v-model="item.start_time" :picker-options="{ start: '00:00', step: '00:05', end: '23:59' }"></el-time-select>
</el-form-item>
<el-form-item label="持续时间">
<el-input-number :precision="1" :min="0" :step="0.5"></el-input-number>
</el-form-item>
<el-form-item label="结束时间">
<el-time-select v-model="item.end_time" :picker-options="{ start: '00:00', step: '00:05', end: '23:59', minTime: item.start_time }"></el-time-select>
</el-form-item>
<el-form-item label="调令内容">
<el-input v-model="item.content" type="textarea" :autosize="{ minRows: 2 }"></el-input>
</el-form-item>
<el-form-item label="调令等级">
<el-radio-group v-model="item.level">
<el-radio :label="i.value" v-for="i in [{ label: '一般', value: 1 },{ label: '紧急', value: 2 }]">{{ i.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<transition name="fade">
<el-form size="mini"
v-show="item._isShow"
:model="item"
label-position="top">
<el-form-item label="闸门数量">
<el-input-number v-model="item.kaiqishuliang" :precision="0" :max="Number(item._bengzhashuliang)" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="水泵数量">
<el-input-number v-model="item.kaiqishuliang1" :precision="0" :max="Number(item._shuibengtaishu)" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="调令类型">
<el-radio-group v-model="item.diaolingleixing">
<el-radio :label="i.value" v-for="i in diaolingleixing">{{ i.key }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="开启时间">
<el-time-select v-model="item.start_time"
:picker-options="{ start: '00:00', step: '00:05', end: '23:59' }"
@change="startTimePick(item)"></el-time-select>
</el-form-item>
<el-form-item label="持续时间">
<el-input-number v-model="item._last"
:precision="1"
:min="0"
:step="0.5"
@change="lastTimePick(item)"></el-input-number>
</el-form-item>
<el-form-item label="结束时间">
<el-time-select v-model="item.end_time"
:picker-options="{ start: '00:00', step: '00:05', end: '23:59', minTime: item.start_time }"></el-time-select>
</el-form-item>
<el-form-item label="调令内容">
<el-input v-model="item.content" type="textarea" :autosize="{ minRows: 2 }"></el-input>
</el-form-item>
<el-form-item label="调令等级">
<el-radio-group v-model="item.level">
<el-radio :label="i.value" v-for="i in [{ label: '一般', value: 1 },{ label: '紧急', value: 2 }]">{{ i.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</transition>
</div>
</Card>
<div class="btns">
@ -153,7 +165,9 @@
import Calendar from "v-calendar/src/components/Calendar.vue";
import DatePicker from "v-calendar/src/components/DatePicker.vue";
import { show } from "@/api/system/customFormField";
import { index } from "@/api/system/baseForm";
import {index, save} from "@/api/system/baseForm";
import {uuid} from "@/utils";
import {checkTransfer} from "@/api/other";
export default {
components: {
@ -225,6 +239,47 @@ export default {
}
},
methods: {
startTimePick (row) {
if (row._last) {
const [hour, min] = row.start_time
.split(":")
.map((i) => Number(i));
let addTime = {
hour: Math.floor(row._last),
min: (row._last % 1) * 60,
};
let resTime = {
hour:
hour + addTime.hour + (min + addTime.min >= 60 ? 1 : 0),
min: (min + addTime.min) % 60,
};
row.end_time = `${resTime.hour
.toString()
.padStart(2, "0")}:${resTime.min
.toString()
.padStart(2, "0")}`;
}
},
lastTimePick (row) {
const [hour, min] = row.start_time
.split(":")
.map((i) => Number(i));
let addTime = {
hour: Math.floor(row._last),
min: (row._last % 1) * 60,
};
let resTime = {
hour:
hour + addTime.hour + (min + addTime.min >= 60 ? 1 : 0),
min: (min + addTime.min) % 60,
};
row.end_time = `${resTime.hour
.toString()
.padStart(2, "0")}:${resTime.min
.toString()
.padStart(2, "0")}`;
},
handleAreaCheckAll (e) {
this.select.filter[2].value = e ? this.areas.map(i => i.value).toString() : "";
this.isIndeterminateArea = false;
@ -366,6 +421,7 @@ export default {
this.form = this.pickedEquipments.map(i => ({
equipment_id: i.id,
start_time: "",
_last: 0,
end_time: "",
content: "",
level: 1,
@ -375,10 +431,89 @@ export default {
_shuibengtaishu: i.shuibengtaishu,
_name: i.name,
leibie: "",
_isShow: true,
}))
this.step++;
}
},
async submit() {
const submitData = this.form.filter(
(i) => i.start_time || i.end_time || i.content
);
let isNeed = 0;
try {
await this.$confirm("是否需要走流程?","提示",{
confirmButtonText: "需要",
cancelButtonText: "不需要",
type: "info",
closeOnClickModal: false,
distinguishCancelAndClose: true
})
isNeed = 1;
} catch (e) {
if (e === 'cancel') {
isNeed = 0;
} else {
return
}
}
const uid = uuid();
let promiseAll = [];
let loadingInstance = this.$loading({
lock: true,
background: "rgba(0,0,0,0.4)",
text: "正在加载中...",
});
for (let j = 0;j < submitData.length;j++) {
let i = submitData[j]
delete i["equipment_id-span"];
delete i["_index"];
delete i["_rowKey"];
i.start_time = `${this.date} ${i.start_time}`;
i.end_time = i.end_time ? `${this.date} ${i.end_time}` : '';
i.no = uid;
i.status = 1;
try {
const res = await checkTransfer({
start_time: i.start_time,
end_time: i.end_time,
equipment_id: i.equipment_id,
diaolingleixing: i.diaolingleixing
})
promiseAll.push(
save(
{
table_name: "transfers",
...i,
shifouzouliucheng: isNeed,
is_adjust: -1
},
false
)
);
} catch (e) {
}
}
Promise.all(promiseAll)
.then((res) => {
loadingInstance.close();
this.$message({
type: "success",
message: `成功创建${res.length}条调令`,
});
})
.catch((_) => {
loadingInstance.close();
});
},
},
computed: {},
watch: {
@ -459,6 +594,11 @@ export default {
z-index: 999999999;
}
}
h3 {
text-align: center;
color: $primaryColor;
line-height: 2;
}
@media (max-width: 768px) {
::v-deep .el-checkbox {
margin-right: 0;

Loading…
Cancel
Save