From 5cfc97edd66731e2ebeea36072ec160a25a7bbf3 Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期四, 23 十一月 2023 18:21:44 +0800
Subject: [PATCH] qxtj

---
 src/views/paiban/beiwanglu/index.vue |  260 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 199 insertions(+), 61 deletions(-)

diff --git a/src/views/paiban/beiwanglu/index.vue b/src/views/paiban/beiwanglu/index.vue
index 7d8e908..0e99a89 100644
--- a/src/views/paiban/beiwanglu/index.vue
+++ b/src/views/paiban/beiwanglu/index.vue
@@ -4,7 +4,7 @@
             <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
                 label-width="68px">
                 <el-form-item label="鏈堜唤" prop="deptName">
-                    <el-date-picker v-model="value1" type="date" placeholder="閫夋嫨鏃ユ湡">
+                    <el-date-picker v-model="value1" type="month" placeholder="閫夋嫨鏈�" @change="monthChange">
                     </el-date-picker>
                 </el-form-item>
                 <el-form-item>
@@ -20,55 +20,45 @@
                         <div class="calendar-day">
                             {{ data.day.split("-").slice(2).join("-") }} {{ data.isSelected ? '鉁旓笍' : '' }}
                         </div>
-                        <div v-for="(item, index) in calendarData" :key="index" class="is-selected"
+                        <div v-for="(item, index) in cateringList" :key="index" class="is-selected"
                             @click.stop="addPlan(item)">
-                            <span v-if="item.day == data.day && item.timeDetailsList">
+                            <span v-if="item.mDate == data.day">
                                 <el-tooltip placement="top">
                                     <div slot="content">
-                                        <div v-for="items in item.timeDetailsList" :key="items.day">
-                                            {{ items.channelName }} :
-                                            {{ items.wechatNumber }}涓井淇″彿锛�
-                                            璁″垝鎶曟斁{{ items.planNumber }}锛�
-                                            瀹為檯鍔犱汉
-                                            {{ items.realityNumber }}
+                                        <div>
+                                            {{ item.event }}
                                         </div>
                                     </div>
                                     // 杩欓噷鍐欎袱閬嶆槸鍥犱负涓�涓槸妗嗛噷灞曠ず锛屼竴涓槸鎮诞缁勪欢鍐呭睍绀虹殑鍐呭
-                                    <div v-for="items in item.timeDetailsList" :key="items.day">
-                                        {{ items.channelName }} :
-                                        {{ items.wechatNumber }}涓井淇″彿锛�
-                                        璁″垝鎶曟斁{{ items.planNumber }}锛�
-                                        瀹為檯鍔犱汉
-                                        {{ items.realityNumber }}
+                                    <div>
+                                        {{ item.mflag == "0" ? "鈼�" : "鈭�" }}
+                                        {{ item.title }}
+
                                     </div>
                                 </el-tooltip>
                             </span>
                         </div>
+
                     </div>
                 </template>
             </el-calendar>
         </div>
 
-        <!-- 娣诲姞鎴栦慨鏀硅鍒�+鐥呯瀵硅瘽妗� -->
         <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
             <div style="margin-bottom: 10px;">鏃堕棿锛歿{ time }}</div>
             <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
                 <el-form-item label="鏍囬" prop="title">
                     <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" style="width:200px" />
                 </el-form-item>
-                <el-form-item label="浜嬩欢" prop="event">
-                    <el-input v-model="form.event" placeholder="璇疯緭鍏ヤ簨浠�" style="width:200px" />
-                </el-form-item>
+
                 <el-form-item label="鏃ユ湡绫诲瀷" prop="dateType">
-                    <el-select v-model="form.dateType" style="width: 94%">
+                    <el-select v-model="form.dateType" style="width: 100%">
                         <el-option v-for="dict in dict.type.memo_date_type" :key="dict.value" :label="dict.label"
                             :value="dict.value"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="鏃堕棿鐐�" prop="mTime" v-if="form.dateType == 1">
