| | |
| | | <template> |
| | | <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')"> |
| | | <el-dialog :title="titleMap[mode]" v-model="visible" :width="1100" destroy-on-close @closed="$emit('closed')"> |
| | | <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px" |
| | | label-position="center"> |
| | | label-position="center" v-if="visible"> |
| | | <el-row> |
| | | <el-col :span="24" style="padding:12px 0;"> |
| | | çå¶è¯¦æ
|
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="çå¶é¢è²" prop="colour"> |
| | | <el-input style="width: 240px" v-model="form.userName" placeholder="çå¶é¢è²" clearable></el-input> |
| | | <el-color-picker size="small" v-model="form.colour" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="çå¶æ¶é´" prop="userName"> |
| | | <el-input style="width: 240px" v-model="form.userName" placeholder="çå¶æ¶é´" clearable></el-input> |
| | | <el-form-item label="çå¶æ¶é´" prop="range"> |
| | | <ShiftTime v-model="form.range"></ShiftTime> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-for="item in detail.paramValue" :key="item"> |
| | | <el-row v-for="item in shiftDetailDTOList" :key="item"> |
| | | <el-col :span="24"> |
| | | çæ¬¡1 |
| | | çæ¬¡{{ item.shiftIndex }} |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="çæ¬¡åç§°" prop="indexName"> |
| | | <el-input style="width: 240px" v-model="form.userName" placeholder="" clearable></el-input> |
| | | <el-input v-model="item.indexName" placeholder="" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="çæ¬¡æ¶é´" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | <el-col :span="12"></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="çæ¬¡æ¶é´"> |
| | | <Time v-model="item.range"></Time> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="伿¯æ¶æ®µ1" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="伿¯æ¶æ®µ1" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="伿¯æ¶æ®µ1" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="伿¯æ¶æ®µ1" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="" prop="userName"> |
| | | <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm" |
| | | placeholder="Arbitrary time" /> |
| | | </el-col><el-col :span="12"></el-col> |
| | | <el-col :span="12" v-for="(v, i) in item.shiftRestTimeDTOList" :key="v.restIndex"> |
| | | <el-form-item :label="'伿¯æ¶æ®µ' + (i + 1)"> |
| | | <Time v-model="v.range"></Time> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | |
| | | <script> |
| | | import deepmerge from 'deepmerge' |
| | | import http from "@/utils/request" |
| | | import ShiftTime from './shiftTime' |
| | | import Time from './Time' |
| | | export default { |
| | | emits: ['success', 'closed'], |
| | | components: { |
| | | ShiftTime, |
| | | Time |
| | | }, |
| | | props: { |
| | | option: { |
| | | type: Object |
| | |
| | | } |
| | | }, |
| | | watch: { |
| | | detail() { |
| | | let len = this?.detail?.paramValue - 0 || 1 |
| | | let shiftDetailDTOList = [] |
| | | for (let i = 0; i < len; i++) { |
| | | shiftDetailDTOList.push({ |
| | | shiftStartTime: 0, |
| | | shiftEndTime: 0, |
| | | shiftIndex: i + 1, |
| | | indexName: '', |
| | | restNumber: i + 1, |
| | | shiftRestTimeDTOList: [ |
| | | { |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | restIndex: 1, |
| | | }, |
| | | { |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | restIndex: 2, |
| | | }, |
| | | { |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | restIndex: 3, |
| | | }, |
| | | { |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | restIndex: 4, |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | return this.shiftDetailDTOList = shiftDetailDTOList |
| | | } |
| | | |
| | | }, |
| | | computed: { |
| | | options() { |
| | | let group = deepmerge([], this.option.group) |
| | | group[0].disabled = true |
| | | return { |
| | | ...this.option, |
| | | group, |
| | | calendarList: this.calendarList, |
| | | linkWays: this.linkWays, |
| | | work_type: this.work_type, |
| | | machining_type: this.machining_type |
| | | } |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | edit: 'ç¼è¾çå¶', |
| | | // show: 'æ¥ç' |
| | | }, |
| | | params: {}, |
| | | visible: false, |
| | | isSaveing: false, |
| | | //è¡¨åæ°æ® |
| | | form: { |
| | | id: "", |
| | | userName: "", |
| | | avatar: "", |
| | | name: "", |
| | | dept: "", |
| | | group: [] |
| | | id: '', |
| | | code: '', |
| | | isUsed: '', |
| | | name: '', |
| | | colour: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | range: [], |
| | | shiftNumber: '', |
| | | number: '', |
| | | }, |
| | | options: [ |
| | | { |
| | | label: '䏿¥', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '彿¥', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '次æ¥', |
| | | value: 2 |
| | | } |
| | | ], |
| | | shiftDetailDTOList: [], |
| | | //éªè¯è§å |
| | | rules: { |
| | | avatar: [ |
| | | { required: true, message: '请ä¸ä¼ 头å' } |
| | | ], |
| | | userName: [ |
| | | { required: true, message: '请è¾å
¥ç»å½è´¦å·' } |
| | | range: [ |
| | | { required: true, message: '' } |
| | | ], |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥çå®å§å' } |
| | | { required: true, message: '' } |
| | | ], |
| | | password: [ |
| | | { required: true, message: '请è¾å
¥ç»å½å¯ç ' }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (this.form.password2 !== '') { |
| | | this.$refs.dialogForm.validateField('password2'); |
| | | } |
| | | callback(); |
| | | } |
| | | } |
| | | code: [ |
| | | { required: true, message: '' } |
| | | ], |
| | | password2: [ |
| | | { required: true, message: 'è¯·åæ¬¡è¾å
¥å¯ç ' }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value !== this.form.password) { |
| | | callback(new Error('两次è¾å
¥å¯ç ä¸ä¸è´!')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | dept: [ |
| | | { required: true, message: 'è¯·éæ©æå±é¨é¨' } |
| | | ], |
| | | group: [ |
| | | { required: true, message: 'è¯·éæ©æå±è§è²', trigger: 'change' } |
| | | ] |
| | | }, |
| | | //æéæ°æ®é项 |
| | | calendarList: [], |
| | | work_type: [], |
| | | machining_type: [], |
| | | linkWays: [ |
| | | { |
| | | label: 'å
³èæºå¨', |
| | | value: '0' |
| | | }, { |
| | | label: 'å建ååæºå¨', |
| | | value: '1' |
| | | } |
| | | ] |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.$API.workstation.calendarList.get().then(res => { |
| | | this.calendarList = res.data |
| | | }) |
| | | this.$API.system.dic.getDic.get({ code: 'work_type' }).then(res => { |
| | | this.work_type = res.data |
| | | }) |
| | | this.$API.system.dic.getDic.get({ code: 'machining_type' }).then(res => { |
| | | this.machining_type = res.data |
| | | }) |
| | | }, |
| | | methods: { |
| | | //æ¾ç¤º |
| | | open(mode = 'add', params) { |
| | | this.mode = mode; |
| | | this.visible = true; |
| | | this.params = params |
| | | this.$nextTick(() => { |
| | | this.visible = true; |
| | | }) |
| | | |
| | | this.form = { |
| | | id: params?.id, |
| | | code: params?.code, |
| | | isUsed: params?.isUsed, |
| | | name: params?.name, |
| | | colour: params?.colour, |
| | | startTime: params?.startTime, |
| | | endTime: params?.endTime, |
| | | range: [params?.startTime || 0, params?.endTime || 1440], |
| | | shiftNumber: params?.shiftNumber || this?.detail?.paramValue - 0, |
| | | number: params?.number || 1 |
| | | } |
| | | |
| | | if (params?.shiftDetailVOList?.length > 0) { |
| | | this.shiftDetailDTOList = params?.shiftDetailVOList?.map((item, index) => { |
| | | let shiftRestTimeDTOList = item?.shiftRestTimeVOList.map(item => { |
| | | return { |
| | | ...item, |
| | | range: [item.restStartTime, item.restEndTime] |
| | | } |
| | | }) |
| | | while (shiftRestTimeDTOList.length < 4) { |
| | | shiftRestTimeDTOList.push({ |
| | | range: [0, 0], |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | }) |
| | | } |
| | | return { |
| | | range: [item.shiftStartTime || 0, item.shiftEndTime || 1440], |
| | | shiftStartTime: item.shiftStartTime, |
| | | shiftEndTime: item.shiftEndTime, |
| | | shiftIndex: index + 1, |
| | | indexName: item.indexName, |
| | | restNumber: index + 1, |
| | | shiftRestTimeDTOList |
| | | } |
| | | |
| | | }) |
| | | } else { |
| | | let len = this?.detail?.paramValue - 0 || 1 |
| | | let shiftDetailDTOList = [] |
| | | for (let i = 0; i < len; i++) { |
| | | shiftDetailDTOList.push({ |
| | | range: [0, 0], |
| | | shiftStartTime: 0, |
| | | shiftEndTime: 0, |
| | | shiftIndex: i + 1, |
| | | indexName: '', |
| | | restNumber: i + 1, |
| | | shiftRestTimeDTOList: [ |
| | | { |
| | | range: [0, 0], |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | }, |
| | | { |
| | | range: [0, 0], |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | }, |
| | | { |
| | | range: [0, 0], |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | }, |
| | | { |
| | | range: [0, 0], |
| | | restStartTime: 0, |
| | | restEndTime: 0, |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | this.shiftDetailDTOList = shiftDetailDTOList |
| | | |
| | | } |
| | | console.log(this.shiftDetailDTOList, '>>>?????s') |
| | | return this |
| | | }, |
| | | //表åæäº¤æ¹æ³ |
| | | submit() { |
| | | console.log(this.form, this.shiftDetailDTOList) |
| | | this.$refs.dialogForm.validate(async (valid) => { |
| | | if (valid) { |
| | | this.isSaveing = true; |
| | | var res = await this.$API.demo.post.post(this.form); |
| | | let data = { |
| | | shiftNumber: this?.detail?.paramValue - 0, |
| | | ...this.form, shiftDetailDTOList: this.shiftDetailDTOList.map(item => { |
| | | return { |
| | | shiftStartTime: item.range[0], |
| | | shiftEndTime: item.range[1], |
| | | shiftIndex: item.shiftIndex, |
| | | indexName: item.indexName, |
| | | restNumber: item.restNumber, |
| | | shiftRestTimeDTOList: item.shiftRestTimeDTOList.filter(v => { |
| | | return v.range[1] > v.range[0] |
| | | }).map((v, i) => { |
| | | return { |
| | | restStartTime: v.range[0], |
| | | restEndTime: v.range[1], |
| | | restIndex: i + 1, |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }) |
| | | } |
| | | data.startTime = data.range[0] |
| | | data.endTime = data.range[1] |
| | | try { |
| | | data.startTime = data.range[0] |
| | | data.endTime = data.range[1] |
| | | delete data.range |
| | | } catch (error) { |
| | | |
| | | } |
| | | let res |
| | | try { |
| | | if (this.form.id) { |
| | | res = await this.$HTTP.put('/api/blade-cps/shift', data).catch(() => { |
| | | throw new Error() |
| | | }) |
| | | } else { |
| | | res = await this.$HTTP.post('/api/blade-cps/shift', data).catch(() => { |
| | | throw new Error() |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | this.isSaveing = false; |
| | | } |
| | | |
| | | this.isSaveing = false; |
| | | if (res.code == 200) { |
| | | this.$emit('success', this.form, this.mode) |
| | |
| | | }, |
| | | //è¡¨åæ³¨å
¥æ°æ® |
| | | setData(data) { |
| | | this.form.id = data.id |
| | | this.form.userName = data.userName |
| | | this.form.avatar = data.avatar |
| | | this.form.name = data.name |
| | | this.form.group = data.group |
| | | this.form.dept = data.dept |
| | | |
| | | //å¯ä»¥åä¸é¢ä¸æ ·å个注å
¥ï¼ä¹å¯ä»¥åä¸é¢ä¸æ ·ç´æ¥åå¹¶è¿å» |
| | | //Object.assign(this.form, data) |
| | |
| | | <!-- |
| | | * @Date: 2024-04-09 20:19:46 |
| | | * @LastEditors: Sneed |
| | | * @LastEditTime: 2024-05-02 00:31:01 |
| | | * @LastEditTime: 2024-05-03 00:11:11 |
| | | * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/Shiftsystem.vue |
| | | --> |
| | | <template> |
| | |
| | | </el-row> |
| | | </el-main> |
| | | </el-container> |
| | | <Dialog ref="dialog" :option="{ types, status, group }" :detail="detail"></Dialog> |
| | | <Dialog ref="dialog" :option="{ types, status, group }" :detail="detail" @success="success"></Dialog> |
| | | </el-container> |
| | | </template> |
| | | |
| | |
| | | this.init() |
| | | }, |
| | | methods: { |
| | | success() { |
| | | this.$refs.table.reload(this.params) |
| | | }, |
| | | init() { |
| | | this.$HTTP.get('/api/blade-system/param/detail?paramKey=system.shift.max').then(res => { |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | table_add() { |
| | | this.$refs.dialog.open() |
| | | this.$refs.dialog.open('add', { |
| | | |
| | | }) |
| | | }, |
| | | table_edit() { |
| | | this.$refs.dialog.open() |
| | | this.$refs.dialog.open('edit', this.info) |
| | | }, |
| | | del() { |
| | | this.$confirm(`ç¡®å®å 餿°æ®?`, '', { |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$HTTP.delete(`/api/blade-cps/shift/${this.info.id}`).then(res => { |
| | | if (res.code === 200) { |
| | | this.$refs.table.reload(this.params) |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | |
| | | }) |
| | | |
| | | } |
| | | }, |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | * @Date: 2024-05-02 16:31:11 |
| | | * @LastEditors: Sneed |
| | | * @LastEditTime: 2024-05-03 00:39:17 |
| | | * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/Time.vue |
| | | --> |
| | | <template> |
| | | <div> |
| | | <el-select v-model="startDay" placeholder="" size="" style="width: 80px" @change="change"> |
| | | <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | <el-time-picker style="width: 80px" :clearable="false" v-model="start" value-format="HH:mm" format="HH:mm" |
| | | placeholder="" @change="change" /> |
| | | <span style="padding: 0 10px">-</span> |
| | | <el-select v-model="endDay" placeholder="" size="" style="width: 80px" @change="change"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | <el-time-picker style="width: 80px" :clearable="false" v-model="end" value-format="HH:mm" format="HH:mm" |
| | | placeholder="" @change="change" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | |
| | | export default { |
| | | props: { |
| | | modelValue: { type: Array, default: [0, 0] }, |
| | | }, |
| | | watch: { |
| | | value(val) { |
| | | this.$emit('update:modelValue', val) |
| | | let base = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let base1 = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let startTime = base.add(val[0], 'm').format('HH:mm') |
| | | let endTime = base1.add(val[1], 'm').format('HH:mm') |
| | | this.start = startTime |
| | | this.end = endTime |
| | | this.startDay = this.getDes(val[0]) |
| | | this.endDay = this.getDes(val[1]) |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | value: [], |
| | | options1: [ |
| | | { |
| | | label: '䏿¥', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '彿¥', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '次æ¥', |
| | | value: 2 |
| | | } |
| | | ], |
| | | options: [ |
| | | { |
| | | label: '䏿¥', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '彿¥', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '次æ¥', |
| | | value: 2 |
| | | } |
| | | ], |
| | | startDay: 1, |
| | | endDay: 1, |
| | | start: '00:00', |
| | | end: '00:00' |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.modelValue || this?.modelValue.length === 0) { |
| | | this.value = [0, 1440] |
| | | this.startDay = 1 |
| | | this.endDay = 2 |
| | | this.start = '00:00' |
| | | this.end = '00:00' |
| | | } else { |
| | | this.value = this.modelValue |
| | | } |
| | | }, |
| | | methods: { |
| | | getDes(num) { |
| | | if (num < 0) { |
| | | return 0 |
| | | } else if (num >= 0 && num < 1440) { |
| | | return 1 |
| | | } else { |
| | | return 2 |
| | | } |
| | | }, |
| | | change() { |
| | | let arr = [] |
| | | let base = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let startTime = moment(`${moment().format('YYYY-MM-DD')} ${this.start}`) |
| | | let endTime = moment(`${moment().format('YYYY-MM-DD')} ${this.end}`) |
| | | if (this.startDay === 0) { |
| | | startTime.subtract(1, 'd') |
| | | } else if (this.startDay === 2) { |
| | | startTime.add(1, 'd') |
| | | } |
| | | let arrItem0 = startTime.diff(base) / 60000 |
| | | if (this.endDay === 0) { |
| | | endTime.subtract(1, 'd') |
| | | } else if (this.endDay === 2) { |
| | | endTime.add(1, 'd') |
| | | } |
| | | let arrItem1 = endTime.diff(base) / 60000 |
| | | console.log('>>>>', arrItem1, arrItem0) |
| | | if (arrItem1 <= arrItem0) { |
| | | return this.$message.warning('å¼å§æ¶é´å¤§äºç»ææ¶é´ï¼è¯·éæ°è¾å
¥'); |
| | | } |
| | | console.log('>>>>', arrItem1, arrItem0) |
| | | // this.endDay = this.getDes(arrItem0) |
| | | arr.push(arrItem0, arrItem1) |
| | | this.value = arr |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
| | |
| | | <!-- |
| | | * @Date: 2024-04-04 21:51:24 |
| | | * @LastEditors: Sneed |
| | | * @LastEditTime: 2024-04-28 23:45:46 |
| | | * @LastEditTime: 2024-05-02 22:18:25 |
| | | * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/shift-calendar.vue |
| | | --> |
| | | <template> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | * @Date: 2024-05-02 16:31:11 |
| | | * @LastEditors: Sneed |
| | | * @LastEditTime: 2024-05-03 00:38:58 |
| | | * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/shiftTime.vue |
| | | --> |
| | | <template> |
| | | <div> |
| | | <el-select v-model="startDay" placeholder="" size="" style="width: 80px" @change="change"> |
| | | <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | <el-time-picker style="width: 80px" :clearable="false" v-model="start" value-format="HH:mm" format="HH:mm" |
| | | placeholder="" @change="change" /> |
| | | <span style="padding: 0 10px">-</span> |
| | | <el-select disabled v-model="endDay" placeholder="" size="" style="width: 80px"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | <el-time-picker disabled style="width: 80px" :clearable="false" v-model="end" value-format="HH:mm" |
| | | format="HH:mm" placeholder="" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | |
| | | export default { |
| | | props: { |
| | | modelValue: { type: [], default: [0, 1440] }, |
| | | }, |
| | | watch: { |
| | | value(val) { |
| | | this.$emit('update:modelValue', val) |
| | | let base = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let base1 = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let startTime = base.add(val[0], 'm').format('HH:mm') |
| | | let endTime = base1.add(val[1], 'm').format('HH:mm') |
| | | this.start = startTime |
| | | this.end = endTime |
| | | this.startDay = this.getDes(val[0]) |
| | | this.endDay = this.getDes(val[1]) |
| | | }, |
| | | modelValue() { |
| | | this.value = this.modelValue |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | value: [], |
| | | options1: [ |
| | | { |
| | | label: '䏿¥', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '彿¥', |
| | | value: 1 |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | label: '䏿¥', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '彿¥', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '次æ¥', |
| | | value: 2 |
| | | } |
| | | ], |
| | | startDay: 1, |
| | | endDay: 2, |
| | | start: '00:00', |
| | | end: '00:00' |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.modelValue || this?.modelValue.length === 0) { |
| | | this.value = [0, 1440] |
| | | this.startDay = 1 |
| | | this.endDay = 2 |
| | | this.start = '00:00' |
| | | this.end = '00:00' |
| | | } else { |
| | | this.value = this.modelValue |
| | | } |
| | | }, |
| | | methods: { |
| | | getDes(num) { |
| | | if (num < 0) { |
| | | return 0 |
| | | } else if (num >= 0 && num < 1440) { |
| | | return 1 |
| | | } else { |
| | | return 2 |
| | | } |
| | | }, |
| | | change() { |
| | | let arr = [] |
| | | let base = moment(moment().format('YYYY-MM-DD') + ' 00:00') |
| | | let startTime = moment(`${moment().format('YYYY-MM-DD')} ${this.start}`) |
| | | if (this.startDay === 0) { |
| | | startTime.subtract(1, 'd') |
| | | } |
| | | let arrItem0 = startTime.diff(base) / 60000 |
| | | let arrItem1 = startTime.add(1, 'd').diff(base) / 60000 |
| | | // this.endDay = this.getDes(arrItem0) |
| | | arr.push(arrItem0, arrItem1) |
| | | this.value = arr |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |