From 7c23d914bcce65cfa3450b119d3ffcf0556c6145 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 23 十二月 2024 14:09:18 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei
---
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue | 252 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 186 insertions(+), 66 deletions(-)
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
index d4e36c0..0e58415 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
@@ -1,74 +1,52 @@
<template>
- <GlobalWindow
- :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="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ <el-form-item label="璁″垝鍚嶇О" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim />
</el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ <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="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ <el-form-item label="宸℃璐熻矗浜�" prop="userIds">
+ <el-select v-model="form.userIds" filterable clearable>
+ <el-option v-for="item in staffList" :value="item.id" :label="item.realname"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ <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="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ <el-form-item label="璁″垝鎵ц鏃堕棿">
+ <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="鏍囬" prop="title">
- <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ <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 label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ <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 label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ <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-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
- </el-form-item>
- <el-form-item label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_line)" prop="lineId">
- <el-input v-model="form.lineId" placeholder="璇疯緭鍏ュ贰妫�鐐圭紪鐮�(鍏宠仈yw_patrol_line)" v-trim/>
- </el-form-item>
- <el-form-item label="宸℃璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" prop="userIds">
- <el-input v-model="form.userIds" placeholder="璇疯緭鍏ュ贰妫�璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" v-trim/>
- </el-form-item>
- <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
- <el-input v-model="form.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" v-trim/>
- </el-form-item>
- <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
- <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
- <el-input v-model="form.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" v-trim/>
- </el-form-item>
- <el-form-item label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" prop="circleType">
- <el-input v-model="form.circleType" placeholder="璇疯緭鍏ュ惊鐜懆鏈� 0姣忓ぉ 1姣忓懆 2姣忓ぉ" v-trim/>
- </el-form-item>
- <el-form-item label="寰幆閲嶅瑙勫垯 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" prop="circleDays">
- <el-input v-model="form.circleDays" placeholder="璇疯緭鍏ュ惊鐜噸澶嶈鍒� 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" v-trim/>
- </el-form-item>
- <el-form-item label="寮�濮嬫棩鏈�" prop="startDate">
- <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫棩鏈�"></el-date-picker>
- </el-form-item>
- <el-form-item label="缁撴潫鏃ユ湡" prop="endDate">
- <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸棩鏈�"></el-date-picker>
- </el-form-item>
- <el-form-item label="寮�濮嬫椂闂寸偣" prop="startTime">
- <el-input v-model="form.startTime" placeholder="璇疯緭鍏ュ紑濮嬫椂闂寸偣" v-trim/>
- </el-form-item>
- <el-form-item label="缁撴潫鏃堕棿鐐�" prop="endTime">
- <el-input v-model="form.endTime" placeholder="璇疯緭鍏ョ粨鏉熸椂闂寸偣" v-trim/>
- </el-form-item>
- <el-form-item label="鎵ц杩涘害 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" prop="processStatus">
- <el-input v-model="form.processStatus" placeholder="璇疯緭鍏ユ墽琛岃繘搴� 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" v-trim/>
- </el-form-item>
+
</el-form>
</GlobalWindow>
</template>
@@ -76,11 +54,14 @@
<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,
components: { GlobalWindow },
- data () {
+ data() {
return {
// 琛ㄥ崟鏁版嵁
form: {
@@ -99,24 +80,163 @@
dealUserId: '',
dealDate: '',
dealInfo: '',
- circleType: '',
+ circleType: 0,
circleDays: '',
startDate: '',
endDate: '',
startTime: '',
endTime: '',
- processStatus: ''
+ processStatus: '',
+ selDate: [],
},
- // 楠岃瘉瑙勫垯
+ 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: '璇烽�夋嫨' }],
}
}
},
- created () {
+ created() {
this.config({
api: '/Inspection/ywPatrolScheme',
'field.id': 'id'
})
+ },
+ 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