From 57552bf3ffb83ba2e1096d374f11be6133db1615 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 27 十一月 2024 10:52:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue | 196 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 172 insertions(+), 24 deletions(-)
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
index 0f933b6..0e58415 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
@@ -1,38 +1,52 @@
<template>
- <GlobalWindow width="520px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow width="520px" :title="title" @close="close" :visible.sync="visible" :confirm-working="isWorking"
+ @confirm="confirm">
+ <div class="warnning">
+ {{ form.id ? '缂栬緫璁″垝瀵瑰凡鐢熸垚鐨勪换鍔℃棤鏁堬紝浼氬湪涓嬫鐢熸垚浠诲姟鏃剁敓鏁堬紝涓斿綋澶╀笉浼氱敓鎴愪袱涓换鍔�' : '鏂板缓宸℃璁″垝浼氫粠褰撳ぉ寮�濮嬶紝鎸夌収閰嶇疆瑙勫垯浜х敓瀵瑰簲鐨勫贰妫�浠诲姟' }}
+ </div>
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="璁″垝鍚嶇О" prop="title">
<el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim />
</el-form-item>
- <el-form-item label="宸℃绾胯矾">
- <el-select v-model="form.status" filterable clearable>
- <el-option value="0" label="姣忓ぉ"></el-option>
- <el-option value="1" label="姣忓懆"></el-option>
- <el-option value="2" label="姣忔湀"></el-option>
+ <el-form-item label="宸℃绾胯矾" prop="lineId">
+ <el-select v-model="form.lineId" filterable clearable>
+ <el-option v-for="item in lineList" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="宸℃璐熻矗浜�">
+ <el-form-item label="宸℃璐熻矗浜�" prop="userIds">
<el-select v-model="form.userIds" filterable clearable>
- <el-option value="0" label="姣忓ぉ"></el-option>
- <el-option value="1" label="姣忓懆"></el-option>
- <el-option value="2" label="姣忔湀"></el-option>
+ <el-option v-for="item in staffList" :value="item.id" :label="item.realname"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="璁″垝寮�濮嬫棩鏈�-缁撴潫鏃ユ湡">
- <el-date-picker v-model="form.selDate" is-range range-separator="-" value-format="yyyy-MM-dd" type="daterange"
- start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" class="w400" />
+ <el-form-item label="璁″垝寮�濮嬫棩鏈�-缁撴潫鏃ユ湡" prop="selDate">
+ <el-date-picker v-model="form.selDate" @change="changeDate" is-range range-separator="-"
+ value-format="yyyy-MM-dd" type="daterange" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" />
</el-form-item>
<el-form-item label="璁″垝鎵ц鏃堕棿">
- <el-time-picker v-model="form.selTime" is-range range-separator="-" format="HH:mm" value-format="HH:mm:ss"
- start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" class="w400" />
+ <el-time-picker v-model="form.selTime" @change="changeTime" is-range range-separator="-" format="HH:mm"
+ value-format="HH:mm:ss" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" />
</el-form-item>
- <el-form-item label="寰幆鍛ㄦ湡">
- <el-select v-model="form.circleType" filterable clearable>
- <el-option value="0" label="姣忓ぉ"></el-option>
- <el-option value="1" label="姣忓懆"></el-option>
- <el-option value="2" label="姣忔湀"></el-option>
+ <el-form-item label="閲嶅棰戠巼">
+ <el-select v-model="form.circleType" @change="changeType" filterable>
+ <el-option :value="0" label="姣忓ぉ"></el-option>
+ <el-option :value="1" label="姣忓懆"></el-option>
+ <el-option :value="2" label="姣忔湀"></el-option>
</el-select>
</el-form-item>
+ <el-form-item v-if="form.circleType == 1" prop="circleDays" label="閲嶅瑙勫垯">
+ <div class="weeks">
+ <div class="week" @click="weekClick(i)" :class="{ active: item.sel }" v-for="item, i in weeks">{{ item.la }}
+ </div>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="form.circleType == 2" prop="circleDays" label="閲嶅瑙勫垯">
+ <div class="weeks">
+ <div class="week" @click="monthClick(i)" :class="{ active: item.sel }" v-for="item, i in monthsList">{{
+ item.la
+ }}</div>
+ </div>
+ </el-form-item>
+
</el-form>
</GlobalWindow>
</template>
@@ -40,6 +54,9 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import { fetchList as getLineList } from '@/api/Inspection/ywPatrolLine'
+import { detailById } from '@/api/Inspection/ywPatrolScheme'
+import { getUserList } from '@/api/system/user'
export default {
name: 'OperaYwPatrolSchemeWindow',
extends: BaseOpera,
@@ -63,7 +80,7 @@
dealUserId: '',
dealDate: '',
dealInfo: '',
- circleType: '',
+ circleType: 0,
circleDays: '',
startDate: '',
endDate: '',
@@ -71,10 +88,26 @@
endTime: '',
processStatus: '',
selDate: [],
- selTime: [],
},
- // 楠岃瘉瑙勫垯
+ lineList: [],
+ staffList: [],
+ weeks: [
+ { la: '鍛ㄤ竴', va: 1, sel: false },
+ { la: '鍛ㄤ簩', va: 2, sel: false },
+ { la: '鍛ㄤ笁', va: 3, sel: false },
+ { la: '鍛ㄥ洓', va: 4, sel: false },
+ { la: '鍛ㄤ簲', va: 5, sel: false },
+ { la: '鍛ㄥ叚', va: 6, sel: false },
+ { la: '鍛ㄦ棩', va: 7, sel: false },
+ ],
+ monthsList: [],
+ selCircleDays: [],
rules: {
+ title: [{ required: true, message: '璇疯緭鍏�' }],
+ lineId: [{ required: true, message: '璇烽�夋嫨' }],
+ userIds: [{ required: true, message: '璇烽�夋嫨' }],
+ selDate: [{ type: 'array', required: true, message: '璇烽�夋嫨' }],
+ circleDays: [{ required: true, message: '璇烽�夋嫨' }],
}
}
},
@@ -85,10 +118,125 @@
})
},
methods: {
+ weekClick(i) {
+ this.weeks.forEach((item, index) => {
+ if (i == index) { item.sel = !item.sel }
+ })
+ this.$set(this.form, 'circleDays', this.weeks.filter(j => j.sel).map(a => a.va).join(','))
+ },
+ monthClick(i) {
+ this.monthsList.forEach((item, index) => {
+ if (i == index) { item.sel = !item.sel }
+ })
+ this.$set(this.form, 'circleDays', this.monthsList.filter(j => j.sel).map(a => a.va).join(','))
+ },
+ changeTime(e) {
+ if (e && e.length > 0) {
+ this.$set(this.form, 'startTime', e[0])
+ this.$set(this.form, 'endTime', e[1])
+ } else {
+ this.$set(this.form, 'startTime', '')
+ this.$set(this.form, 'endTime', '')
+ }
+ },
+ changeDate(e) {
+ if (e && e.length > 0) {
+ this.$set(this.form, 'startDate', e[0])
+ this.$set(this.form, 'endDate', e[1])
+ } else {
+ this.$set(this.form, 'startDate', '')
+ this.$set(this.form, 'endDate', '')
+ }
+ },
+ changeType() {
+ this.$set(this.form, 'circleDays', '')
+ },
+ getDetail(id) {
+ detailById(id).then(res => {
+ this.form = res
+ if (res.userIds) {
+ this.$set(this.form, 'userIds', Number(res.userIds))
+ }
+ if (res.startTime) {
+ this.$set(this.form, 'selTime', [res.startTime, res.endTime])
+ }
+ if (res.circleDays) {
+ const circleDays = res.circleDays.split(',')
+ if (res.circleType == 1) {
+ circleDays.forEach(i => {
+ this.weeks.forEach(j => {
+ if (i == j.va) {
+ j.sel = true
+ }
+ })
+ })
+ } else {
+ setTimeout(() => {
+ circleDays.forEach(i => {
+ this.monthsList.forEach(j => {
+ if (i == j.va) {
+ j.sel = true
+ }
+ })
+ })
+ }, 500)
+ }
+ }
+ this.$set(this.form, 'selDate', [res.startDate, res.endDate])
+ })
+ },
initData() {
-
+ getLineList({
+ model: {},
+ capacity: 9999,
+ page: 1,
+ }).then(res => {
+ this.lineList = res.records
+ })
+ getUserList({}).then(res => {
+ this.staffList = res
+ })
+ this.monthsList = []
+ for (let i = 1; i < 32; i++) {
+ this.monthsList.push({ la: i, va: i, sel: false })
+ }
+ },
+ close() {
+ this.$refs.form.resetFields()
+ this.visible = false
}
}
}
</script>
+<style lang="scss" scoped>
+@import '@/assets/style/variables.scss';
+.warnning{
+ padding: 6px 10px;
+ background-color: #fcf3e6;
+ font-size: 12px;
+ color: #333333;
+}
+.weeks {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+
+ .week {
+ border: 1px solid #999999;
+ width: 40px;
+ height: 18px;
+ text-align: center;
+ line-height: 18px;
+ font-size: 12px;
+ margin-right: 8px;
+ cursor: pointer;
+ margin-bottom: 6px;
+ }
+
+ .active {
+ color: $primary-color;
+ border: 1px solid $primary-color;
+ }
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3