From e36eed2cdc9335fc4d1b84c8e4e306422638542f Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期三, 27 十一月 2024 08:53:51 +0800 Subject: [PATCH] ll --- 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