Ver Fonte

修改华龙网样式,修改食堂样式,食堂增加接口

wrh há 2 anos atrás
pai
commit
a7df312c07
20 ficheiros alterados com 464 adições e 111 exclusões
  1. 15 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/controller/CanteenController.java
  2. 13 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/controller/FoodController.java
  3. 2 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/dao/CanteenDao.java
  4. 2 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/dao/FoodDao.java
  5. 1 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/dao/SupplyTimeDao.java
  6. 1 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/service/CanteenService.java
  7. 2 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/service/FoodService.java
  8. 13 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/CanteenServiceImpl.java
  9. 8 0
      nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/FoodServiceImpl.java
  10. 10 10
      nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/MenuServiceImpl.java
  11. 9 0
      nngkxxdp/src/main/resources/mapper/CanteenDao.xml
  12. 6 0
      nngkxxdp/src/main/resources/mapper/FoodDao.xml
  13. 8 3
      nngkxxdp/src/main/resources/mapper/MenuDao.xml
  14. 10 0
      nngkxxdp/src/main/resources/mapper/SupplyTimeDao.xml
  15. 12 4
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/api/index.js
  16. 14 38
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/EvaluationManage.vue
  17. 149 21
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/Menu.vue
  18. 1 1
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/SupplyTimeManage.vue
  19. 2 2
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/Column.vue
  20. 186 32
      nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/HuaLongData.vue

+ 15 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/controller/CanteenController.java

@@ -47,6 +47,21 @@ public class CanteenController {
     }
 
     /**
+     * description: 查询对应Id的食堂
+     * @author wrh
+     * @date 2022/9/6 11:58
+     * @param canteenId 食堂id
+     * @return java.util.Map<java.lang.String,java.lang.Object>
+     */
+    @GetMapping("/detail")
+    public Map<String,Object> detail(String canteenId) {
+        if (Blank.isEmpty(canteenId)) {
+            return SendUtil.send(false, ConstStr.REQUEST_WRONGPARAMS);
+        }
+        return canteenService.detail(canteenId);
+    }
+
+    /**
      * description: 新增
      * @author zwq
      * @date 2022/9/2 15:51

+ 13 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/controller/FoodController.java

@@ -58,6 +58,19 @@ public class FoodController {
         return SendUtil.send(false, ConstStr.DATA_NOT_FOUND);
     }
 
+    @GetMapping("/getFoodFromCanteen")
+    public Map<String, Object> getFoodByCanteenId(String canteenId) {
+        try {
+            if (Blank.isEmpty(canteenId)) {
+                return SendUtil.send(false, "", "id为空");
+            }
+            return foodService.getFoodFromCanteen(canteenId);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return SendUtil.send(false, ConstStr.DATA_NOT_FOUND);
+    }
+
     @GetMapping("/getFoodPicByPicId")
     public Map<String, Object> getFoodPicByPicId(String picId) {
         try {

+ 2 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/dao/CanteenDao.java

@@ -73,5 +73,7 @@ public interface CanteenDao {
      */
     Integer deleteSCanteenById(@Param("id") String id);
 
+    Map<String, Object> detail(String canteenId);
+
     List<CanteenNeDO> getAllCanteen();
 }

+ 2 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/dao/FoodDao.java

@@ -25,4 +25,6 @@ public interface FoodDao {
     int deleteFoodById(String id);
 
     List<Map<String, Object>> getFoodPicByPicId(String[] picId);
+
+    List<Map<String, Object>> getFoodFromCanteen(String canteenId);
 }

+ 1 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/dao/SupplyTimeDao.java

@@ -82,4 +82,5 @@ public interface SupplyTimeDao {
      */
     Integer deleteSupplyTimeById(@Param("id") String id);
 
+    List<Map<String, Object>> getListById(String[] ids);
 }

+ 1 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/service/CanteenService.java

@@ -66,4 +66,5 @@ public interface CanteenService {
 
     List<CanteenNeDO> all();
 
+    Map<String, Object> detail(String canteenId);
 }

+ 2 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/service/FoodService.java

@@ -23,4 +23,6 @@ public interface FoodService {
     Map<String, Object> deleteFoodById(String id, String picId);
 
     List<Map<String, Object>> getFoodPicByPicId(String picId);
+
+    Map<String, Object> getFoodFromCanteen(String canteenId);
 }

+ 13 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/CanteenServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.lang.UUID;
 import com.example.nngkxxdp.dao.CanteenDao;
 import com.example.nngkxxdp.dao.FileDao;
+import com.example.nngkxxdp.dao.SupplyTimeDao;
 import com.example.nngkxxdp.entity.CanteenDO;
 import com.example.nngkxxdp.entity.CanteenNeDO;
 import com.example.nngkxxdp.entity.SFile;