-                    <el-time-picker v-model="form.mTime" :picker-options="{
-                        selectableRange: '18:30:00 - 20:30:00'
-                    }" placeholder="浠绘剰鏃堕棿鐐�">
+                    <el-time-picker v-model="form.mTime" format placeholder="浠绘剰鏃堕棿鐐�" style="width:88%">
                     </el-time-picker>
                 </el-form-item>
                 <el-form-item label="閲嶅鎻愰啋" prop="isRepeat">
@@ -79,10 +69,10 @@
                 </el-form-item>
                 <el-form-item label="鎻愰啋闂撮殧" prop="repeatTime" v-if="form.isRepeat == 'Y'">
                     <el-input type="number" v-model="form.repeatTime" placeholder="璇疯緭鍏ユ彁閱掗棿闅�" style="width:200px"
-                    oninput="value=value.replace(/[^0-9.]/g,'')" />
+                        oninput="value=value.replace(/[^0-9.]/g,'')" />
                 </el-form-item>
-                <el-form-item label="澶囧繕鐘舵��" prop="mFlag">
-                    <el-select v-model="form.mFlag" style="width: 94%">
+                <el-form-item label="澶囧繕鐘舵��" prop="mflag" v-if="form.id">
+                    <el-select v-model="form.mflag" style="width: 94%">
                         <el-option v-for="dict in dict.type.memo_status" :key="dict.value" :label="dict.label"
                             :value="dict.value"></el-option>
                     </el-select>
@@ -93,24 +83,40 @@
                             :value="dict.value"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="澶囨敞" prop="remark">
-                    <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" style="width:200px" />
+                <el-form-item label="浜嬩欢" prop="event">
+                    <el-input type="textarea" autosize v-model="form.event" placeholder="璇疯緭鍏ヤ簨浠�" style="min-width:500px" />
                 </el-form-item>
             </el-form>
-            <el-button style="margin: 10px 10px" type="primary" plain size="mini" icon="el-icon-plus"
-                @click="hableadd">娣诲姞</el-button>
-            <el-table :data="cateringList" border>
-                <el-table-column type="selection" width="55" align="center" />
-                <el-table-column label="搴忓彿" align="center" prop="newID" width="55px" />
+
+            <el-button style="margin: 10px 10px" type="primary" plain size="mini" @click="hableadd">纭</el-button>
+            <el-button style="margin: 10px 10px" type="primary" plain size="mini" 
+                @click="hablecon">閲嶇疆</el-button>
+            <el-table :data="cateringList" style="width: 100%" border>
                 <el-table-column label="鏍囬" align="center" prop="title" />
-                <el-table-column label="浜嬩欢" align="center" prop="event" />
-                <el-table-column label="鏃ユ湡绫诲瀷" align="center" prop="dateType" />
-                <el-table-column label="鏃堕棿鐐�" align="center" prop="mTime" />
-                <el-table-column label="閲嶅鎻愰啋" align="center" prop="isRepeat" width="150px" />
-                <el-table-column label="鎻愰啋闂撮殧" align="center" prop="repeatTime" width="150px" />
-                <el-table-column label="澶囧繕鐘舵��" align="center" prop="mFlag" width="150px" />
-                <el-table-column label="绱ф�ョ姸鎬�" align="center" prop="stateLevel" width="150px" />
-                <el-table-column label="澶囨敞" align="center" prop="remark" width="150px" />
+                <el-table-column label="浜嬩欢" align="center" prop="event" width="260px" />
+                <el-table-column label="鏃ユ湡绫诲瀷" align="center" prop="dateType">
+                    <template slot-scope="scope">
+                        <dict-tag :options="dict.type.memo_date_type" :value="scope.row.dateType" />
+                    </template>
+                </el-table-column>
+                <el-table-column label="鏃堕棿鐐�" align="center" prop="mTime" width="160px" />
+                <el-table-column label="閲嶅鎻愰啋" align="center" prop="isRepeat">
+                    <template slot-scope="scope">
+                        <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isRepeat" />
+                    </template>
+                </el-table-column>
+                <el-table-column label="鎻愰啋闂撮殧/鍒嗛挓" align="center" prop="repeatTime" />
+                <el-table-column label="澶囧繕鐘舵��" align="center" prop="mflag">
+                    <template slot-scope="scope">
+                        <dict-tag :options="dict.type.memo_status" :value="scope.row.mflag" />
+                    </template>
+                </el-table-column>
+                <el-table-column label="绱ф�ョ姸鎬�" align="center" prop="stateLevel">
+                    <template slot-scope="scope">
+                        <dict-tag :options="dict.type.memo_state_level" :value="scope.row.stateLevel" />
+                    </template>
+                </el-table-column>
+                <!-- <el-table-column label="澶囨敞" align="center" prop="remark" width="150px" /> -->
                 <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" fixed="right"
                     width="80px">
                     <template slot-scope="scope">
