From cf9d04b97ef0b8abb63e587e0898e301765ed4b9 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 18 八月 2025 17:07:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue | 321 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 321 insertions(+), 0 deletions(-)
diff --git a/src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue b/src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue
new file mode 100644
index 0000000..3c1820f
--- /dev/null
+++ b/src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue
@@ -0,0 +1,321 @@
+<template>
+ <div class="deviceCalendar_list">
+ <!-- 鏌ヨ鍖哄煙 -->
+ <div>
+ <div class="table-page-search-wrapper">
+ <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <a-row :gutter="24" style="width: 100%">
+ <a-col :md="6" :sm="6">
+ <a-form-item label="鏃堕棿">
+ <a-range-picker @change="dateParamChange" format="YYYYMMDD" v-model="dates"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="2" :sm="2" :xs="2">
+ <a-space>
+ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+ <a-button v-has="'user.disposition'" type="primary" @click="handleAdd" icon="plus">閰嶇疆</a-button>
+ </a-space>
+ </a-col>
+ <!--<a-col :md="2" :sm="2" :xs="2">-->
+ <!--<a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>-->
+ <!--</a-col>-->
+ <!--<a-col :md="2" :sm="2">-->
+ <!--<!–//娌堥–>-->
+ <!--<a-button v-has="'user.disposition'" type="primary" @click="handleAdd" icon="plus">閰嶇疆</a-button>-->
+
+ <!--<!–<a-button type="primary" @click="handleAdd" icon="plus">閰嶇疆</a-button>–>-->
+ <!--</a-col>-->
+
+
+ </a-row>
+ </a-form>
+ </div>
+ </div>
+
+ <div style="overflow: hidden;width: 100%;margin-top: 20px;flex: 1" id="DeviceList">
+ <a-table ref="table" bordered :scroll="{x:'max-content',y:scrollY}"
+ size="middle" rowKey="id" :columns="columns"
+ @change="handleTableChange" class="ant-table-striped"
+ :dataSource="dataSource" :pagination="ipagination"
+ :loading="loading" :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)">
+ <span slot="action"
+ slot-scope="text, record">
+ <a-popconfirm
+ title="纭畾鍒犻櫎鍚�?"
+ @confirm="() => handleDelete(record.id)"
+ >
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ <span slot="isDaySpan" slot-scope="text, record">
+ <span v-if="text == 'true'">鏄�</span>
+ <span v-if="text == 'false'">鍚�</span>
+ </span>
+ </a-table>
+ </div>
+ <device-calendar-model ref="modalForm" @ok="modalFormOk"></device-calendar-model>
+ </div>
+</template>
+
+<script>
+ import moment from 'moment'
+ import { filterObj } from '@/utils/util'
+ import { putAction, getAction } from '@/api/manage'
+ import DeviceCalendarModel from './DeviceCalendarModel'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+ export default {
+ name: 'DeviceCalendarList',
+ components: { DeviceCalendarModel },
+ mixins: [JeecgListMixin],
+ data() {
+ return {
+ dates: [],
+ yearAndMonth: {},
+ identifying: [],
+ queryParam: {},
+ disableMixinCreated: true,
+ scrollY: 465,
+ /* 鍒嗛〉鍙傛暟 */
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['10', '20', '30'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0
+ },
+ columns: [
+ {
+ title: '鏃ユ湡',
+ align: 'center',
+ dataIndex: 'effectiveDate',
+ width: 100
+ },
+ {
+ title: '璁惧缂栧彿',
+ align: 'center',
+ dataIndex: 'equipmentId',
+ width: 150
+ },
+ {
+ title: '瀹夎浣嶇疆',
+ align: 'center',
+ dataIndex: 'equipmentName',
+ width: 150
+ },
+ {
+ title: '鐝埗',
+ align: 'center',
+ dataIndex: 'shiftName',
+ width: 150
+ },
+ {
+ title: '鐝',
+ align: 'center',
+ dataIndex: 'shiftSubName',
+ width: 150
+ },
+ {
+ title: '寮�濮嬫椂闂�',
+ align: 'center',
+ dataIndex: 'startDate',
+ width: 140
+ },
+ {
+ title: '缁撴潫鏃堕棿',
+ align: 'center',
+ dataIndex: 'endDate',
+ width: 140
+ },
+ {
+ title: '鏄惁璺ㄥぉ',
+ align: 'center',
+ dataIndex: 'isDaySpan',
+ scopedSlots: { customRender: 'isDaySpan' },
+ width: 100
+ },
+ {
+ title: '寮�濮嬩紤鎭椂闂�',
+ align: 'center',
+ dataIndex: 'sleepStartDate',
+ width: 140
+ },
+ {
+ title: '缁撴潫浼戞伅鏃堕棿',
+ align: 'center',
+ dataIndex: 'sleepEndDate',
+ width: 140
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align: 'center',
+ width: 100,
+ scopedSlots: { customRender: 'action' },
+ fixed: 'right'
+ }
+ ],
+ checkedList: ['lyl'],
+ dataList: [],
+ url: {
+ list: '/mdc/mdcDeviceCalendar/list',
+ delete: '/mdc/mdcDeviceCalendar/delete'
+ }
+ }
+ },
+ props: { node: {}, Type: '' },
+ created() {
+ const { equipmentId } = this.$route.params
+ if (equipmentId) this.queryParam.equipmentId = equipmentId
+
+ this.dates = [moment().subtract('days', 0), moment().subtract('days', 0)]
+ this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD')
+ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD')
+ this.queryParam.typeTree = '1'
+ this.loadData()
+ },
+ mounted() {
+ window.addEventListener('resize', this.handleWindowResize)
+ this.handleWindowResize()
+ },
+ beforeDestroy() {
+ window.removeEventListener('resize', this.handleWindowResize)
+ },
+ watch: {
+ Type(valmath) {
+ this.dataList = []
+ this.queryParam.typeTree = valmath
+ // console.log(this.queryParams.typeTree)
+ },
+ node(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢
+ if (JSON.stringify(val) != '{}') {
+ if (val.equipmentId != null) {
+ this.queryParam.equipmentId = val.equipmentId
+ this.queryParam.parentId = ' '
+ this.ipagination.current = 1
+ this.loadData()
+ } else {
+ this.queryParam.parentId = val.key
+ this.queryParam.equipmentId = null
+ this.ipagination.current = 1
+ this.loadData()
+ }
+ }
+ }
+ },
+ methods: {
+ dateParamChange(v1, v2) {
+ this.queryParam.startTime = v2[0]
+ this.queryParam.endTime = v2[1]
+ },
+ searchQuery() {
+ this.loadData()
+ },
+ searchReset() {
+ this.queryParam = {}
+ this.loadData()
+ },
+ loadData(arg) {
+ this.dataSource = []
+ if (!this.url.list) {
+ this.$message.error('璇疯缃畊rl.list灞炴��!')
+ return
+ }
+ //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+ if (arg === 1) {
+ this.ipagination.current = 1
+ }
+
+ var params = this.getQueryParams()//鏌ヨ鏉′欢
+
+ if (!params) {
+ return false
+ }
+ params.startTime = this.queryParam.startTime
+ params.endTime = this.queryParam.endTime
+ params.parentId = this.queryParam.parentId
+ params.equipmentId = this.queryParam.equipmentId
+ params.orderByName = 'ascend'
+ this.loading = true
+ getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ // console.log(res)
+ //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+
+ this.dataSource = res.result.records || res.result
+ if (res.result.total) {
+ this.ipagination.total = res.result.total
+ } else {
+ this.ipagination.total = 0
+ }
+ //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ handleAdd() {
+ let record = {}
+ if (JSON.stringify(this.node) != '{}') {
+ record = { equipmentId: this.node.equipmentId, equmentName: this.node.equipmentName }
+ }
+ this.$refs.modalForm.add(record)
+ this.$refs.modalForm.title = '璁惧宸ヤ綔鏃ュ巻閰嶇疆'
+ this.$refs.modalForm.disableSubmit = false
+ },
+
+ handleWindowResize() {
+ const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2)
+ const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2)
+ this.scrollY = boxHeight - tableHeadHeight - 50
+ }
+ }
+ }
+</script>
+<style scoped>
+ .deviceCalendar_list {
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ }
+
+ @media screen and (min-width: 1920px) {
+ .deviceCalendar_list {
+ height: 812px !important;
+ }
+ }
+
+ @media screen and (min-width: 1680px) and (max-width: 1920px) {
+ .deviceCalendar_list {
+ height: 812px !important;
+ }
+ }
+
+ @media screen and (min-width: 1400px) and (max-width: 1680px) {
+ .deviceCalendar_list {
+ height: 664px !important;
+ }
+ }
+
+ @media screen and (min-width: 1280px) and (max-width: 1400px) {
+ .deviceCalendar_list {
+ height: 565px !important;
+ }
+ }
+
+ @media screen and (max-width: 1280px) {
+ .deviceCalendar_list {
+ height: 565px !important;
+ }
+ }
+
+ .ant-table-striped /deep/ .table-striped td {
+ background-color: #fafafa;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3