@@ -34,6 +35,9 @@ public class CanteenServiceImpl implements CanteenService {
     private CanteenDao canteenDao;
 
     @Resource
+    private SupplyTimeDao supplyTimeDao;
+
+    @Resource
     private FileDao fileDao;
 
     @Value("${file.location}")
@@ -230,4 +234,13 @@ public class CanteenServiceImpl implements CanteenService {
         List<CanteenNeDO> canteenNeDOS =  canteenDao.getAllCanteen();
         return canteenNeDOS;
     }
+
+    @Override
+    public Map<String, Object> detail(String canteenId) {
+        Map<String, Object> detail = canteenDao.detail(canteenId);
+        String supplyTimeId = (String) detail.get("supplyTimeId");
+        List<Map<String, Object>> time = supplyTimeDao.getListById(supplyTimeId.split(","));
+        detail.put("supplyTime", time);
+        return detail;
+    }
 }

+ 8 - 0
nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/FoodServiceImpl.java

@@ -95,6 +95,9 @@ public class FoodServiceImpl implements FoodService {
         if (Blank.isEmpty(food.getDishesName()) || food.getDishesName().length() > 64) {
             return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空或参数不能大于64字符");
         }
+        if (Blank.isEmpty(food.getCanteenId())) {
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
+        }
         if (Blank.isEmpty(food.getTypeId())) {
             return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
         }
@@ -201,4 +204,9 @@ public class FoodServiceImpl implements FoodService {
     public List<Map<String, Object>> getFoodPicByPicId(String picId) {
         return foodDao.getFoodPicByPicId(picId.split(","));
     }
+
+    @Override
+    public Map<String, Object> getFoodFromCanteen(String canteenId) {
+        return SendUtil.send(true, null, foodDao.getFoodFromCanteen(canteenId));
+    }
 }

+ 10 - 10
nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/MenuServiceImpl.java

@@ -1,6 +1,5 @@
 package com.example.nngkxxdp.service.impl;
 
-import cn.hutool.core.codec.Base64;
 import cn.hutool.core.lang.UUID;
 import com.example.nngkxxdp.dao.MenuDao;
 import com.example.nngkxxdp.entity.Menu;
@@ -11,7 +10,6 @@ import com.example.nngkxxdp.util.SendUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -26,6 +24,9 @@ public class MenuServiceImpl implements MenuService {
 
     @Override
     public Map<String, Object> saveMenu(Menu menu) {
+        if (Blank.isEmpty(menu.getCanteenId())) {
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
+        }
         if (Blank.isEmpty(menu.getDate())) {
             return SendUtil.send(false, ConstStr.ADD_FAILED, "参数不能为空");
         }
@@ -36,7 +37,6 @@ public class MenuServiceImpl implements MenuService {
             return SendUtil.send(false, ConstStr.ADD_FAILED, "参数不能为空");
         }
         menu.setId(UUID.randomUUID().toString());
-        menu.setDishesList(Base64.encode(menu.getDishesList()));
         if (menuDao.saveMenu(menu) <= 0) {
             return SendUtil.send(false, ConstStr.ADD_FAILED, "");
         }
@@ -46,16 +46,18 @@ public class MenuServiceImpl implements MenuService {
 
     @Override
     public Map<String, Object> updateMenu(Menu menu) {
+        if (Blank.isEmpty(menu.getCanteenId())) {
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
+        }
         if (Blank.isEmpty(menu.getDate())) {
-            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "日期不能为空");
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
         }
         if (Blank.isEmpty(menu.getDishesList())) {
-            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "菜品列表JSON的base64码不能为空");
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
         }
         if (Blank.isEmpty(menu.getFounder())) {
-            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "创建人不能为空");
+            return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "参数不能为空");
         }
-        menu.setDishesList(Base64.encode(menu.getDishesList()));
         if (menuDao.updateMenu(menu) <= 0) {
             return SendUtil.send(false, ConstStr.UPDATEUSER_FAILED, "");
         }
@@ -67,9 +69,7 @@ public class MenuServiceImpl implements MenuService {
         int startRows = (page - 1) * limit;
         int count = menuDao.getMenuCount();
         if (count > 0) {
-            List<Map<String, Object>> mapList = menuDao.getMenuPage(startRows, limit);
-            mapList.forEach(stringObjectMap -> stringObjectMap.replace("dishesList", Base64.decodeStr((CharSequence) stringObjectMap.get("dishesList"))));
-            return SendUtil.layuiTable(count, mapList);
+            return SendUtil.layuiTable(count, menuDao.getMenuPage(startRows, limit));
         }
         return SendUtil.layuiTable(0, null);
     }

+ 9 - 0
nngkxxdp/src/main/resources/mapper/CanteenDao.xml

@@ -55,6 +55,15 @@
         ORDER BY s_canteen.update_time DESC
         LIMIT #{startRows}, #{limit}
     </select>
+    <select id="detail" resultType="java.util.Map">
+        select id,
+               canteen_name,
+               canteen_photo_path,
+               supply_time_id
+        from s_canteen
+        where isdel = 0
+              and id =#{canteenId}
+    </select>
 
     <!--新增所有列-->
     <insert id="addSCanteen">

+ 6 - 0
nngkxxdp/src/main/resources/mapper/FoodDao.xml

@@ -79,4 +79,10 @@
             #{id}
         </foreach>
     </select>
+    <select id="getFoodFromCanteen" resultType="java.util.Map">
+        select id,
+               dishes_name
+        from s_food
+        where canteen_id = #{canteenId} and isdel = 0
+    </select>
 </mapper>

+ 8 - 3
nngkxxdp/src/main/resources/mapper/MenuDao.xml

@@ -3,8 +3,9 @@
 <mapper namespace="com.example.nngkxxdp.dao.MenuDao">
 
     <insert id="saveMenu">
-        insert into s_menu (id, `date`, dishes_list, founder, create_time, update_time)
+        insert into s_menu (id,canteen_id, `date`, dishes_list, founder, create_time, update_time)
         values (#{id},
+                #{canteenId},
                 #{date},
                 #{dishesList},
                 #{founder},
@@ -13,7 +14,8 @@
     </insert>
     <update id="updateMenu">
         UPDATE s_menu
-        SET `date`=#{date},
+        SET canteen_id=#{canteenId},
+            `date`=#{date},
             dishes_list=#{dishesList},
             founder=#{founder},
             update_time=now()
@@ -33,14 +35,17 @@
     </select>
     <select id="getMenuPage" resultType="java.util.Map">
         SELECT sm.id,
+        sm.canteen_id,
         sm.`date`,
         sm.dishes_list,
         sm.founder,
         sm.create_time,
         sm.update_time,
-        pu.user_name
+        pu.user_name,
+        sc.canteen_name
         FROM s_menu sm
         left join p_user pu on pu.id = sm.founder
+        left join s_canteen sc on sc.id = sm.canteen_id
         <where>
             sm.isdel = 0
             order by

+ 10 - 0
nngkxxdp/src/main/resources/mapper/SupplyTimeDao.xml

@@ -65,6 +65,16 @@
         </where>
         ORDER BY s_supply_time.supply_start_time
     </select>
+    <select id="getListById" resultType="java.util.Map">
+        select id,
+        CONCAT(supply_start_time, '-', supply_end_time) `time`
+        from s_supply_time
+        where isdel = 0
+        and id in
+        <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 
     <!--新增所有列-->
     <insert id="addSupplyTime">

+ 12 - 4
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/api/index.js

@@ -216,6 +216,10 @@ export default {
   getFoodPicByPicId(data) {
     return request.get('food/getFoodPicByPicId', data)
   },
+  // 根据食堂Id查询菜品信息
+  getFoodFromCanteen(data) {
+    return request.get('food/getFoodFromCanteen', data)
+  },
   // 新增菜品
   addFood(data) {
     return request.post('food/saveFood', data)
@@ -271,6 +275,14 @@ export default {
   canteenPage(data) {
     return request.get('canteen/page', data)
   },
+  // 查询所有食堂
+  allCanteen(data) {
+    return request.get('canteen/allCanteen', data)
+  },
+  // 查询食堂详细
+  canteenDetail(data) {
+    return request.get('canteen/detail', data)
+  },
   // 新增食堂
   addCanteen(data) {
     return request.post('canteen/add', data)
@@ -283,10 +295,6 @@ export default {
   deleteCanteenById(data) {
     return request.post('canteen/delete', data)
   },
-  // 查询所有食堂
-  allCanteen(data) {
-    return request.get('canteen/allCanteen', data)
-  },
   // 分页查询供应时间
   supplyTimePage(data) {
     return request.get('supplyTime/page', data)

+ 14 - 38
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/EvaluationManage.vue

@@ -23,10 +23,10 @@
       <el-table-column prop="canteenName" label="食堂名称" />
       <el-table-column prop="dishesName" label="菜品名称" />
       <!-- <el-table-column prop="userid" label="用户名" /> -->
-      <el-table-column prop="score" label="评分" width="70"/>
+      <el-table-column prop="score" label="评分" />
       <el-table-column prop="evaluation" label="评论" />
-      <el-table-column prop="createTime" label="创建时间" width="160"/>
-      <el-table-column prop="updateTime" label="更新时间" width="160"/>
+      <el-table-column prop="createTime" label="创建时间" />
+      <el-table-column prop="updateTime" label="更新时间" />
       <el-table-column label="操作" width="230">
         <template slot-scope="scope">
           <el-button class="but" type="primary" @click="info(scope.row)">详情</el-button>
@@ -57,48 +57,27 @@
       <div style="height: 65vh; overflow: auto; padding-right: 20px">
         <el-form :model="postManagement" label-width="140px">
           <el-row>
-            <el-col :span="12">
+            <el-col :span="14">
               <el-form-item label="食堂名称" prop="canteenName">
                 <el-input v-model="postManagement.canteenName" :readonly="true"></el-input>
               </el-form-item>
-            </el-col>
-            <el-col :span="12">
               <el-form-item label="菜品名称" prop="dishesName">
                 <el-input v-model="postManagement.dishesName" :readonly="true"></el-input>
               </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="12">
               <el-form-item label="评分" prop="score">
                 <el-input v-model="postManagement.score" :readonly="true"></el-input>
               </el-form-item>
-            </el-col>
-            <el-col :span="12">
-              <el-form-item label="评论人" prop="evaluation">
-                <el-input v-model="postManagement.score" :readonly="true"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
               <el-form-item label="评论" prop="evaluation">
-                <el-input type="textarea" v-model="postManagement.evaluation" :autosize="{ minRows: 4, maxRows: 6}" resize = "none" :readonly="true"></el-input>
+                <el-input v-model="postManagement.evaluation" :readonly="true"></el-input>
               </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form-item label="评论图" prop="evaluation">
-<!--                <div class="demo-image__preview" style="width: 100px;height: 100%">-->
-                  <el-image
-                    style="width:100px; height:100px;margin:0 5px 0 10px;" v-for="(urls,index) in photoUrl" :key="index" :src="urls" :preview-src-list="photoUrl"  >
-                  </el-image>
-<!--                </div>-->
+              <el-form-item label="创建时间" prop="createTime">
+                <el-input v-model="postManagement.createTime" :readonly="true"></el-input>
+              </el-form-item>
+              <el-form-item label="更新时间" prop="updateTime">
+                <el-input v-model="postManagement.updateTime" :readonly="true"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
-
         </el-form>
       </div>
       <div slot="footer" class="dialog-footer">
@@ -138,7 +117,6 @@ export default {
       postManagement: {
         dishesName: ''
       },
-      photoUrl:['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg','https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'],
       // 分页
       sorts: {
         page: 1,
@@ -195,8 +173,6 @@ export default {
     info(data) {
       this.workTitle = "详情";
       this.postManagement = JSON.parse(JSON.stringify(data));
-      console.log(data);
-      this.photoUrl = this.postManagement.photoPath;
       this.workDialog = true;
     },
     // 删除
@@ -278,7 +254,7 @@ export default {
 }
 
 /deep/ .el-dialog__body {
-  padding: 0 30px 30px 20px;
+  padding: 0 0 30px 20px;
   color: #606266;
   font-size: 14px;
   word-break: break-all;
@@ -322,9 +298,9 @@ export default {
 /deep/ .el-form-item__label {
   height: 40px;
   width: 110px;
-  //background-color: #FAFAFA;
+  background-color: #FAFAFA;
   text-align: center;
-  //border: 1px solid #DCDFE6;
+  border: 1px solid #DCDFE6;
   border-radius: 2px 0 0 2px;
 }
 
@@ -391,7 +367,7 @@ export default {
 }
 
 /deep/ [data-v-2cde7735] .el-form-item__label {
-  //border: 1px solid #DCDFE6;
+  border: 1px solid #DCDFE6;
   /*border-right: transparent;*/
 }
 

+ 149 - 21
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/Menu.vue

@@ -25,6 +25,7 @@
                 </template>
             </el-table-column>
             <el-table-column prop="date" label="日期" />
+            <el-table-column prop="canteenName" label="所属食堂" />
             <el-table-column prop="dishesList" :show-overflow-tooltip="true" label="菜品列表" />
             <el-table-column prop="userName" label="创建人" />
             <el-table-column prop="createTime" label="创建时间" />
@@ -53,8 +54,8 @@
                 <el-form :model="postManagement" label-width="140px">
                     <el-row>
                         <el-col :span="12">
-                            <el-form-item label="日期" prop="date">
-                                <el-date-picker v-model="postManagement.date" type="date" placeholder="请选择日期"
+                            <el-form-item label="供应日期" prop="date">
+                                <el-date-picker v-model="postManagement.date" type="date" placeholder="请选择供应日期"
                                     :picker-options="pickerOptions" value-format="yyyy-MM-dd" style="width: 100%">
                                 </el-date-picker>
                             </el-form-item>
@@ -62,9 +63,31 @@
                     </el-row>
                     <el-row>
                         <el-col :span="12">
+                            <el-form-item label="所属食堂" prop="canteenId">
+                                <el-select v-model="postManagement.canteenId" @change="canteenOptionsChange"
+                                    style="width: 100%" placeholder="请选择食堂">
+                                    <el-option v-for="item in canteenOptions" :key="item.value" :label="item.label"
+                                        :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row v-if="supplyTimeData.length > 0">
+                        <el-col :span="24">
+                            <el-form-item label="供应时间">
+                                <el-button @click="chooseSupplyTime(item,index)" v-for="(item,index) in supplyTimeData"
+                                    :key="item.id" :class="{timeActive:currentIndex === index}">{{item.time}}
+                                </el-button>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row v-if="foodList.length > 0">
+                        <el-col :span="24">
                             <el-form-item label="菜品列表" prop="dishesList">
-                                <el-input type="textarea" v-model="postManagement.dishesList" placeholder="请输入菜品列表">
-                                </el-input>
+                                <el-transfer v-model="chooseFood" :titles="['未选择', '已选择']" :data="foodList"
+                                    @change="transferChange">
+                                </el-transfer>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -99,7 +122,8 @@
     export default {
         name: 'Menu',
         created() {
-            this.getData()
+            this.getData();
+            this.getCanteenData();
         },
         data() {
             return {
@@ -112,6 +136,10 @@
                     officialAccount: '',
                     title: ''
                 },
+                // 食堂数据
+                canteenOptions: [],
+                // 供应时间数据
+                supplyTimeData: [],
                 // 列表数据
                 tableData: [],
                 // 总数
@@ -128,6 +156,15 @@
                         return time.getTime() > Date.now() - 8.64e6; //只能选择今天及今天之前的日期
                     }
                 },
+                // 菜单json数据
+                menuJson: [],
+                // 菜品列表
+                foodList: [],
+                // 选中的菜品
+                chooseFood: [],
+                currentIndex: -1,
+                // 食堂ID
+                canteenId: '',
                 // 上传文件界面
                 dialogVisible: false,
                 //新增/编辑界面
@@ -137,7 +174,8 @@
                 // 新增/编辑表单
                 postManagement: {
                     date: '',
-                    dishesList: ''
+                    dishesList: '',
+                    canteenId: ''
                 },
                 // 分页
                 sorts: {
@@ -151,8 +189,10 @@
             openAddWork() {
                 this.postManagement = {
                     date: '',
-                    dishesList: ''
+                    dishesList: '',
+                    canteenId: ''
                 };
+                this.supplyTimeData = [];
                 this.workTitle = '新增菜单'
                 this.workDialog = true;
             },
@@ -164,14 +204,32 @@
             },
             //保存
             saveWork() {
+                console.log(this.menuJson);
                 if (!this.postManagement.date) {
-                    this.$message.error('请输入日期!');
+                    this.$message.error('请选择供应日期!');
                     return;
                 }
-                if (!this.postManagement.dishesList) {
-                    this.$message.error('请输入菜品列表!');
+                if (!this.postManagement.canteenId) {
+                    this.$message.error('请选择所属食堂!');
                     return;
                 }
+                if (this.menuJson.length != this.supplyTimeData.length) {
+                    this.$message.error('每一个供应时间都需要填写菜品列表!');
+                    return;
+                } else {
+                    try {
+                        this.menuJson.forEach(item => {
+                            if (item.foodList.length == 0) {
+                                throw new Error("请选择菜品列表!")
+                            }
+                        })
+                    } catch (error) {
+                        console.log(error);
+                        this.$message.error(error);
+                        return;
+                    }
+                }
+                this.postManagement.dishesList = JSON.stringify(this.menuJson);
                 let founder = sessionStorage.getItem("pid");
                 if (!founder) {
                     this.$message.error('未获取到当前用户Id');
@@ -179,6 +237,7 @@
                 }
                 let fd = new FormData();
                 fd.append('date', this.postManagement.date);
+                fd.append('canteenId', this.postManagement.canteenId);
                 fd.append('dishesList', this.postManagement.dishesList);
                 fd.append('founder', founder);
                 if (this.workTitle == '编辑菜单') {
@@ -195,17 +254,17 @@
                         this.$message.error("编辑失败");
                     })
                 } else {
-                    api.addMenu(fd).then(r => {
-                        if (r.data.result) {
-                            this.$message.success('新增成功');
-                            this.getData();
-                            this.workDialog = false;
-                        } else {
-                            this.$message.error("新增失败");
-                        }
-                    }).catch(() => {
-                        this.$message.error("新增失败");
-                    })
+                    // api.addMenu(fd).then(r => {
+                    //     if (r.data.result) {
+                    //         this.$message.success('新增成功');
+                    //         this.getData();
+                    //         this.workDialog = false;
+                    //     } else {
+                    //         this.$message.error("新增失败");
+                    //     }
+                    // }).catch(() => {
+                    //     this.$message.error("新增失败");
+                    // })
                 }
             },
             //切换列表条数
@@ -336,6 +395,69 @@
                     ['日期', '菜品列表']
                 ] // 表头中文名
                 this.exportExcel('example', titleArr, 'sheet1')
+            },
+            // 获取食堂信息数据
+            getCanteenData() {
+                api.allCanteen().then(r => {
+                    this.canteenOptions = r.data.data.map(item => {
+                        return {
+                            value: item.id,
+                            label: item.canteenName
+                        }
+                    })
+                })
+            },
+            // 获取对应食堂的供应时间
+            canteenOptionsChange(value) {
+                this.foodList = [];
+                this.menuJson = [];
+                this.currentIndex = -1;
+                this.canteenId = value;
+                let params = {
+                    canteenId: value
+                }
+                api.canteenDetail({
+                    params
+                }).then(r => {
+                    this.supplyTimeData = r.data.supplyTime;
+                })
+            },
+            // 选择供应时间
+            chooseSupplyTime(data, index) {
+                this.currentIndex = index;
+                // 为空时新增对应数据
+                if (this.menuJson[index] == null) {
+                    this.menuJson[index] = {
+                        supplyTimeId: data.id,
+                        foodList: []
+                    }
+                }
+                // 获取对应食堂菜品数据
+                if (this.foodList != 0) {
+                    this.chooseFood = this.menuJson[index].foodList;
+                } else {
+                    this.getFoodFromCanteen();
+                }
+            },
+            // 穿梭框更新
+            transferChange(value, direction, movedKeys) {
+                this.menuJson[this.currentIndex].foodList = value;
+            },
+            // 获取对应食堂的菜品
+            getFoodFromCanteen() {
+                let params = {
+                    canteenId: this.canteenId
+                }
+                api.getFoodFromCanteen({
+                    params
+                }).then(r => {
+                    this.foodList = r.data.data.map(item => {
+                        return {
+                            key: item.id,
+                            label: item.dishesName
+                        }
+                    });
+                })
             }
         },
     }
@@ -492,4 +614,10 @@
         border-left: transparent;
         background-color: #FAFAFA;
     }
+
+    // 选择对应供应时间
+    .timeActive {
+        background-color: #ecf5ff;
+        color: #409EFF;
+    }
 </style>

+ 1 - 1
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/canteen/SupplyTimeManage.vue

@@ -63,7 +63,7 @@
 		</template>
       </el-table-column>
       <el-table-column prop="founder" label="创建人" />
-      <el-table-column prop="createTime" label="创建时间" width="160" />
+      <el-table-column prop="createTime" label="创建时间" />
       <el-table-column label="操作" width="230">
         <template slot-scope="scope">
           <el-button

+ 2 - 2
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/Column.vue

@@ -106,7 +106,7 @@
                 :cell-style="tableStyle" style="cursor: default">
                 <el-table-column width="50" label="序号">
                     <template slot-scope="scope">
-                        {{ (sorts.page - 1) * sorts.limit + scope.$index + 1 }}
+                        {{ (columnSorts.page - 1) * columnSorts.limit + scope.$index + 1 }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="chnlid" label="栏目ID" />
@@ -142,7 +142,7 @@
                 :cell-style="tableStyle" style="cursor: default">
                 <el-table-column width="50" label="序号">
                     <template slot-scope="scope">
-                        {{ (sorts.page - 1) * sorts.limit + scope.$index + 1 }}
+                        {{ (deptSorts.page - 1) * deptSorts.limit + scope.$index + 1 }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="deptname" label="部门名称" />

+ 186 - 32
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/HuaLongData.vue

@@ -5,17 +5,14 @@
             <div class="query-input">
                 <el-input v-model="form.id" placeholder="请输入栏目ID" style="margin-right: 10px;width: 20%;"></el-input>
                 <el-input v-model="form.name" placeholder="请输入栏目名称" style="margin-right: 10px;width: 20%;"></el-input>
-                <el-input v-model="form.title" placeholder="请输入文章标题" style="margin-right: 10px;width: 30%;"></el-input>
+                <el-input v-model="form.title" placeholder="请输入文章标题" style="margin-right: 10px;width: 22%;"></el-input>
                 <!-- <el-input v-model="form.updatatime" placeholder="请输入发布时间" style="margin-right: 10px"></el-input> -->
-                <el-date-picker
-                    v-model="form.updatatime"
-                    type="date"
-                    :clearable="false"
-                    placeholder="请输入发布时间"
-                    value-format="yyyy-MM-dd"
-                    style="margin-right: 10px;width: 48%;">
+                <el-date-picker v-model="form.updatatime" type="date" :clearable="false" placeholder="请输入发布时间"
+                    value-format="yyyy-MM-dd" style="margin-right: 10px;width: 26%;">
                 </el-date-picker>
-                <el-input v-model="form.url" placeholder="请输入文章链接" style="margin-right: 10px;width: 50%;"></el-input>
+                <el-input v-model="form.url" placeholder="请输入文章链接" style="margin-right: 10px;width: 23%;"></el-input>
+                <el-input v-model="form.deptname" @focus="deptInfo" placeholder="请输入部门"
+                    style="margin-right: 10px;width: 18%;"></el-input>
             </div>
             <div class="query-button">
                 <el-button type="primary" @click="serachWork">搜索</el-button>
@@ -24,16 +21,18 @@
         </div>
         <!--        表格-->
         <div>
-            <el-table :data="hualongData" ref='multipleTable'  style="width: 100%" :height="tabH" border stripe
-                      :header-cell-style="tableHeadStyle" :cell-style="cellStyle">
+            <el-table :data="hualongData" ref='multipleTable' style="width: 100%" :height="tabH" border stripe
+                :header-cell-style="tableHeadStyle" :cell-style="cellStyle">
                 <el-table-column width="60" label="序号">
                     <template slot-scope="scope">
                         {{(currentPage - 1) * pageSize + scope.$index + 1}}
                     </template>
                 </el-table-column>
                 <el-table-column label="栏目ID" width="80" prop="chnlid" :show-overflow-tooltip="true"></el-table-column>
-                <el-table-column label="栏目名称" width="140" prop="channelname" :show-overflow-tooltip="true"></el-table-column>
-                <el-table-column label="视图名" width="110" prop="viewname" :show-overflow-tooltip="true"></el-table-column>
+                <el-table-column label="栏目名称" width="140" prop="channelname" :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column label="视图名" width="110" prop="viewname" :show-overflow-tooltip="true">
+                </el-table-column>
                 <el-table-column label="文章标题" prop="doctitle" :show-overflow-tooltip="true"></el-table-column>
                 <el-table-column label="文章链接" prop="docpuburl" :show-overflow-tooltip="true" slot="default">
                     <template slot-scope="scope">
@@ -53,10 +52,51 @@
         <!--        分页-->
         <div>
             <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                           :current-page="currentPage" :page-sizes="[20, 50, 100, 200, 500]" :page-size="pageSize"
-                           layout="prev, pager,next,jumper,total,sizes" :total="total">
+                :current-page="currentPage" :page-sizes="[20, 50, 100, 200, 500]" :page-size="pageSize"
+                layout="prev, pager,next,jumper,total,sizes" :total="total">
             </el-pagination>
         </div>
+        <!--部门信息-->
+        <el-dialog :visible.sync="deptVisible" :show-close="false" :append-to-body="true"
+            style="margin: 10px auto!important" width="80%" top="10px">
+            <div slot="title">
+                <div class="addTitle">部门信息</div>
+            </div>
+            <el-button style="float: left" type="primary" @click="deptVisible = false">返回</el-button>
+            <div style="float: right;margin-bottom: 10px;margin-right: 10px">
+                <el-input v-model.trim="deptSorts.deptName" clearable placeholder="请输入部门名称"
+                    style="margin: 0 10px;width: 200px" />
+                <el-button type="primary" class="search" @click="searchDept">搜索</el-button>
+                <el-button type="primary" class="search" @click="resetDept" style="margin-left: 5px">重置</el-button>
+            </div>
+            <el-table :data="deptData" border ref='deptTable' stripe height="475px"
+                :header-cell-style="{ background: '#e5e8ed', color: '#666', textAlign: 'center' }"
+                :cell-style="tableStyle" style="cursor: default">
+                <el-table-column width="50" label="序号">
+                    <template slot-scope="scope">
+                        {{ (deptSorts.page - 1) * deptSorts.limit + scope.$index + 1 }}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="deptname" label="部门名称" />
+                <el-table-column prop="deptUrl" label="部门网址" />
+                <el-table-column prop="sortid" label="部门分类" width="110">
+                    <template slot-scope="scope">
+                        {{scope.row.sortid ? '部门' : '街镇'}}
+                    </template>
+                </el-table-column>
+                <el-table-column label="操作" width="100px">
+                    <template slot-scope="scope">
+                        <el-button class="but" type="primary" @click="chooseDept(scope.row)">选择</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <div>
+                <el-pagination @size-change="deptSizeChange" @current-change="deptCurrentChange"
+                    :current-page="deptSorts.page" :page-sizes="[10, 20, 30, 40, 50]" :page-size="deptSorts.limit"
+                    layout="prev, pager,next,jumper,total,sizes" :total="deptTotal">
+                </el-pagination>
+            </div>
+        </el-dialog>
     </div>
 </template>
 
@@ -67,6 +107,9 @@
         name: "HuaLongData",
         data() {
             return {
+                tableStyle: {
+                    textAlign: 'center',
+                },
                 label: "华龙网数据",
                 tabH: 'calc(100vh - 210px)',
                 hualongData: [],
@@ -80,16 +123,30 @@
                 cellStyle: {
                     textAlign: 'center',
                 },
-                form:{
+                form: {
                     id: '',
                     name: '',
                     title: '',
                     updatatime: '',
-                    url: ''
+                    url: '',
+                    deptid: '',
+                    deptname: ''
                 },
-                title:null,
-                time:null,
-                name:null,
+                title: null,
+                time: null,
+                name: null,
+                // 部门信息界面
+                deptVisible: false,
+                // 部门总数
+                deptTotal: 0,
+                // 部门信息数据
+                deptData: [],
+                // 部门信息分页
+                deptSorts: {
+                    page: 1,
+                    limit: 10,
+                    deptName: ''
+                }
             }
         },
         mounted() {
@@ -101,18 +158,23 @@
                     page: this.currentPage,
                     limit: this.pageSize
                 }
-                api.getHualongData({params}).then(r => {
+                api.getHualongData({
+                    params
+                }).then(r => {
                     this.hualongData = r.data.data
                     this.total = r.data.count
                 })
             },
             hualongDetail(data) {
-                this.hualongDetailData = {...data}
+                this.hualongDetailData = {
+                    ...data
+                }
             },
             //显示每条数据
             handleSizeChange(val) {
                 this.pageSize = val
-                if ((this.form.id == '' && this.form.name == '') && (this.form.title == '' && this.form.updatatime == '') && this.form.url == '') {
+                if ((this.form.id == '' && this.form.name == '') && (this.form.title == '' && this.form.updatatime ==
+                        '') && this.form.url == '') {
                     this.getHLData();
                 } else {
                     this.$refs.multipleTable.clearSort()
@@ -123,9 +185,12 @@
                         channelName: this.form.name,
                         docTitle: this.form.title,
                         docrelTime: this.form.updatatime,
-                        docpubUrl: this.form.url
+                        docpubUrl: this.form.url,
+                        deptid: this.form.deptid
                     };
-                    api.queryHualongNetwork({params}).then(res => {
+                    api.queryHualongNetwork({
+                        params
+                    }).then(res => {
                         this.total = res.data.count
                         this.hualongData = res.data.data
                     });
@@ -135,7 +200,8 @@
             handleCurrentChange(val) {
                 this.$refs.multipleTable.bodyWrapper.scrollTop = 0;
                 this.currentPage = val;
-                if ((this.form.id == '' && this.form.name == '') && (this.form.title == '' && this.form.updatatime == '') && this.form.url == '') {
+                if ((this.form.id == '' && this.form.name == '') && (this.form.title == '' && this.form.updatatime ==
+                        '') && this.form.url == '') {
                     this.getHLData();
                 } else {
                     this.$refs.multipleTable.clearSort()
@@ -146,9 +212,12 @@
                         channelName: this.form.name,
                         docTitle: this.form.title,
                         docrelTime: this.form.updatatime,
-                        docpubUrl: this.form.url
+                        docpubUrl: this.form.url,
+                        deptid: this.form.deptid
                     };
-                    api.queryHualongNetwork({params}).then(res => {
+                    api.queryHualongNetwork({
+                        params
+                    }).then(res => {
                         this.total = res.data.count
                         this.hualongData = res.data.data
                     });
@@ -164,9 +233,12 @@
                     channelName: this.form.name,
                     docTitle: this.form.title,
                     docrelTime: this.form.updatatime,
-                    docpubUrl: this.form.url
+                    docpubUrl: this.form.url,
+                    deptid: this.form.deptid
                 }
-                api.queryHualongNetwork({params}).then(res => {
+                api.queryHualongNetwork({
+                    params
+                }).then(res => {
                     this.total = res.data.count
                     this.hualongData = res.data.data
                 })
@@ -178,13 +250,67 @@
                 this.form.title = ''
                 this.form.updatatime = ''
                 this.form.url = ''
+                this.form.deptid = ''
+                this.form.deptname = ''
                 this.getHLData()
-            }
+            },
+            // 查看部门信息
+            deptInfo() {
+                this.deptVisible = true;
+                this.deptSorts.page = 1;
+                this.deptSorts.limit = 10;
+                this.deptSorts.deptName = '';
+                this.getDeptData();
+            },
+            // 获取部门信息数据
+            getDeptData() {
+                let params = {
+                    page: this.deptSorts.page,
+                    limit: this.deptSorts.limit,
+                    deptName: this.deptSorts.deptName
+                }
+                api.getDeptPage({
+                    params
+                }).then(r => {
+                    this.deptTotal = r.data.data.count;
+                    this.deptData = r.data.data.data;
+                })
+            },
+            //切换部门条数
+            deptSizeChange(pageSize) {
+                this.deptSorts.limit = pageSize
+                this.deptSorts.page = 1;
+                this.getDeptData();
+            },
+            //切换部门页码
+            deptCurrentChange(currentPage) {
+                this.$refs.deptTable.bodyWrapper.scrollTop = 0;
+                this.deptSorts.page = currentPage;
+                this.getDeptData();
+            },
+            // 选择部门
+            chooseDept(data) {
+                this.form.deptid = data.deptid;
+                this.form.deptname = data.deptname;
+                this.deptVisible = false;
+            },
+            // 搜索部门信息
+            searchDept() {
+                this.deptSorts.page = 1;
+                this.getDeptData();
+            },
+            // 清空部门输入框
+            resetDept() {
+                this.deptSorts.deptName = '';
+                this.deptSorts.page = 1;
+                this.getDeptData()
+            },
+
         }
     }
 </script>
 
-<style scoped>
+<style scoped lang="less">
     .hualong-content {
         padding: 10px;
     }
@@ -203,4 +329,32 @@
     .query-button {
         display: flex;
     }
+
+    /deep/ .el-dialog__title {
+        font-size: 14px;
+    }
+
+    /deep/ .el-dialog__body {
+        padding: 0 0 30px 20px;
+        color: #606266;
+        font-size: 14px;
+        word-break: break-all;
+    }
+
+    /deep/ .el-dialog {
+        margin: 0 auto 0;
+    }
+
+    .addTitle {
+        font-size: 18px;
+        font-weight: bold;
+        margin-bottom: 10px;
+    }
+
+    .but {
+        width: 36px;
+        height: 22px;
+        padding: 0;
+        font-size: 12px;
+    }
 </style>