@@ -123,15 +129,18 @@
                     </template>
                 </el-table-column>
             </el-table>
-            <div slot="footer" class="dialog-footer">
+            <!-- <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
                 <el-button @click="cancel">鍙� 娑�</el-button>
-            </div>
+            </div> -->
         </el-dialog>
 
     </div>
 </template>
 <script>
+import { memo, listByUserAndDate, listByDate, eictmemo, delememo } from "@/api/mall/memo"
+let moment = require("moment");
+import { getInfo } from "@/api/login";
 export default {
     dicts: [
         "memo_state_level",
@@ -149,41 +158,109 @@
 
             },
             title: "",
-            value1: '',
+            value1: new Date(),
             time: '',
             open: false,
             value: new Date(),
             calendarData: [],
             form: {
-                mTime: new Date(2016, 9, 10, 18, 40),
+                mTime: new Date(),
             },
+            userId: "",
+            userName: "",
+            value2: "",
             cateringList: [],
             // 琛ㄥ崟鏍¢獙
             rules: {
                 title: [
-                    { required: true, message: "鏍囬涓嶈兘涓虹┖", trigger: "change" },
+                    { required: true, message: "鏍囬涓嶈兘涓虹┖", trigger: "blur" },
                 ],
             },
         }
     },
-    monthChange(val) {
-        // 杩欓噷鏄洃鍚椂闂村彉鍖� => @change="monthChange"锛岀劧鍚庝紶鍏ユ棩鍘嗙粍浠�
-        this.value = val;
-        // 鏃堕棿鍒囨崲鐨勬椂鍊欙紝椤轰究璋冧釜鎺ュ彛鏌ヨ褰撴湀鏁版嵁
-        this.editDetail();
+    mounted() {
+        let prevBtn = document.querySelector(
+            ".el-calendar__button-group .el-button-group>button:nth-child(1)"
+        );
+        prevBtn.addEventListener("click", e => {
+            this.timestampToTime(this.value)
+            this.timeScher()
+        });
+
+        //鐐瑰嚮涓嬩竴涓湀
+        let nextBtn = document.querySelector(
+            ".el-calendar__button-group .el-button-group>button:nth-child(3)"
+        );
+        nextBtn.addEventListener("click", () => {
+            this.timestampToTime(this.value)
+            this.timeScher()
+        });
+
+        //鐐瑰嚮浠婂ぉ
+        let todayBtn = document.querySelector(
+            ".el-calendar__button-group .el-button-group>button:nth-child(2)"
+        );
+        todayBtn.addEventListener("click", () => {
+            this.timestampToTime(this.value)
+            this.timeScher()
+        });
+    },
+
+    created() {
+        this.getList();
     },
     methods: {
-        editDetail() {
-
+        getList() {
+            getInfo().then(res => {
+                this.userName = res.user.nickName
+                this.userId = res.user.userId;
+                this.timestampToTime(this.form.mTime)
+                this.monthdon()
+            })
         },
+
+        // 鏈堜唤鏃ユ湡鏌�
+        monthdon() {
+            let data = {
+                userId: this.userId,
+                mDate: this.time
+            }
+            listByUserAndDate(data).then(res => {
+                this.cateringList = res.data
+            })
+        },
+        // 鏀瑰彉鏈堜唤
+        monthChange(val) {
+            // 杩欓噷鏄洃鍚椂闂村彉鍖� => @change="monthChange"锛岀劧鍚庝紶鍏ユ棩鍘嗙粍浠�
+            this.value = val;
+        },
+        // 鎼滅储
         handleQuery() {
-
+            this.timestampToTime(this.value1)
+            this.timeScher()
         },
+        // 鏈堟煡璇�
+        timeScher() {
+            let data = {
+                userId: this.userId,
+                mDate: this.value2,
+            }
+            listByDate(data).then(res => {
+                this.cateringList = res.data
+            })
+        },
+        // 鐐瑰嚮浜嬩欢
         addPlan(val) {
             this.open = true
             this.title = "鏂板鏃ヨ鍒�"
-            this.timestampToTime(val)
+            if (val.mDate) {
+                this.time = val.mDate
+            } else {
+                this.timestampToTime(val)
+            }
+            this.monthdon()
         },
+        // 鏃堕棿杞寲
         timestampToTime(timestamp) {
             var date = new Date(timestamp);
             var y = date.getFullYear();
@@ -197,22 +274,63 @@
             var second = date.getSeconds();
             second = second < 10 ? ('0' + second) : second;
             this.time = y + '-' + m + '-' + d;
+            this.form.mTime = y + '-' + m + '-' + d + " " + h + ':' + minute + ':' + second;
+            this.value2 = y + '-' + m;
         },
+        // 娣诲姞
         hableadd() {
-            this.cateringList.push(this.form)
-            this.form = {}
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                    if (this.form.id != null) {
+                        this.timestampToTime(this.form.mTime)
+                        this.form.mDate = this.time
+                        this.form.userId = this.userId
+                        this.form.userName = this.userName
+                        eictmemo(this.form).then(res => {
+                            if (res.code == 200) {
+                                this.$modal.msgSuccess("淇敼鎴愬姛");
+                                this.form = {}
+                                this.monthdon()
+                            }
+                        })
+                    } else {
+                        this.timestampToTime(this.form.mTime)
+                        this.form.mDate = this.time
+                        this.form.userId = this.userId
+                        this.form.userName = this.userName
+                        memo(this.form).then(res => {
+                            if (res.code == 200) {
+                                this.$modal.msgSuccess("鏂板鎴愬姛");
+                                this.form = {}
+                                this.monthdon()
+                            }
+                        })
+                    }
+                }
+            });
         },
         cancel() {
             this.open = false
         },
+        hablecon() {
+            this.form = {}
+        },
         submitForm() {
 
         },
-        handleDelete1(row) {
-            this.cateringList.splice(row, 1)
+        handleUpdate(row) {
+            this.form = row
+            this.title = "淇敼鏃ヨ鍒�"
         },
-      
-
+        handleDelete1(row) {
+            let id = row.id
+            delememo(id).then(res => {
+                if (res.code == 200) {
+                    this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+                    this.monthdon()
+                }
+            })
+        },
     }
 }
 </script>
@@ -242,4 +360,24 @@
 input[type='number'] {
     -moz-appearance: textfield;
 }
+
+.main-cd .is-selected .el-tooltip {
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
+}
+
+.el-calendar-table .el-calendar-day {
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    padding: 8px;
+    height: 92px;
+    position: relative;
+
+    text-align: justify;
+
+    overflow: hidden;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0