liuhj 3 days ago
parent
commit
645efec16f
2 changed files with 395 additions and 0 deletions
  1. 389 0
      src/components/OP/mealrecord.vue
  2. 6 0
      src/router/index.js

+ 389 - 0
src/components/OP/mealrecord.vue

@@ -0,0 +1,389 @@
+<template>
+    <div class="mealrecord-all">
+        <el-dialog class="mealrecord-dialog" width="800px" title="餐食信息" :visible.sync="mealrecordVisible">
+            <el-form :model="mealrecordfrom" :rules="mealrecordfromrules" ref="mealrecordfrom" label-width="100px"
+                class="demo-ruleForm">
+                <el-form-item label="日期" prop="date">
+                    <el-date-picker type="date" placeholder="选择日期" v-model="mealrecordfrom.date"
+                        style="width: 100%;"></el-date-picker>
+                </el-form-item>
+                <el-form-item label="类型" prop="type">
+                    <el-select @change="typechange" style="width: 100%;" clearable v-model="mealrecordfrom.type" placeholder="餐类型">
+                        <el-option v-for="item in mealType" :key="item.id" :label="item.name" :value="item.id">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="开始时间" prop="startTime">
+                    <el-time-picker format="HH:mm" value-format="HH:mm" placeholder="选择时间" v-model="mealrecordfrom.startTime"
+                        style="width: 100%;"></el-time-picker>
+                </el-form-item>
+                <el-form-item label="结束时间">
+                    <el-time-picker format="HH:mm" value-format="HH:mm" placeholder="选择时间" v-model="mealrecordfrom.endTime"
+                        style="width: 100%;"></el-time-picker>
+                </el-form-item>
+                <el-form-item label="餐厅名称" prop="name">
+                    <el-input style="width: 100%;" v-model="mealrecordfrom.name"></el-input>
+                </el-form-item>
+                <el-form-item label="餐厅电话" prop="tel">
+                    <el-input style="width: 100%;" v-model="mealrecordfrom.tel"></el-input>
+                </el-form-item>
+                <el-form-item style="width: 100%;" label="餐厅地址" prop="address">
+                    <el-input style="width: 100%;" v-model="mealrecordfrom.address"></el-input>
+                </el-form-item>
+                <el-form-item style="width: 100%;" label="备注">
+                    <el-input style="width: 100%;" type="textarea" v-model="mealrecordfrom.remark"></el-input>
+                  </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="RestaurantOp('mealrecordfrom')">保 存</el-button>
+                <el-button @click="mealrecordVisible = false">取 消</el-button>
+            </div>
+        </el-dialog>
+        <div class="mealrecord-head">
+            <div class="mealrecord-head-li">
+                <el-select @change="groupDatachange" style="width:200px" filterable v-model="diId" placeholder="请选择团组">
+                    <el-option v-for="item in groupData" :key="item.id" :label="item.groupName" :value="item.id">
+                    </el-option>
+                </el-select>
+            </div>
+            <div class="mealrecord-head-li">
+                <el-button @click="addmealrecord" type="primary">新 增</el-button>
+            </div>
+        </div>
+        <div class="mealrecord-table">
+            <el-table :data="tableData" border style="width: 100%">
+                <el-table-column prop="date" label="日期" width="180">
+                </el-table-column>
+                <el-table-column prop="startTime" label="开始时间" width="80">
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="80">
+                </el-table-column>
+                <el-table-column prop="type" label="类型" width="80">
+                </el-table-column>
+                <el-table-column prop="name" label="餐厅名称" width="200">
+                </el-table-column>
+                <el-table-column prop="tel" label="餐厅联系电话" width="100">
+                </el-table-column>
+                <el-table-column prop="address" label="餐厅地址" width="250">
+                </el-table-column>
+                <el-table-column prop="createUserName" label="录入人" width="80">
+                </el-table-column>
+                <el-table-column prop="remark" label="备注">
+                </el-table-column>
+                <el-table-column prop="createUserName" label="操作" width="200">
+                    <template slot-scope="scope">
+                        <el-button size="mini" @click="redactclick(scope.$index, scope.row)"
+                            type="primary">编辑</el-button>
+                        <el-button size="mini" @click="deleteclick(scope.$index, scope.row)"
+                            type="danger">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            token:'',
+            userid:'',
+            groupData:[],
+            mealType:[],
+            diId:'',
+            mealId:'',
+            tableData:[],
+            mealrecordVisible:false,
+            mealrecordfrom:{
+                id:0,
+                date:'',
+                startTime:'',
+                endTime:'',
+                type:'',
+                name:'',
+                tel:'',
+                address:'',
+                remark:'',
+                currUserId:'',
+                status:'',
+            },
+            mealrecordfromrules: {
+                date: [
+                    { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
+                ],
+                startTime: [
+                    {  required: true, message: '请选择时间', trigger: 'blur' }
+                ],
+                endTime: [
+                    {  required: true, message: '请选择时间', trigger: 'blur' }
+                ],
+                type: [
+                    {  required: true, message: '请选择类型', trigger: 'change' }
+                ],
+                name: [
+                    { required: true, message: '请填写', trigger: 'blur' }
+                ],
+                tel: [
+                    { required: true, message: '请填写', trigger: 'blur' }
+                ],
+                address: [
+                    { required: true, message: '请填写', trigger: 'blur' }
+                ],
+            }
+        }
+    },
+    methods:{
+        //处理日期
+        dateday(val) {
+            var date = new Date(val);
+            var y = date.getFullYear();
+            var m = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1).toString();
+            var d = date.getDate() >= 10 ? date.getDate() : '0' + (date.getDate()).toString();
+            return y + '-' + m + '-' + d
+        },
+        //处理时间
+        disposeTime(val){
+            var date = new Date(val);
+            var hh = date.getHours();
+            hh = hh < 10 ? ('0' + hh) : hh;
+            var mm = date.getMinutes();
+            mm = mm < 10 ? ('0' + mm) : mm;
+            let time = hh+':'+mm
+            return time
+        },
+        //获取基础数据
+        RestaurantInit() {
+            var that = this
+            var url = "/api/Groups/RestaurantInit"
+            this.$axios({
+                method: 'get',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    var restaurantInit=res.data.data;
+                    that.groupData=restaurantInit.groupData;
+                    if (that.diId=='') {
+                        that.diId=that.groupData[0].id
+                    }
+                    that.mealType=restaurantInit.mealType;
+                    that.RestaurantItem();
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        //获取表格
+        RestaurantItem() {
+            var restaurantItem=[];
+            this.tableData=[];
+            var that = this
+            var url = "/api/Groups/RestaurantItem"
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data:{
+                    portType:1,
+                    groupId:that.diId,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    restaurantItem=res.data.data;
+                    that.tableData=restaurantItem;
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        //新增
+        addmealrecord(){
+            this.mealrecordVisible=true;
+            this.mealrecordfrom={
+                id:0,
+                date:'',
+                startTime:'',
+                endTime:'',
+                type:'',
+                name:'',
+                tel:'',
+                address:'',
+                remark:'',
+                currUserId:'',
+                status:'',
+            }
+        },
+        //类型切换
+        typechange(val){
+            console.log(val);
+            this.mealrecordfrom.startTime="";
+            for (let y = 0; y < this.mealType.length; y++) {
+                if (this.mealType[y].id==val) {
+                    this.mealrecordfrom.startTime=this.mealType[y].defaultStartTime;               
+                }
+            }
+        },
+        //餐食保存api
+        RestaurantOp(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    
+                    var status
+                    if (this.mealrecordfrom.id == 0) {
+                        status = 1
+                    } else {
+                        status = 2
+                    }
+                    var that = this
+                    var url = "/api/Groups/RestaurantOp"
+                    this.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: {
+                            id: that.mealrecordfrom.id,
+                            groupId: that.diId,
+                            date: that.dateday(that.mealrecordfrom.date),
+                            startTime: that.mealrecordfrom.startTime,
+                            endTime:  that.mealrecordfrom.endTime,
+                            type: that.mealrecordfrom.type,
+                            name: that.mealrecordfrom.name,
+                            tel: that.mealrecordfrom.tel,
+                            address: that.mealrecordfrom.address,
+                            remark: that.mealrecordfrom.remark,
+                            currUserId: that.userid,
+                            status: status,
+                        }
+                    }).then(function (res) {
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: res.data.msg,
+                                type: 'success',
+                            });
+                            that.mealrecordVisible = false;
+                            that.RestaurantItem();
+                        } else {
+                            that.$message.error(res.data.msg);
+                        }
+                    })
+                } else {
+                    return false;
+                }
+            });
+
+        },
+        //团组切换
+        groupDatachange(val){
+            this.RestaurantItem();
+        },
+        
+        //编辑
+        redactclick(index,row){
+            var that = this
+            var url = "/api/Groups/RestaurantInfo"
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data:{
+                    portType:1,
+                    id:row.id,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    var restaurantInfo=res.data.data;
+                    that.mealrecordfrom.id=restaurantInfo.id;
+                    that.mealrecordfrom.date=new Date(restaurantInfo.date);
+                    that.mealrecordfrom.startTime=restaurantInfo.startTime;
+                    that.mealrecordfrom.endTime=restaurantInfo.endTime;
+                    that.mealrecordfrom.type=restaurantInfo.type;
+                    that.mealrecordfrom.name=restaurantInfo.name;
+                    that.mealrecordfrom.tel=restaurantInfo.tel;
+                    that.mealrecordfrom.address=restaurantInfo.address;
+                    that.mealrecordfrom.remark=restaurantInfo.remark;
+                    that.mealrecordVisible=true;
+                    
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        //删除
+        deleteclick(index,row){
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var that = this
+                var url = "/api/Groups/RestaurantDel"
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + that.token
+                    },
+                    data:{
+                        portType:1,
+                        id:row.id,
+                        deleteUserId:that.userid,
+                    }
+                }).then(function (res) {
+                    if (res.data.code == 200) {
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success',
+                        });
+                        that.RestaurantItem();
+                    } else {
+                        that.$message.error(res.data.msg);
+                    }
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+            
+        }
+    },
+    mounted(){
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.RestaurantInit();
+    }
+}
+</script>
+<style>
+.mealrecord-all {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    min-height: 830px;
+}
+.mealrecord-head{
+    display: flex;
+    justify-content: space-between;
+}
+.mealrecord-table{
+    margin-top: 15px;
+}
+.mealrecord-dialog .el-form-item{
+    width: 48%;
+}
+.mealrecord-dialog .el-form{
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+}
+</style>

+ 6 - 0
src/router/index.js

@@ -130,6 +130,7 @@ import PerformanceT from '@/components/Resource/PerformanceT';
 import InsCountry from '@/components/Resource/InsCountry';
 import WorldMap from '@/components/ConferenceModule/WorldMap';
 import EntryDetailsdraft from '@/components/OP/EntryDetailsdraft';
+import mealrecord from '@/components/OP/mealrecord';
 
 Vue.use(Router)
 
@@ -781,6 +782,11 @@ export default new Router({
           name: 'EntryDetailsdraft',
           component: EntryDetailsdraft
         },
+        {
+          path: '/home/mealrecord',
+          name: 'mealrecord',
+          component: mealrecord
+        },
       ]
     },
     {