From accebdce93486d3b4f26e55ffdea047549cce20c Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期一, 28 七月 2025 21:12:38 +0800
Subject: [PATCH] Merge branch 'master' of http://125.76.225.53:18448/r/xhj/vue_mdc_xhj

---
 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">-->
+            <!--&lt;!&ndash;//娌堥&ndash;&gt;-->
+            <!--<a-button v-has="'user.disposition'" type="primary" @click="handleAdd" icon="plus">閰嶇疆</a-button>-->
+
+            <!--&lt;!&ndash;<a-button type="primary" @click="handleAdd" icon="plus">閰嶇疆</a-button>&ndash;&gt;-->
+            <!--</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