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